답변:
sudo ufw 기본 거부
sudo ufw http 허용
sudo ufw 허용 https
sudo ufw 허용 ssh
sudo ufw 활성화
이 스크립트를 사용하십시오.
들어오는 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
다른 답변에 대한 의견에서 언급했듯이 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
자세한 내용은 매뉴얼 페이지를 참조하십시오 .
Quicktables는 iptables 규칙을 배우는 데 도움이되었습니다. 스크립트를 실행하면 iptables 스크립트가 생성됩니다. 그러면 스크립트를 열고 질문에 의해 생성 된 관련 명령을 볼 수 있습니다. 훌륭한 학습 자료입니다.
불행히도 더 이상 유지되지 않습니다.
나는 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이라고 말해야합니다.
Shorewall 선호합니다 . 설치가 쉽지만 동시에 유연합니다.
아마도 http://iptables-tutorial.frozentux.net/iptables-tutorial.html을 살펴보십시오 . 또한 lartc.org 에 대한 자세한 정보를 찾을 수 있습니다
sudo apt-get install firestarter
그런 다음 시스템-> 관리 메뉴를보십시오.