Ketika saya menjalankan perintah ini fail2ban-client status sshd
saya mendapatkan ini:
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
Ini hanya menampilkan dua IP dalam daftar IP yang dilarang, bukan 8 seperti yang dikatakan Total Banned.
Sementara saya melakukannya tail -f /var/log/auth.log
saya mendapatkan ini:
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 yang diblokir masih mencoba.
Namun ketika saya mengecek sudo iptables -L INPUT -v -n
saya mendapatkan ini:
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
Apa yang saya lakukan salah di sini?
Bagaimana saya bisa menampilkan semua daftar IP yang dilarang?
Terima kasih sebelumnya.
bantime
. Jadikan200m
atau bahkan lebih tinggi dan kemudian lakukansudo service fail2ban restart
dan kemudianfail2ban-client status sshd
Jawaban:
Harap perhatikan bahwa larangan IP fail2ban bersifat sementara.
Cara terbaik untuk melihat daftar lengkap IP yang telah diblokir adalah dengan memeriksa file log:
Perintah berikut ini juga dapat memberi Anda daftar aturan input yang bersih:
sumber
Untuk melihat baris lengkap iptables:
Untuk hanya melihat alamat IP:
Anda dapat mengubah "TOLAK" dengan "DROP", tergantung pada kasus Anda.
sumber
Mirip dengan NA AE di atas termasuk komentar kwaa , ini mencantumkan semua IP:
tetapi output itu memiliki banyak baris. Ini menghitung baris semua ip yang diblokir (dan kemungkinan tidak diblokir):
Output dari perintah di atas (dengan jumlah baris) harus cocok dengan jumlah 'Total Dilarang' dalam output status fail2ban:
diuji di Ubuntu 18.04.1 LTS.
Output saya dari baris 'wc-l':
Dan dari status fail2ban, nomor 7244 yang sama diverifikasi:
sumber
Hanya FYI:
Semoga itu bisa membantu.
sumber
jika Anda ingin melihat daftar IP yang terlarang dengan batas waktu mereka (batas waktu habisnya dihapus dari kumpulan yang dilarang) Anda dapat menggunakan:
sumber
Ini akan menunjukkan apa yang saat ini dilarang (TOLAK) di bagian Chain fail2ban-ssh dari iptables.
sumber
Untuk menambahkan jawaban yang lebih umum:
Harap dicatat bahwa iptables mungkin bukan jawaban yang benar dan mungkin tidak memberikan informasi yang relevan sama sekali (untuk poster asli). Itu tergantung pada nilai untuk banaction = [aksi] yang Anda gunakan dalam DEFAULT atau definisi penjara spesifik Anda.
Saya memiliki banyak kotak ARM kecil yang menjalankan linux tetapi kernel tidak memiliki semua modul iptables yang relevan, jadi iptables tidak akan berfungsi dalam hal ini.
* BSD mungkin tidak memiliki iptables sama sekali dan menggunakan sesuatu seperti pf sebagai gantinya.
Pada kotak ARM saya, saya menggunakan rute untuk memblokir. Ini menambah rute yang tidak valid untuk IP yang terlarang dan karenanya paket yang dikembalikan tidak dapat dikirim dan IP pada dasarnya diblokir. Bekerja dengan sangat baik. Dalam hal ini Anda dapat memeriksa IP yang diblokir dengan menggunakan:
Anda memiliki banyak opsi untuk dicekal. Dan karena itu banyak opsi untuk memeriksa daftar larangan. Yang mana untuk digunakan tergantung pada platform dan preferensi Anda. Ada banyak file konfigurasi pra-konfigurasi di: /etc/fail2ban/action.d/ untuk dipilih.
sumber