![IPtables는 하나의 체인을 제외하고 모두 제거합니다.](https://linux55.com/image/217601/IPtables%EB%8A%94%20%ED%95%98%EB%82%98%EC%9D%98%20%EC%B2%B4%EC%9D%B8%EC%9D%84%20%EC%A0%9C%EC%99%B8%ED%95%98%EA%B3%A0%20%EB%AA%A8%EB%91%90%20%EC%A0%9C%EA%B1%B0%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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) }'