วิธีการยกเลิกการแบนข้อมูล IP อย่างถูกต้องด้วย Fail2Ban


200

ฉันใช้ Fail2Ban บนเซิร์ฟเวอร์และฉันสงสัยว่าจะยกเลิกการห้ามใช้ IP อย่างถูกต้องได้อย่างไร

ฉันรู้ว่าฉันสามารถทำงานกับ IPTables ได้โดยตรง: iptables -D fail2ban-ssh <number>

แต่ไม่มีวิธีที่จะทำกับfail2ban-client?

fail2ban-client get ssh actionunban <IP>ในคู่มือก็ระบุสิ่งที่ต้องการ: แต่นั่นไม่ได้ผล

นอกจากนี้ฉันไม่ต้องการ/etc/init.d/fail2ban restartที่จะสูญเสียเรย์แบนทั้งหมดในรายการ

คำตอบ:


278

ด้วย Fail2Ban ก่อน v0.8.8:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

ด้วย Fail2Ban v0.8.8 และใหม่กว่า:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

ส่วนที่ยากคือการหาคุกที่ถูกต้อง:

  1. ใช้iptables -L -nเพื่อค้นหาชื่อกฎ ...
  2. ... จากนั้นใช้fail2ban-client statusเพื่อรับชื่อคุกที่แท้จริง ชื่อกฎและชื่อคุกอาจไม่เหมือนกัน แต่ควรมีความชัดเจนว่าเกี่ยวข้องกับชื่อใด

2
หากคุณมีข้อผิดพลาดดังต่อไปนี้'Invalid Action name'อ่านคำตอบนี้
Morgan Courbet

32
กับรุ่นล่าสุดของคุณควรจะใช้fail2ban fail2ban-client set JAIL_NAME unbanip 1.2.3.4
tftd

1
ชื่อคุกดีฟอลต์คืออะไร /etc/fail2ban/jail.confไม่ได้ผลสำหรับฉัน
อเล็กซ์ W

1
คุณสามารถค้นหาชื่อคุกได้ในล็อก fail2ban หากคุณค้นหา IP ของคุณ
fred727

7
sshd เป็นชื่อคุกสำหรับฉัน
agustaf

82

เนื่องจาก v0.8.8 มีunbanipตัวเลือก ( actionunbanไม่ใช่สำหรับวัตถุประสงค์นี้) มันสามารถทริกเกอร์โดยsetคำสั่งถ้าคุณดูรายการตัวเลือกคุณจะเห็นไวยากรณ์คือ ดังนั้นมันจะเป็น (โดยหัวใจโปรดตรวจสอบ):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

ทั่วไปมากขึ้น:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

ทำงานได้สำหรับฉัน


3
คำสั่ง unbanip ถูกเพิ่มในเวอร์ชัน 0.8.8 ทางออกที่ดีที่สุดหากคุณใช้ 0.8.8 หรือใหม่กว่า
Alexander Garden

1
ปัญหาที่เกี่ยวข้องกับสิ่งนี้ในตัวติดตาม fail2ban คือ: github.com/fail2ban/fail2ban/issues/132
aseques

นี่คือคำตอบที่ถูกต้องสำหรับเวอร์ชันปัจจุบัน ขอขอบคุณ!
billynoah

รับ "คำสั่งไม่ถูกต้อง (ยังไม่มีการตั้งค่าหรือยังไม่ได้ใช้งาน)"
Tom

คุณต้องระบุชื่อคุกที่ถูกต้อง (เช่น sshd หรือ sshd-dos ดูบันทึก fail2ban ของคุณ)
ภาพลวงตา

53

ตัวอย่างสำหรับ SSH ในโหมดโต้ตอบ

พิมพ์ในทุบตี:

fail2ban-client -i

จากนั้นในโหมดโหมดโต้ตอบอ่านสถานะของคุก:

status sshd

คุณจะได้รับ:

Status for the jail: ssh
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 6
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned: 1
   |- Total banned: 2
   `- Banned IP list:   203.113.167.162

จากนั้นพิมพ์ในโหมดโต้ตอบ fail2ban:

set sshd unbanip 203.113.167.162

คุณจะได้รับ:

203.113.167.162

หมายความว่าไม่อยู่203.113.167.162ในรายการที่ห้ามอีกต่อไป


3
สำหรับฉันชื่อคุกคือsshd(Ubuntu 16)
scipilot

ในของฉันมันบอกว่าห้ามทั้งหมด: 6 แต่รายการภายใต้ห้าม IP ว่างเปล่า :( ต้องติดตามผ่านบันทึก
William Hilsum

21

คำตอบของ ukoda นั้นผิด:

โทรfail2ban-clientโดยไม่มีพารามิเตอร์และคุณจะเห็นรายการคำสั่งที่เป็นไปได้:

get JAIL actionunban ACT             

นี่ได้รับคำสั่ง unban สำหรับการกระทำ ACT สำหรับ JAIL

ดูที่พารามิเตอร์การกระทำของคุกที่คุณกำหนดไว้คุณอาจมีแอ็คชั่น iptables และอาจมีอะไรเพิ่มเติมเช่น sendmail, whois หรืออะไรก็ตาม ดังนั้นในกรณีที่การกระทำของคุณเป็น iptables มันจะมีลักษณะเช่นนี้:

fail2ban-client get JAIL actionunban iptables

และคำตอบจะเป็น:

iptables -D fail2ban-NAME -s IP -j DROP

มันจะแสดงเฉพาะสิ่งที่คุณจะต้องเขียนเพื่อยกเลิกการห้าม ไม่มีคำสั่ง unban


3
ใช่ว่าทำงานให้ฉันเพื่อยกเลิกการห้ามจาก SSH iptables -D fail2ban-ssh -s <IP> -j DROPคุก ขอบคุณ ingo!
Deele

8

หาก 192.168.2.1 ถูกแบน

sudo iptables -L

ตรวจสอบว่าเชนไหนถูกแบนเช่น

เชน fail2ban-sasl (อ้างอิง 1)

DROP all - 192.168.2.1 ได้ทุกที่

แล้ว:

# to view the proper command for un-banning
sudo fail2ban-client get sasl actionunban
# actual command
iptables -D fail2ban-sasl -s 192.168.2.1 -j DROP

4

ก่อนอื่นคุณต้องได้รับชื่อของคุก คุณสามารถรับรายชื่อ (ในกรณีส่วนใหญ่มันจะเป็นเพียงคุก SSH):

fail2ban-client status

หลังจากได้รับชื่อคุกคุณสามารถตรวจสอบ IP ที่จะถูกละเว้น

fail2ban-client get ssh ignoreip

หาก IP ของคุณอยู่ในรายการเพิกเฉยคุณสามารถลบได้ผ่าน:

fail2ban-client set ssh delignoreip your_ip_address
vi /etc/hosts.deny

ลบรายการโฮสต์ของคุณ:

fail2ban-client reload

2
รายการที่ไม่ใช้นั้นเป็นรายการของ IP ที่จะไม่ห้ามใช้ ไม่เกี่ยวข้องกับรายการของ IP ที่ถูกแบนในขณะนี้ซึ่งเป็นรายการที่ OP ต้องการลบ IP ออก
jlh

3

ใช้ fail2ban v.0.8.6:

$ sudo fail2ban-client status # to reveal your JAIL name (mine is ssh)
$ sudo fail2ban-client set ssh delignoreip your_ip_address
$ sudo nano /etc/hosts.deny # delete your ip address
$ sudo fail2ban-client reload

นี่สันนิษฐานว่า hosts.deny เป็นการกระทำที่ใช้ .... แต่ก็ยังมีประโยชน์มากกว่าสิ่งที่พยายามเปลี่ยนวิธีการยกเลิกการแบนไอพีในเวอร์ชั่นเก่าโดยใช้actionunban...
Gert van den Berg

การdelignoreipกระทำไม่ได้เป็นการลบ IP ออกจากการแบน แต่เป็นการลบ IP ออกจากรายการของ IP ที่ถูกละเว้น (เช่น IP ที่จะไม่ถูกแบน)
Tonin

2

น่าเสียดายที่คำสั่ง fail2ban-client เวอร์ชัน 0.8.2:

fail2ban-client get jail actionunban ipaddress

ไม่ทำงาน เพื่อแก้ปัญหาตัวเลือกที่ดีที่สุดคืออัพเกรด fail2ban เป็นเวอร์ชั่นล่าสุดและใช้ตัวเลือกใหม่:

unbanip


1

หาก IP อยู่ในหลาย ๆ คุกสิ่งนี้จะกลายเป็นความเจ็บปวด

หนึ่งซับเพื่อลบ 192.168.1.2 ออกจากคุกทั้งหมด:

 for jail in $(fail2ban-client status | grep 'Jail list:' | sed 's/.*Jail list://' | sed 's/,//g'); do fail2ban-client set $jail unbanip 192.168.1.2; done

สคริปต์เพื่อทำhttps://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474เดียวกัน


0

หากคุณใช้เวอร์ชัน v0.10.2:

sudo fail2ban-client ยกเลิกการห้าม YOUR_IP_ADDRESS

นี่คือจากความช่วยเหลือ:

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

ยืนยันว่าจะทำงานในกรณีของฉันเมื่อฉันถูกแบนเนื่องจากการเข้าสู่ระบบของลูกค้า ssh ซ้ำ ๆ ด้วยรหัสผ่านผิด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.