วิธีแสดง ip ที่ถูกแบนทั้งหมดด้วย fail2ban


36

เมื่อฉันเรียกใช้คำสั่งนี้fail2ban-client status sshdฉันได้รับสิ่งนี้:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     81
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 2
   |- Total banned:     8
   `- Banned IP list:   218.65.30.61 116.31.116.7

มันแสดงเพียงสอง IP ในรายการ IP ที่ถูกแบนแทนที่จะเป็น 8 เหมือนกับที่ Total Banned พูด

ในขณะที่ฉันtail -f /var/log/auth.logฉันได้รับสิ่งนี้:

Mar 29 11:08:40 DBSERVER sshd[29163]: error: maximum authentication attempts exceeded for root from 218.65.30.61 port 50935 ssh2 [preauth]
Mar 29 11:08:40 DBSERVER sshd[29163]: Disconnecting: Too many authentication failures [preauth]
Mar 29 11:08:40 DBSERVER sshd[29163]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.61  user=root
Mar 29 11:08:40 DBSERVER sshd[29163]: PAM service(sshd) ignoring max retries; 6 > 3
Mar 29 11:08:44 DBSERVER sshd[29165]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.61  user=root
Mar 29 11:08:46 DBSERVER sshd[29165]: Failed password for root from 218.65.30.61 port 11857 ssh2
Mar 29 11:09:01 DBSERVER CRON[29172]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 29 11:09:01 DBSERVER CRON[29172]: pam_unix(cron:session): session closed for user root
Mar 29 11:10:01 DBSERVER CRON[29226]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 29 11:10:02 DBSERVER CRON[29226]: pam_unix(cron:session): session closed for user root
Mar 29 11:10:18 DBSERVER sshd[29238]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=113.122.43.185  user=root
Mar 29 11:10:20 DBSERVER sshd[29238]: Failed password for root from 113.122.43.185 port 46017 ssh2
Mar 29 11:10:33 DBSERVER sshd[29238]: message repeated 5 times: [ Failed password for root from 113.122.43.185 port 46017 ssh2]
Mar 29 11:10:33 DBSERVER sshd[29238]: error: maximum authentication attempts exceeded for root from 113.122.43.185 port 46017 ssh2 [preauth]
Mar 29 11:10:33 DBSERVER sshd[29238]: Disconnecting: Too many authentication failures [preauth]
Mar 29 11:10:33 DBSERVER sshd[29238]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=113.122.43.185  user=root
Mar 29 11:10:33 DBSERVER sshd[29238]: PAM service(sshd) ignoring max retries; 6 > 3
Mar 29 11:11:36 DBSERVER sshd[29245]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:11:38 DBSERVER sshd[29245]: Failed password for root from 116.31.116.7 port 24892 ssh2
Mar 29 11:11:43 DBSERVER sshd[29245]: message repeated 2 times: [ Failed password for root from 116.31.116.7 port 24892 ssh2]
Mar 29 11:11:43 DBSERVER sshd[29245]: Received disconnect from 116.31.116.7 port 24892:11:  [preauth]
Mar 29 11:11:43 DBSERVER sshd[29245]: Disconnected from 116.31.116.7 port 24892 [preauth]
Mar 29 11:11:43 DBSERVER sshd[29245]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:12:39 DBSERVER sshd[29247]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:12:41 DBSERVER sshd[29247]: Failed password for root from 116.31.116.7 port 26739 ssh2
Mar 29 11:12:45 DBSERVER sshd[29247]: message repeated 2 times: [ Failed password for root from 116.31.116.7 port 26739 ssh2]
Mar 29 11:12:45 DBSERVER sshd[29247]: Received disconnect from 116.31.116.7 port 26739:11:  [preauth]
Mar 29 11:12:45 DBSERVER sshd[29247]: Disconnected from 116.31.116.7 port 26739 [preauth]
Mar 29 11:12:45 DBSERVER sshd[29247]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:13:41 DBSERVER sshd[29249]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:13:43 DBSERVER sshd[29249]: Failed password for root from 116.31.116.7 port 27040 ssh2

IP ที่ถูกแบนยังคงพยายามอยู่

อย่างไรก็ตามเมื่อฉันตรวจสอบกับsudo iptables -L INPUT -v -nฉันฉันได้รับสิ่งนี้:

Chain INPUT (policy ACCEPT 228 packets, 18000 bytes)
 pkts bytes target     prot opt in     out     source               destination
 6050  435K f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22

ฉันทำอะไรผิดที่นี่

ฉันจะแสดงรายการ IP ที่ถูกแบนทั้งหมดได้อย่างไร

ขอบคุณล่วงหน้า.


"ยอดรวม" หมายถึงยอดรวมที่ไม่เคยถูกห้ามรวมทั้งหมดที่ถูกห้ามในขณะนี้ ที่เดียวที่คุณจะพบที่อยู่ที่ถูกห้ามก่อนหน้านี้อยู่ในบันทึก (ถ้าคุณเก็บไว้)
หยุดทำร้ายโมนิก้า

ใน jail.local หรือ jail.conf bantimeคุณดูเหมือนจะมีขนาดเล็ก ทำมันให้200mสูงขึ้นแล้วทำไปsudo service fail2ban restartแล้วfail2ban-client status sshd
อัลเลนคิง

คำตอบ:


19

โปรดทราบว่าการห้าม IP ที่ล้มเหลว 2 แบนด์เป็นเรื่องชั่วคราว

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

sudo zgrep 'Ban:' /var/log/fail2ban.log*

คำสั่งต่อไปนี้ยังสามารถให้รายการกฎอินพุตที่ชัดเจนแก่คุณ:

sudo iptables -L INPUT -v -n | less

3
ไม่มีเครื่องหมายโคลอนในไฟล์บันทึกของฉัน (จำเป็นต้องปรับ grep) ออกจากความคิดเห็นแทนการแก้ไขเนื่องจากฉันไม่ทราบว่านี่คือสิ่งที่ / ถ้านี่คือการเปลี่ยนแปลงล่าสุด
kwah

โปรดจำไว้ว่าการแสดงรายการกฎ iptables ใช้ได้เฉพาะในกรณีที่ iptables เป็นการกระทำที่ถูกแบน บางครั้งนี่ไม่ใช่กรณี
gilad mayani

@kwah เหมือนกันสำหรับฉันไม่มีโคลอนในไฟล์บันทึก อาจมีการเปลี่ยนแปลงล่าสุดในผลลัพธ์หรือพิมพ์ผิด
David Mordigal

ลบเครื่องหมาย ':' หลังจากคำค้นหา 'แบน' เนื่องจากคำว่า ':' ไม่ได้เขียนไว้ในล็อกไฟล์อีกต่อไป ดังนั้นคุณจะสามารถดู IP ที่ถูกบล็อกอีกครั้งด้วยคำสั่งดังกล่าวข้างต้น
Mario Neubauer

9

วิธีดูบรรทัดที่สมบูรณ์ของ iptables:

sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0"'

วิธีดูเฉพาะที่อยู่ IP:

sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0" {print $4}'

คุณสามารถเปลี่ยน "ปฏิเสธ" โดย "DROP" ขึ้นอยู่กับกรณีของคุณ


6

เช่นเดียวกับNA AEด้านบนที่มีความคิดเห็นของkwaaรวมอยู่ด้วยรายการนี้มี IP ทั้งหมด:

sudo zgrep 'Ban' /var/log/fail2ban.log*

แต่ผลลัพธ์นั้นมีหลายบรรทัด นี่จะนับจำนวนบรรทัดของ ip ที่ถูกแบน (และอาจถูกแบน) เข้าสู่ระบบทั้งหมด:

sudo zgrep 'Ban' /var/log/fail2ban.log* | wc -l

ผลลัพธ์จากคำสั่งด้านบน (ที่มีการนับบรรทัด) ควรตรงกับการนับ 'รวมแบน' ในสถานะเอาท์พุท fail2ban:

fail2ban-client status sshd

ทดสอบใน Ubuntu 18.04.1 LTS

ผลลัพธ์ของฉันจากบรรทัด 'wc -l':

7244

และจากสถานะของ fail2ban หมายเลข 7244 เดียวกันได้รับการยืนยันแล้ว:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 7
|  |- Total failed: 49457
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned: 9
   |- Total banned: 7244
   `- Banned IP list:   [...]

4

เพียงแค่ FYI:

  • "Total แบน" เป็น IP ทั้งหมดที่ถูกแบนสำหรับคุกนั้น (และอาจถูกแบน)
  • "ถูกแบนในขณะนี้" เป็น IP เท่านั้นที่ถูกแบนในขณะนั้นสำหรับคุกนั้น (และรายการ IP ยืนยันสิ่งนี้)

หวังว่าจะช่วย


4

หากคุณต้องการดูรายการของ IP ที่ถูกแบนพร้อมการหมดเวลา (การหมดเวลาหมดอายุจะถูกลบออกจากพูลที่ถูกแบน) คุณสามารถใช้:

ipset list

2

สิ่งนี้จะแสดงสิ่งที่ถูกแบน (REJECT) ในส่วนของเชน fail2ban-ssh ของ iptables

sudo iptables -L fail2ban-ssh -v -n

2

หากต้องการเพิ่มคำตอบทั่วไปให้ทำดังนี้

โปรดทราบว่าiptablesอาจไม่ใช่คำตอบที่ถูกต้องและอาจไม่ให้ข้อมูลที่เกี่ยวข้องกับคุณเลย (สำหรับโปสเตอร์ดั้งเดิม) ขึ้นอยู่กับค่าของbanaction = [การกระทำ] ที่คุณใช้ใน DEFAULT หรือการกำหนดคุกเฉพาะ

ฉันมีกล่อง ARM ARM ขนาดเล็กจำนวนมากที่ใช้ linux แต่เคอร์เนลไม่มีโมดูล iptables ที่เกี่ยวข้องทั้งหมดดังนั้น iptables จะไม่ทำงานในกรณีนั้น

* BSD อาจไม่มี iptables เลยและใช้บางอย่างเช่นpfแทน

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

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
# normal routing entries
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
# banned IPs (no gateway, no iface)
223.96.95.85    -               255.255.255.255 !H    0      -        0 -

คุณมีตัวเลือกมากมายสำหรับการแบน และตัวเลือกมากมายในการตรวจสอบรายการบ้าน ตัวเลือกใดที่จะใช้ขึ้นอยู่กับแพลตฟอร์มและความชอบของคุณ มีไฟล์กำหนดค่าที่กำหนดค่าล่วงหน้าจำนวนมากใน: /etc/fail2ban/action.d/ เพื่อเลือก

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