REGEX: iptables에서 일부 관련 체인 새로 고침

REGEX: iptables에서 일부 관련 체인 새로 고침

IPtables에서 일부 관련 체인을 새로 고치고 싶습니다. 그들의 이름은 "f2b.*"와 같습니다. 체인 전체가 사라졌으면 좋겠습니다! 마치 다 사라졌어요.

-A f2b-postfix-sasl -s 103.231.139.130/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -s 141.98.9.2/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -s 45.13.39.56/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -s 185.36.81.61/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -s 185.36.81.169/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -s 185.36.81.165/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -s 185.137.111.22/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -s 185.137.111.188/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -s 185.137.111.123/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix-sasl -j RETURN
-A f2b-ssh-ddos -s 193.201.224.214/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-ssh-ddos -j RETURN

또한 체인 규칙이 사라지기를 원합니다.

-A INPUT -p tcp -m multiport --dports 22,115 -j f2b-ssh-ddos
-A INPUT -p tcp -m multiport --dports 25,465,587,143,993,110,995 -j f2b-postfix-sasl

기본적으로는 이렇습니다

iptables -F .*f2b-.*
iptables -D .*f2b-.*

당신은 무엇을 할 것인가?

[이유] 종료시 iptables를 저장하고 재부팅시 복원하기 때문입니다. 그러나 fall2ban은 기존 규칙이 이미 존재하는지 확인하지 않고 다시 추가합니다. 그래서 결과가 중복됩니다.

[업데이트 #1] 다음과 같은 고유한 체인 이름을 얻을 수 있습니다.

sudo /sbin/iptables -S | grep -P '\-A f2b-.*' | cut -d ' ' -f 2 | sort -u

루프를 형성하지 않고 어떻게 삭제할 수 있나요?

답변1

다음과 같은 고유한 체인 이름을 얻을 수 있습니다.

sudo /sbin/iptables -S | grep -P '\-A f2b-.*' | cut -d ' ' -f 2 | sort -u

루프를 형성하지 않고 어떻게 삭제할 수 있나요?

[답변#1]모든 F2B 체인 삭제

/sbin/iptables -S | grep -P '\-A f2b-.*' | cut -d ' ' -f 2 | sort -u | awk '{print "/sbin/iptables -F "$1";"}' #| /bin/sh

[답변#2]모든 F2B 규칙 삭제

/sbin/iptables -S | grep -P '\-A INPUT.*f2b-.*' | sed 's/^-A //' | awk '{print "/sbin/iptables -D "$0";"}' #| /bin/sh

참고: 준비가 되면 #의 주석을 해제하십시오.

답변2

귀하의 예에서는 다음을 수행할 수 있습니다.

iptables-save | sed -nE '/^(\*|COMMIT)/p;/^:/s/^:(f2b-[[:graph:]]+).*/-F \1/p;/ -[jg] f2b-[[:graph:]]+/s/^-A/-D/p' | iptables-restore -n

iptables-save이는 체인에 대한 모든 체인 정보 지시문(으로 시작하는 행 :)을 해당 명령으로 바꾸고, 체인을 참조하는 모든 명령을 해당 명령으로 대체한 후 마지막으로 에 공급하는 출력을 가져옵니다 .f2b-*-F <chain-name>-Af2b-*-Diptables-restore -n

이것은중요한-n옵션을 사용하여 이 작업을 수행합니다 .iptables-restore 아니요모든 것을 헹구십시오.

관련 정보