다음 IPTABLES를 수행하면 모든 네트워크가 삭제됩니다.

다음 IPTABLES를 수행하면 모든 네트워크가 삭제됩니다.

첫 글인데 도와주세요. 한 네트워크의 트래픽만 허용하고 모든 네트워크를 삭제하고 싶습니다. 제가 뭘 잘못하고 있나요? 내 프로그램의 결과는 모든 경우에 패킷을 삭제한다는 것입니다. 스크립트가 실행된 후에는 더 이상 사이트를 방문하지 않습니다. 배포판: 우분투 16.04

#Flush old
iptables -F 
iptables -X

#Allow loopback

iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT

#Allow DNS

iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#Accept IP, use your own IP

iptables -I INPUT -s $(IP) -p tcp --dport 443 -j ACCEPT
iptables -I OUTPUT -s $(IP) -p tcp --dport 443 -j ACCEPT

#Drop rest

iptables -I INPUT -i lo -j REJECT
iptables -I OUTPUT -o lo -j REJECT

거부 및 폐기를 모두 사용하는 것은 덜 효과적입니다.

답변1

규칙을 추가하는 I것이 아니라 테이블에 삽입하는 것입니다.AREJECT

규칙은 순차적으로 읽고 적용되므로 실제로는 나머지 규칙보다 먼저 읽을 거부 규칙을 삽입하는 것입니다.

REJECT규칙을 다음으로 변경해 보세요 .

iptables -A INPUT -i lo -j REJECT
iptables -A OUTPUT -o lo -j REJECT

대신에. 꼭 추가하세요

iptables-save

스크립트 끝에서

관련 정보