여러 개의 ethX 인터페이스가 있습니다.
eth0
인터넷에 연결되었습니다.eth1
신뢰할 수 있는 네트워크에 연결되었습니다.eth2
네트워크에 연결하려면 사용 규칙을 적용해야 합니다.
내가 원하는 것은 "보기 쉬운" 규칙을 유지하기 위해 분리되어 자체 체인(신뢰할 수 있는/신뢰할 수 없는)으로 들어가는 것입니다 eth1
.eth2
:INPUT DROP
-A INPUT ! -i eth0 -j ACCEPT # allows INPUT on traffic not internet based
... # More rules for eth0 allowing PING and shunting most everything else
-A INPUT -i eth1 -j trusted
-A INPUT -i eth2 -j untrusted
이러한 문제로 인해 OUTPUT 및 FORWARD는 현재 ACCEPT로 설정되어 있습니다.
지금은 eth1
그냥 연쇄 가면무도회에 뛰어들면 되는데, 지금까지는 전혀 괜찮았는데, eth2
시도한 대로 잘 안 되서 어떻게 조작해야 할지 혼란스럽습니다.
eth2
내 생각에는 허용된 모든 포트/프로토콜을 나열하는 것이지만 지금까지는 방화벽 서버의 DNS/DHCP가 아니라 연결된 장치를 통해 아무 것도 연결할 수 없기 때문에 작동하지 않습니다 .
:untrusted
-A untrusted -i eth2 -p tcp -m tcp --dport 80 -j ACCEPT
나에게 필요한 것은 기본적으로 다음을 "말하는" 일련의 규칙입니다.
- 나가는 인터넷 트래픽이
eth0
ping되지 않으면 삭제됩니다. eth1
인터넷에 연결되어 있으면eth0
수락하세요 ( )eth2
TCP 포트 80을 통해 인터넷에 액세스하는 경우 해당 포트를 수락하고 다른 모든 항목은 삭제합니다.- 인터넷에 접속하려면 다음을 통해 위장을 사용하세요.
eth0
어떤 아이디어나 제안이라도 대단히 감사하겠습니다!
답변1
-A OUTPUT -o eth0 -p icmp --icmp-type ping -j ACCEPT
-A OUTPUT -o eth0 -j DROP
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth2 -o eth0 -p tcp --dport 80 -j ACCEPT
-A FORWARD -i eth2 -o eth0 -j DROP
-A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
*nat
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
마지막 줄을 Network에서 192.168.2.0/24
Network로 변경합니다. eth2
이렇게 하면 eth2
네트워크에서 발생하는 패킷만 가장됩니다.
또한 정책에 의존하기보다는 체인 끝에서 패킷을 삭제하는 규칙을 명시적으로 추가하는 것을 선호합니다.
이는 질문의 핵심 사항을 다루어야 합니다.