리눅스 NAT의 다른 규칙

리눅스 NAT의 다른 규칙
eth0 (192.168.1.0/24) --> wan
eth2 (192.168.10.0/24) --> lan0

다음 규칙을 사용하여 Linux 게이트웨이에서 NAT를 활성화합니다.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

일부 온라인 가이드에서 이와 같은 규칙을 읽는 이유는 무엇입니까?

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.10.0/24 -d 0/0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -d 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.10.0/24 -j ACCEPT

답변1

이 두 줄을 사용하는 경우:

iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.10.0/24 -j ACCEPT

따라서 보안 측면에서 다음 두 가지는 가치가 없습니다.

iptables -A FORWARD -s 192.168.10.0/24 -d 0/0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -d 192.168.10.0/24 -j ACCEPT

첫째 iptables -A FORWARD -s 192.168.10.0/24 -d 0/0 -j ACCEPT, 이로 인해 서브넷 iptables192.168.10.0/24패킷이 0/0다른 모든 네트워크로 전달됩니다. 나중에 당신은 iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT이 두 규칙이 실제로 같은 것을 의미한다는 것을 깨닫게 됩니다.

For는 패킷이 원본 또는 소스에서 발생하는 경우에만 전송된 모든 패킷을 수락하고 전달 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -d 192.168.10.0/24 -j ACCEPT합니다 . iptables나중에 첫 번째 규칙을 쓸모 없게 만들도록 설계된 모든 패킷을 전달하는 몇 가지 충돌하는 규칙이 있게 됩니다. 왜냐하면 전송된 모든 패킷은 첫 번째 규칙과 일치하지 않기 때문입니다. 그러나 어쨌든 패킷은 전달됩니다.192.168.10.0/24ESTABLISHEDRELATEDiptables -A FORWARD -d 192.168.10.0/24 -j ACCEPT192.168.10.0/24192.168.10.0/24

관련 정보