내 데스크탑에서는 iptables를 매우 엄격하게 구성하고 싶습니다. 내가 시작한 인터넷 트래픽 외에 다른 것을 허용해야 할 이유가 없습니다. 몇 개의 포트로 제한될 수도 있습니다. 데스크탑을 끄는 기본 규칙은 무엇입니까? 나에게 필요한 것은:
- 인터넷을하다
- 이메일 다운로드
권장되는 규칙이 있나요?
답변1
다음 규칙은 나가는 연결은 모두 허용하지만 들어오는 연결은 차단합니다. INPUT 및 FORWARD 체인은 기본적으로 패킷을 거부하도록 설정되고, OUTPUT 체인은 기본적으로 패킷을 허용하도록 설정되며, 마지막 규칙은 기존 연결의 일부로 들어오는 패킷을 허용합니다(이 경우 나가는 연결만).
iptables --policy INPUT DROP
iptables --policy FORWARD DROP
iptables --policy OUTPUT ACCEPT
iptables --append INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --append INPUT --jump REJECT
iptables --append FORWARD --jump REJECT
나가는 트래픽을 제한하려면 OUTPUT 정책을 거부로 변경하고 특정 포트에서 트래픽을 허용하는 규칙을 추가해야 합니다. 예를 들어:
iptables --policy OUTPUT DROP
iptables --append OUTPUT --protocol udp --match multiport --dports domain,bootps --jump ACCEPT
iptables --append OUTPUT --protocol tcp --match multiport --dports domain,http,https,ssh,pop3s,imaps,submission --jump ACCEPT
iptables --append OUTPUT --jump REJECT
답변2
다음 iptables-restore
스크립트는 귀하의 요구에 충분합니다.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state ! --state NEW -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
ICMP 핑을 허용하는 규칙을 제거하면 스크립트를 더 짧게 만들 수 있지만 권장하지는 않습니다. IMO에서는 핑에 응답하는 것이 보안에 큰 영향을 미치지 않으며 네트워크 문제 해결에 도움이 됩니다.
특정 TCP 포트에서 들어오는 연결을 허용하려면(예: ssh
연결 허용) 명령문 바로 위에 다음과 같이 스크립트에 규칙을 추가할 수 있습니다 COMMIT
.
-A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT