IPtables는 하나의 체인을 제외하고 모두 제거합니다.

IPtables는 하나의 체인을 제외하고 모두 제거합니다.

iptables -Fiptables를 사용하거나 새로 고칠 수 있다는 것을 알고 있습니다 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) }'

관련 정보