iptables 구성

iptables 구성

iptables를 설정하려고 하는데 전달 규칙은 제대로 작동하지만 출력 규칙에 문제가 있습니다.

방화벽 뒤에 있는 호스트에서 인터넷에 액세스할 수 없고 방화벽 서버에서 www.google.com을 ping할 수도 없습니다. 그리고 호스트는 www.google.com에 대해 ping을 수행할 수 없으며 ip에 대해서도 ping이 작동하지 않습니다.

입력, 출력 및 전달에 대한 기본 작업은 삭제입니다.

포트 80,443,53(tcp 및 udp)과 Outlook을 열었습니다.

내 출력 규칙은 다음과 같습니다.

iptables -P OUTPUT DROP

# Output
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT


# DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT

답변1

여기 FORWARD 체인에서는 일부 나가는 트래픽을 허용합니다. 반환될 수는 없지만 LAN 시스템의 FORWARD 체인과 라우터의 INPUT 체인에서 이 동작을 허용하려면 conntrack 시스템을 사용해야 합니다.

또한 ICMP를 허용하지 않아 ping이 실패했습니다.
한 가지 더: FORWARD 체인에 인터페이스를 지정하겠습니다. 이렇게 하지 않으면 포트가 노출되거나 외부 컴퓨터에서 해당 컴퓨터를 게이트웨이로 사용할 수 있습니다.

이에 따라 규칙을 다시 작성해 보겠습니다(eth1을 LAN 인터페이스로 교체).

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Forward - WAN to LAN
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Forward - LAN to WAN
iptables -A FORWARD -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -p icmp -j ACCEPT

# Input
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Output
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

편집하다:주석에 제안된 대로 eth1을 지정하십시오.

관련 정보