ลบการแบน fail2ban ทั้งหมดใน Ubuntu Linux


16

ฉันจะลบแบนทั้งหมด fail2ban ใน Ubuntu ได้อย่างไร ฉันพยายามทุกอย่าง แต่ไม่เข้าใจ

ฉันต้องการลบแบนทั้งหมด - แต่ฉันไม่รู้ที่อยู่ IP ใด ๆ


1
โดยทั่วไปแบนจะทำที่อยู่ IP ผ่านไฟร์วอลล์ของคุณดังนั้นคุณควรดูกฎไฟร์วอลล์
Julie Pelletier

ใช่ฉันรู้. แต่ฉันต้องการที่จะล้างเรย์แบนทั้งหมดโดยไม่บอกที่อยู่ IP
แพทริค

คำตอบ:


26

อัปเดตคำตอบ

ตั้งแต่เวอร์ชัน 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) หากคุณต้องการลบบล็อกสำหรับที่อยู่ IP เดียว<IP>สำหรับคุกที่กำหนด<JAIL>fail2ban ให้บริการไคลเอ็นต์ของตนเอง:

fail2ban-client set <JAIL> unbanip <IP>

หรือคุณสามารถใช้หมายเลขบรรทัด ก่อนอื่นให้ระบุiptablesกฎด้วยหมายเลขบรรทัด:

iptables -L -n --line-numbers

ถัดไปคุณสามารถใช้

iptables -D fail2ban-somejail <linenumber> 

เพื่อลบบรรทัดเดียวออกจากตาราง เท่าที่ฉันรู้ว่าไม่มีตัวเลือกในการเลือกช่วงของหมายเลขบรรทัดดังนั้นฉันเดาว่าคุณจะต้องตัดคำสั่งนี้ในการวนซ้ำ:

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

ที่นี่ฉันทำหมายเลข 200 ขึ้น ตรวจสอบเอาต์พุตของคำสั่งของคุณด้วย--line-numbersและสังเกตว่าบรรทัดสุดท้าย (พร้อมRETURN) ควรอยู่ ดูความคิดเห็นของ @ roaima ด้านล่างเพื่อหาเหตุผลในการนับถอยหลัง


ขอบคุณ @roaima! ฉันจะอัปเดตคำตอบตามนั้น
ph0t0nix

1
@roaima ใช่มันเป็น (อย่างน้อยใน zsh และทุบตี) จะส่งผลให้echo {5..1} 5 4 3 2 1
ph0t0nix

คุณช่วยฉันไว้. ขอบคุณมาก. กรุณาเพิ่มคำสั่งแบบเต็มเพราะฉันต้องเข้าใจว่าฉันต้องการ fail2ban-client ในคำสั่งของคุณ (เพราะฉันเป็น noob)
sebastian.roibu

การตอบกลับเก่ายังคงถูกเก็บไว้ใน DuckDuckGo มาเพื่อพูดเช่นเดียวกับ @roaima - snipboard.io/0oZkXy.jpg
Ari

15

วิธีที่ดีที่สุดในการยกเลิกการห้ามแบนไอพีทั้งหมดคือตั้งค่าแบนไทม์เป็น 1 วินาทีจากนั้นไอพีทั้งหมดจะถูกปลดปล่อยทันที

fail2ban-client set JailName bantime 1

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

มันจะดีกว่าถ้าปล่อยให้ fail2ban ทำ unban ให้คุณ อย่าแก้ไข iptables ด้วยตนเอง


1
นี่เป็นคำตอบเดียวที่ถูกต้องที่นี่ Fail2ban รักษาฐานข้อมูลการห้ามของตัวเองที่จะต้องล้างอย่างอิสระ ทุกคำตอบที่พูดถึงการลบกฎ iptables จะไม่สนใจว่าช่วงเวลาที่ fail2ban นั้นเริ่มต้นขึ้นแล้วมันจะเพิ่มกฎที่คุณเพิ่งลบกลับไปที่ iptables นอกจากนี้การกำหนดค่า fail2ban ทุกครั้งจะใช้ iptables เพื่อใช้การห้าม
Cliff Armstrong

3
ค้นหาคุกทั้งหมดด้วยfail2ban-client status
Flion

ฉันเพิ่งออกคำสั่งนี้และกำลังดูจำนวน IP ในคุกของฉันลดลงเป็นศูนย์เนื่องจาก fail2ban ประมวลผลคุก มันไม่ได้เกิดขึ้นอย่างรวดเร็วจริงๆ แต่ก็ไม่เป็นไรมีมากกว่าห้าพันรายการในคุก คำตอบที่ดี!
Eric M

5

ล่าสุดfail2ban-client(0.10)มีunban -allคำสั่ง คุกยังสามารถ "รีสตาร์ท" ทีละอย่างเพื่อล้างเรย์แบน

หากคุณมีรุ่นเก่ากว่าเคล็ดลับนี้อาจใช้ได้กับการห้ามแบนชั่วคราวโดยอัตโนมัติ: ลบคุกที่มีคำสั่งห้ามแล้วรีสตาร์ท fail2ban เพื่อให้คุก (ตอนนี้ว่าง) จะถูกสร้างขึ้นใหม่

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

1
- ทั้งหมดหรือ - ทั้งหมด หรือ - ทั้งหมด?
Wildcard

3

บันทึก iptable config เป็นไฟล์

$ iptables-save > iptables.conf

แก้ไขด้วยเครื่องมือแก้ไขที่คุณชอบกว่า load config กลับไปเป็น iptables

$ iptables-restore < iptables.conf

อย่าลืมที่จะจัดเก็บการกำหนดค่าภายใน iptables ดังนั้นมันจะถูกเลือกเมื่อรีบูต

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

นี่เป็นวิธีหนึ่งที่ทำได้ ขอบคุณ
User9102d82

3

1. การหยุดบริการจะทำความสะอาดกฎทั้งหมดที่เพิ่มเข้ามาโดย fail2ban

service fail2ban stop

2. หากคุณไม่มีกฎ iptables อื่น ๆ คุณสามารถล้างออกได้

iptables -F

ระวัง: สิ่งนี้จะลบกฎอื่น ๆ ใน iptables ของคุณ


3

นี่เป็นผู้ประกอบการง่าย ๆ ในการยกเลิกการสั่งห้ามไม่ให้เข้าร่วมทั้งหมด 2 ครั้งในวิธีที่เหมาะสม:

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" ชื่อคุกจริง


นี่คือคำตอบที่ดีที่สุดสำหรับ fail2ban รุ่นร้อง 0.10 คุณสามารถสร้างนามแฝงเพิ่มเติมใน. bashrc เช่น fail2ban-purge ด้วยพารามิเตอร์เดียวเพื่อกำจัดคุกทั้งหมด เพียงแค่แทนที่คำที่กล่าวซ้ำข้างต้นด้วย $ 1 และใช้นามแฝงเป็น fail2ban-purge <JAIL_NAME>
ADDISON74

2

เนื่องจากวิธีการfail2banทำงานมีเพียงสองวิธีเท่านั้น:

  • สร้างสคริปต์การกำหนดค่าไฟร์วอลล์ที่รวมถึงfail2banคุกและรีสตาร์ทไฟร์วอลล์
  • ลบกฎไฟร์วอลล์ที่ปิดกั้น IP ที่คุณต้องการยกเลิกการระงับ

2

นี่คือสคริปต์ที่ฉันใช้เพื่อยกเลิกการห้ามที่อยู่ IP ทั้งหมดสำหรับคุก Ssh (เพียงแทนที่ sshd ที่เกิดขึ้นด้วยชื่อของคุกที่คุณต้องการ ... เช่น 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.