포트 8006 및 8007에서 각각 특수 HTTP 및 HTTPS 서비스를 호스팅하고 있습니다. iptables를 사용하여 서버를 "활성화"합니다. 즉, 들어오는 HTTP 및 HTTPS 포트를 라우팅하려면 :
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8006
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 443 -j REDIRECT --to-ports 8007
이것은 매력처럼 작동합니다. 그러나 서버를 다시 비활성화하는 다른 스크립트를 만들고 싶습니다. 즉, iptables를 위의 행을 실행하기 전의 상태로 복원하십시오. 그러나이 규칙을 제거하는 구문을 파악하는 데 어려움을 겪고 있습니다. 작동하는 유일한 것은 완전한 플러시입니다.
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
그러나 이것은 원하지 않는 다른 iptables 규칙도 삭제합니다.
-I
대신-A
위한ACCEPT
라인. 이는 일반적으로 마지막 행 (INPUT
예 : 체인)이DROP
또는REJECT
이고 규칙이 그 앞에 오기를 원하기 때문입니다.-A
새 규칙을 마지막 규칙 뒤에-I
두고 시작 규칙에 둡니다.