우분투에서 간단한 방화벽을 설정하는 방법?


18

누군가 우분투에서 간단한 방화벽을 설정하는 방법 (콘솔 만 사용)을 구성 예제로 간단한 단계를 제공 할 수 있습니까? ssh, http 및 https 액세스 만 허용해야합니다.


네트워크 방화벽 또는 시스템 방화벽에 대해 이야기하고 있습니까?
— 브래드 길버트

네트워크 방화벽은 무엇을 의미합니까? 라우터의 방화벽입니까? 그렇다면 시스템 방화벽에 대한 이야기였습니다.
— klew

답변:


20

sudo ufw 기본 거부

sudo ufw http 허용

sudo ufw 허용 https

sudo ufw 허용 ssh

sudo ufw 활성화


ssh를 통해이 명령을 순서대로 호출하면 연결이 끊어 집니까?
— klew

나는 그것을 믿지 않지만 확인해야합니다. 다시 시작하는 동안에도 상태가 유지되므로 한 번만 수행하면됩니다.
— Nerdfest 2009

이 컴퓨터와 가까이있을 때 확인하겠습니다 ...
— klew

스크립트에 넣고 실행할 수 있으며 연결이 끊어 지더라도 나중에 다시 연결할 수 있습니다. 스크립트에 대해서는 아래 답변을 참조하십시오.
— Hamish Downer

2
이전 의견이 맞습니다. 기본적으로 위 스크립트의 첫 번째 명령을 마지막에 실행하십시오.
— Nerdfest 2009

14

이 스크립트를 사용하십시오.

들어오는 ICMP (ping)를 허용할지 여부를 결정하십시오.

# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush

# As the default policies, drop all incoming traffic but allow all
# outgoing traffic.  This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT

# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT

# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT

# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT

# Reject all other incoming packets
iptables -A INPUT -j REJECT

8

다른 답변에 대한 의견에서 언급했듯이 ssh 포트를 허용하기 전에 연결을 끊기를 원하지 않습니다. 매뉴얼 페이지에서 :

"원격 관리

ufw enable을 실행하거나 initscript를 통해 ufw를 시작할 때 ufw는 체인을 플러시합니다. ufw가 일관된 상태를 유지할 수 있도록하려면 기존 연결 (예 : ssh)이 끊어 질 수 있습니다. ufw는 방화벽을 활성화하기 전에 규칙 추가를 지원하므로 관리자는 다음을 수행 할 수 있습니다.

ufw allow proto tcp from any to any port 22

'ufw enable'을 실행하기 전에 규칙은 여전히 ​​플러시되지만 방화벽을 활성화 한 후 ssh 포트가 열립니다. ufw가 '활성화'되면 ufw는 규칙을 추가하거나 제거 할 때 체인을 플러시하지 않습니다 (그러나 규칙을 수정하거나 기본 정책을 변경할 때). "

여기에 스크립트를 사용하여 설정하는 방법이 있습니다. 이 스크립트를 실행할 때 로그 아웃되지만 스크립트를 실행 한 후 ssh를 통해 다시 로그인 할 수 있습니다.

다음을 스크립트에 넣고 start-firewall.sh라고합니다.

#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https

그런 다음 실행 가능하게 만들고 실행하여 실행하십시오.

$ chmod + x start-firewall.sh
$ sudo ./start-firewall.sh

자세한 내용은 매뉴얼 페이지를 참조하십시오 .


2

스크립팅에 익숙해지면 iptables모든 방화벽 기능을 완전히 제어 할 수 있습니다. Firestarter만큼 친숙하지는 않지만 콘솔에서 nano/ vi편집자 와 함께 할 수 있습니다 . 이 튜토리얼 을 우분투를 대상으로 확인하십시오 .


1

Quicktables는 iptables 규칙을 배우는 데 도움이되었습니다. 스크립트를 실행하면 iptables 스크립트가 생성됩니다. 그러면 스크립트를 열고 질문에 의해 생성 된 관련 명령을 볼 수 있습니다. 훌륭한 학습 자료입니다.

불행히도 더 이상 유지되지 않습니다.

http://qtables.radom.org/


1

나는 firehol ( package )을 사용하는 것을 정말로 좋아 합니다 .

원하는 설정 규칙을 만들려면 / etc / default / firehol 파일을 편집하고 START_FIREHOL = YES를 변경해야합니다.

그리고 /etc/firehol/firehol.conf를 이렇게 보이게하고 싶을 것입니다.

version 5

interface any IfAll
    client any AnyClient accept
    server "ssh http https" accept
    # Accept everything from trusted networks
    server anystateless AllInside accept src "10.3.27.0/24"

Firehol의 가장 큰 장점 중 하나는 'try'명령입니다. ssh를 통해 연결된 곳에서 구성 파일을 조정하고 'firehol try'를 수행 할 수 있으며 변경 한 내용이 네트워크 액세스를 종료하면 firehol이 변경 사항을 되돌립니다. 변경 사항을 실제로 적용하려면 commit이라고 말해야합니다.


1
Firehol은 iptables 규칙을 조작하는 데 뛰어납니다. '$ firehol try' "방화벽을 활성화하지만 사용자가 commit이라는 단어를 입력 할 때까지 기다립니다.이 단어를 30 초 내에 입력하지 않으면 이전 방화벽이 복원됩니다."
— Gareth 2016 년

Sooo 당신은 규칙을 추가 / 편집 / 제거하고 테스트 할 수 있습니다. SSH를 통해 원격 으로이 작업을 수행하면 자체 서버에서 잠기지 않습니다!
— Gareth 2016 년



-1

sudo apt-get install firestarter

그런 다음 시스템-> 관리 메뉴를보십시오.


질문자는 콘솔 만 사용하려고합니다
— Mikeage

아, 내 실수 또는. 관리자는 여전히 서버에 -X를 ssh하고 원격으로 firestarter를 실행할 수 있습니다.
— spoulson 2009

1
ssh -X :)를 시작하려면 X 서버를 설치해야합니다.
— klew

@ klew, ssh를 통해 X 응용 프로그램을 실행하기 위해 전체 X 서버를 설치할 필요가 없습니다. 여러 라이브러리가 필요하지만 모든 것이 필요하지는 않습니다. 최소한 xauth 및 xbase-clients 패키지 만 있으면됩니다.
— Zoredache
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.