iptables -F
iptables를 사용하거나 새로 고칠 수 있다는 것을 알고 있습니다 iptables -X
. 그러나 하나의 중요한 체인/규칙을 제외하고 iptables를 새로 고칠 수 있습니까?
답변1
규칙을 파일로 덤프
iptables-save > file
유지하려는 규칙을 제외한 모든 규칙을 삭제하고, 삭제되지 않은 규칙을 복원하고, 현재 iptables 규칙을 덮어씁니다.
iptables-restore < file
아니면 모든 규칙을 새로 고치고 원하는 규칙을 만드세요.
규칙을 파일에 덤프하면 규칙이 모두 다음과 같은 형식으로 되어 있음을 알 수 있습니다.
-A SomeChain SomeActions Target
예를 들어
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables 명령을 사용하여 동일한 규칙을 만들 수 있습니다
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
답변2
체인 하나만 빼고 모두 직접 헹구거나 제거할 수는 없습니다. 그러나 목록 체인이 단순하므로 짧은 옵션 조합으로 충분합니다.
리스트 체인
iptables -nL | awk '$1 == "Chain" { print $2 }'
INPUT
FORWARD
OUTPUT
f2b-iptables-log
f2b-recidive
f2b-sshd
다음을 제외한 모든 항목을 플러시합니다 INPUT
( echo
효과가 있다고 확신하면 제거하세요).
iptables -nL |
awk -v keep=INPUT '$1 == "Chain" && $2 != keep { system("echo iptables -F " $2) }'