iptables를 사용하여 게이트웨이를 제외한 전체 서브넷을 차단하는 방법은 무엇입니까?

iptables를 사용하여 게이트웨이를 제외한 전체 서브넷을 차단하는 방법은 무엇입니까?

iptables를 사용하여 연결을 유지하면서 연결된 전체 서브넷(게이트웨이 제외)을 삭제하려면 어떻게 해야 합니까?

저는 두 개의 iptables 규칙을 찾고 있습니다. 하나는 수신용이고 다른 하나는 발신용입니다.

.159예를 들어, IP를 사용하여 게이트웨이 10.0.0.1에 연결하고 싶고 다른 모든 것을 차단하고 게이트웨이 10.0.0.1로 설정된 DNS를 사용하여 연결을 유지해야 한다고 가정해 보겠습니다 .

답변1

iptables 규칙을 확인하면 모든 규칙이 입력된 순서대로 수행됩니다. 따라서 먼저 10.0.0.1과의 트래픽을 수락한 다음 해당 서브넷의 다른 모든 트래픽을 거부해야 한다고 생각합니다. 10.0.0.1에 대한 트래픽이 있으면 첫 번째 규칙은 해당 트래픽을 허용하고 두 번째 규칙은 다른 모든 트래픽을 거부합니다. 그래서 저는 다음과 같이 쓸 것입니다:

iptables -t INPUT -s 10.0.0.1 -j ACCEPT
iptables -t INPUT -s 10.0.0.0/8 -J REJECT

iptables -t OUTPUT -d 10.0.0.1 -j ACCEPT
iptables -t OUTPUT -d 10.0.0.0/8 -J REJECT

이는 이미 적용되어야 하는 다른 규칙에 추가되는 것입니다. 10.XXX 네트워크의 기본값인 255.0.0.0을 사용하고 있다고 가정합니다. 그렇지 않은 경우 다른 넷마스크를 사용하십시오. 또한 소스(-s)와 대상(-d)을 지정하는 것만으로도 충분한지 확실하지 않습니다. 네트워크 인터페이스(-i), 프로토콜(-p) 등을 추가해야 할 수도 있습니다.

관련 정보