Làm thế nào để hiển thị tất cả ip bị cấm với fail2ban?


36

Khi tôi chạy lệnh này, fail2ban-client status sshdtôi nhận được:

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

Nó chỉ hiển thị hai IP trong danh sách IP bị cấm thay vì 8 như Total Bned nói.

Trong khi tôi làm tail -f /var/log/auth.logtôi đã nhận được điều này:

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 bị cấm vẫn cố gắng.

Tuy nhiên khi tôi kiểm tra sudo iptables -L INPUT -v -ntôi đã nhận được điều này:

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

Tôi làm gì sai ở đây?

Làm thế nào tôi có thể hiển thị tất cả các danh sách IP bị cấm?

Cảm ơn trước.


"Tổng" có nghĩa là tổng số từng bị cấm, không phải tổng số hiện bị cấm. Nơi duy nhất bạn sẽ tìm thấy các địa chỉ bị cấm trước đó là trong nhật ký (nếu bạn giữ chúng).
Ngừng làm hại Monica

trong jail.local hoặc jail.conf, bạn dường như có một cái nhỏ bantime. Làm cho nó 200mhoặc thậm chí cao hơn và sau đó làm sudo service fail2ban restartvà sau đófail2ban-client status sshd
Allen King

Câu trả lời:


19

Xin lưu ý rằng việc cấm IP2 là tạm thời về bản chất.

Cách tốt nhất để xem danh sách đầy đủ các IP đã bị chặn là kiểm tra tệp nhật ký:

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

Lệnh sau cũng có thể cung cấp cho bạn một danh sách rõ ràng các quy tắc đầu vào:

sudo iptables -L INPUT -v -n | less

3
Không có dấu hai chấm trong logfiles của tôi (do đó cần phải điều chỉnh grep). Tuy nhiên, để lại dưới dạng một nhận xét thay vì chỉnh sửa, vì tôi không biết mức độ phổ biến của nó / nếu đây là một thay đổi gần đây.
kwah

Hãy nhớ rằng việc liệt kê các quy tắc iptables chỉ hoạt động trong trường hợp iptables là hành động cấm của bạn. Đôi khi đây không phải là trường hợp.
gilad mayani

@kwah tương tự với tôi, không có dấu hai chấm trong tệp nhật ký. Có lẽ là một sự thay đổi gần đây trong đầu ra, hoặc một lỗi đánh máy.
David Mordigal

Xóa ':' sau cụm từ tìm kiếm 'Cấm' vì ':' không được ghi trong tệp nhật ký nữa. Vì vậy, bạn sẽ có thể nhìn thấy các IP bị chặn một lần nữa với lệnh được đề cập ở trên.
Mario Neubauer

9

Để xem dòng iptables hoàn chỉnh:

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

Để chỉ xem địa chỉ IP:

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

Bạn có thể thay đổi "DỰ ÁN" bằng "DROP", tùy theo trường hợp của bạn.


6

Tương tự như NA AE ở trên với các bình luận của kwaa , điều này liệt kê tất cả các IP:

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

nhưng đầu ra đó có rất nhiều dòng. Điều này đếm các dòng của tất cả các ip bị cấm đăng nhập (và có khả năng không bị cấm):

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

Đầu ra từ lệnh trên (có số dòng) phải khớp với tổng số 'Tổng số cấm' trong đầu ra trạng thái của fail2ban:

fail2ban-client status sshd

đã thử nghiệm trong Ubuntu 18.04.1 LTS.

Đầu ra của tôi từ dòng 'wc -l':

7244

Và từ trạng thái của fail2ban, cùng một số 7244 được xác minh:

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

Chỉ là một FYI:

  • "Tổng số bị cấm" là tổng số IP đã bị cấm cho nhà tù đó (và có lẽ đã bị cấm).
  • "Hiện tại bị cấm" là các IP CHỈ hiện đang bị cấm cho nhà tù đó (và danh sách IP xác nhận điều này).

Mong rằng sẽ giúp.


4

nếu bạn muốn xem danh sách IP bị cấm khi hết thời gian chờ (hết hạn, chúng sẽ bị xóa khỏi nhóm bị cấm), bạn có thể sử dụng:

ipset list

2

Điều này sẽ hiển thị những gì hiện đang bị cấm (DỰ ÁN) trong phần Chuỗi fail2ban-ssh của iptables.

sudo iptables -L fail2ban-ssh -v -n

2

Để thêm câu trả lời chung chung hơn:

Xin lưu ý rằng iptables có thể không phải là câu trả lời chính xác và có thể không cung cấp cho bạn thông tin liên quan nào cả (đối với poster gốc). Nó phụ thuộc vào giá trị nào cho lệnh cấm = [hành động] bạn đang sử dụng trong DEFAULT hoặc định nghĩa tù cụ thể.

Tôi có nhiều hộp hỗ trợ ARM nhỏ chạy linux nhưng kernel không có sẵn tất cả các mô-đun iptables có liên quan, vì vậy iptables sẽ không hoạt động trong trường hợp đó.

* BSD có thể không có iptables nào cả và sử dụng cái gì đó như pf thay thế.

Trên hộp ARM của tôi, tôi đang sử dụng tuyến đường để chặn. Nó thêm tuyến không hợp lệ cho các IP bị cấm và do đó các gói trả về không thể gửi được và về cơ bản IP bị chặn. Hoạt động rất tốt. Trong trường hợp đó, bạn có thể kiểm tra các IP bị cấm bằng cách sử dụng:

# 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 -

Bạn có nhiều lựa chọn để cấm. Và do đó nhiều lựa chọn để kiểm tra danh sách cấm. Cái nào để sử dụng phụ thuộc vào nền tảng và sở thích của bạn. Có nhiều tệp cấu hình được cấu hình sẵn trong: /etc/fail2ban/action.d/ để chọn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.