Ubuntu에서 모든 fail2ban 금지를 삭제하려면 어떻게해야합니까? 모든 것을 시도했지만 이해하지 못했습니다.

모든 차단을 삭제하고 싶지만 IP 주소를 모릅니다.

댓글

  • 금지는 일반적으로 방화벽을 통해 IP 주소에서 이루어 지므로 방화벽 규칙을 확인해야합니다.
  • 예, 압니다. 하지만 IP 주소를 말하지 않고 모든 차단을 해제하고 싶습니다
  • " 모든 것을 시도했습니다 " 아니요. '하지 않았습니다. 무엇을 시도 했습니까?

답변

업데이트 된 답변

0.10 버전부터. 0 fail2ban-client에는 두 가지 방법으로 사용할 수있는 unban 명령이 있습니다.

unban --all unbans all IP addresses (in all jails and database) unban <IP> ... <IP> unbans <IP> (in all jails and database) 

또한 이제 restart <JAIL>, reload <JAIL>reload 명령에도 --unban 옵션.

이전 답변

fail2ban은 iptables를 사용하여 트래픽을 차단합니다. 현재 차단 된 IP 주소를 보려면

iptables -L -n 

를 입력하고 fail2ban-something, 여기서 something는 fail2ban 감옥을 가리 킵니다. 예를 들어, Chain f2b-sshd는 감옥을 가리 킵니다. sshd). 주어진 감옥 <JAIL>에 대한 단일 IP 주소 <IP>에 대한 차단 만 제거하려는 경우 fail2ban은 자체 클라이언트를 제공합니다.

fail2ban-client set <JAIL> unbanip <IP> 

또는 줄 번호를 사용할 수 있습니다. 먼저 줄 번호와 함께 iptables 규칙을 나열합니다.

iptables -L -n --line-numbers 

다음으로 사용할 수 있습니다.

iptables -D fail2ban-somejail <linenumber> 

테이블에서 한 줄을 제거합니다. 내가 아는 한 줄 번호 범위를 선택할 수있는 옵션이 없으므로이 명령을 for 루프로 래핑해야 할 것 같습니다.

for lin in {200..1}; do iptables -D fail2ban-somejail $lin done 

여기서 200 번을 만들었습니다. --line-numbers를 사용하여 명령의 자체 출력을 확인하고 마지막 줄 (RETURN 포함)이 유지되어야합니다. 카운트 다운 이유는 아래 @roaima의 댓글을 참조하세요.

댓글

  • 당신이 저를 구했습니다. 감사합니다. 전체 명령을 추가하세요. 나는 당신의 명령에 fail2ban-client가 필요하다는 것을 알아야했기 때문입니다. (저는 멍청이이기 때문입니다)

답변

모든 IP 차단을 해제하는 가장 좋은 방법은 차단 시간을 1 초로 설정하는 것입니다. 그러면 모든 IP가 즉시 해제됩니다.

fail2ban-client set JailName bantime 1 

그 후에 적절한 차단 시간을 다시 설정할 수 있습니다.

fail2ban이 차단 해제를 수행하도록하는 것이 좋습니다. iptables를 직접 수동으로 편집하지 마십시오.

코멘트

  • 여기에서 유일한 정답입니다. Fail2ban은 독립적으로 삭제해야하는 자체 차단 데이터베이스를 유지합니다. . iptables 규칙 삭제에 대해 이야기하는 모든 답변은 fail2ban이 백업을 시작하는 순간 방금 삭제 한 규칙을 iptables에 다시 추가한다는 것을 무시합니다. 또한 모든 fail2ban 구성이 iptables를 사용하여 금지를 구현하는 것은 아닙니다.
  • fail2ban-client status
  • 방금이 명령을 내리고 fail2ban이 감옥을 처리함에 따라 감옥의 IP 수가 0으로 감소하는 것을보고 있습니다. 정말 빠르게 진행되지만 ' 괜찮습니다. 감옥에 5 천 개가 넘는 항목이있었습니다. 좋은 답변입니다!

답변

최신 fail2ban-client (0.10) 에는 unban -all 명령. 감옥은 개별적으로 “다시 시작”할 수도 있습니다. 밴을 삭제합니다.

이전 버전을 사용하는 경우이 트릭이 자동 임시 차단에 효과가있을 수 있습니다. 차단이 포함 된 감옥을 삭제 한 다음 fail2ban을 다시 시작하여 (현재 비어있는) 감옥이 다시 생성되도록합니다.

$ fail2ban-client stop sshd Jail stopped $ systemctl restart fail2ban 

댓글

  • -all 또는 —all? 아니면 –all?

Answer

  1. 서비스를 중지하면 추가 된 모든 규칙이 지워집니다. fail2ban으로

    service fail2ban stop 
  2. 다른 iptables 규칙이 없으면 플러시 할 수 있습니다.

    iptables -F 

주의 : 이렇게하면 iptables의 다른 모든 규칙이 삭제됩니다. .

댓글

  • 멈췄다가 다시 시작하는 것만으로도 충분했습니다.

답변

iptable 구성을 파일에 저장

$ iptables-save > iptables.conf 

원하는 편집기로 편집하십시오. 구성을 iptables로 다시로드하십시오.

$ iptables-restore < iptables.conf 

구성을 iptables 안에 저장하는 것을 잊지 마십시오. 재부팅시 작동

$ service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] 

Answer

전체 차단을 해제하는 간단한 oneliner가 있습니다. fail2ban jail 올바른 방법 :

iptables -L f2b-recidive -n | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip 

참고 : iptables 명령은 감옥 이름 앞에 “f2b-“접두사를 사용하고 “fail2ban-client”는 실제 감옥 이름

코멘트

  • 0.10 이하의 fail2ban 버전에 대한 최상의 답변입니다. 하나의 매개 변수로 전체 감옥을 제거하는 fail2ban-purge와 같은 .bashrc에서 별칭을 추가로 만들 수 있습니다. 위의 단어를 $ 1로 바꾸고 별칭을 fail2ban-purge < JAIL_NAME >로 사용하세요.

답변

fail2ban가 작동하는 방식으로 인해 가능한 해결책은 두 가지뿐입니다.

  • fail2ban 감옥을 포함하는 방화벽 구성 스크립트를 만들고 방화벽을 다시 시작합니다.
  • 차단을 해제하려는 IP를 차단하는 방화벽 규칙을 제거합니다. .

답변

이것은 ssh 감옥에 대한 모든 IP 주소를 차단 해제하는 데 사용하는 스크립트입니다 ( sshd occourence를 필요한 감옥 이름으로 바꾸면됩니다. 예 : mysqld-auth)

#!/bin/bash j=$(iptables -L f2b-sshd | grep -c "REJECT") for ((i=1;i<=j;i++)) do fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep "Banned IP list:" | cut -c23-) done 

Answer

이 스크립트가 < 0.10.0 버전을 가진 사람에게 도움이 될 수 있습니다.

 #!/bin/bash for JAIL in $(fail2ban-client status | grep "Jail list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/, / /g") do for IP in $(fail2ban-client status ${JAIL} | grep "Banned IP list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/ /\n/g") do fail2ban-client set ${JAIL} unbanip ${IP} done done unset JAIL IP exit 0  

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다