ฉันจะลบแบนทั้งหมด fail2ban ใน Ubuntu ได้อย่างไร ฉันพยายามทุกอย่าง แต่ไม่เข้าใจ
ฉันต้องการลบแบนทั้งหมด - แต่ฉันไม่รู้ที่อยู่ IP ใด ๆ
ฉันจะลบแบนทั้งหมด fail2ban ใน Ubuntu ได้อย่างไร ฉันพยายามทุกอย่าง แต่ไม่เข้าใจ
ฉันต้องการลบแบนทั้งหมด - แต่ฉันไม่รู้ที่อยู่ 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
) หากคุณต้องการลบบล็อกสำหรับที่อยู่ 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 ด้านล่างเพื่อหาเหตุผลในการนับถอยหลัง
echo {5..1}
5 4 3 2 1
วิธีที่ดีที่สุดในการยกเลิกการห้ามแบนไอพีทั้งหมดคือตั้งค่าแบนไทม์เป็น 1 วินาทีจากนั้นไอพีทั้งหมดจะถูกปลดปล่อยทันที
fail2ban-client set JailName bantime 1
หลังจากนั้นคุณสามารถตั้งเวลาห้ามที่เหมาะสมได้
มันจะดีกว่าถ้าปล่อยให้ fail2ban ทำ unban ให้คุณ อย่าแก้ไข iptables ด้วยตนเอง
fail2ban-client status
ล่าสุดfail2ban-client
(0.10)มีunban -all
คำสั่ง คุกยังสามารถ "รีสตาร์ท" ทีละอย่างเพื่อล้างเรย์แบน
หากคุณมีรุ่นเก่ากว่าเคล็ดลับนี้อาจใช้ได้กับการห้ามแบนชั่วคราวโดยอัตโนมัติ: ลบคุกที่มีคำสั่งห้ามแล้วรีสตาร์ท fail2ban เพื่อให้คุก (ตอนนี้ว่าง) จะถูกสร้างขึ้นใหม่
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
บันทึก 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 ]
1. การหยุดบริการจะทำความสะอาดกฎทั้งหมดที่เพิ่มเข้ามาโดย fail2ban
service fail2ban stop
2. หากคุณไม่มีกฎ iptables อื่น ๆ คุณสามารถล้างออกได้
iptables -F
ระวัง: สิ่งนี้จะลบกฎอื่น ๆ ใน iptables ของคุณ
นี่เป็นผู้ประกอบการง่าย ๆ ในการยกเลิกการสั่งห้ามไม่ให้เข้าร่วมทั้งหมด 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
ทำงานมีเพียงสองวิธีเท่านั้น:
fail2ban
คุกและรีสตาร์ทไฟร์วอลล์นี่คือสคริปต์ที่ฉันใช้เพื่อยกเลิกการห้ามที่อยู่ 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