Tüm yasaklanmış ipleri fail2ban ile nasıl gösterebilirim?


36

Bu komutu çalıştırdığımda fail2ban-client status sshdşunu anladım:

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

Total Banned'in dediği gibi, sadece 8 yerine IP yerine yasaklı IP listesinde gösterilir.

Bunu yaparken bunu tail -f /var/log/auth.loganladım:

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

yasaklanan IP hala deneniyor.

Ancak ben kontrol ederken sudo iptables -L INPUT -v -nbu aldım:

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

Neyi yanlış yapıyorum burada?

Tüm yasaklanan IP listesini nasıl gösterebilirim?

Şimdiden teşekkürler.


"Toplam", şu anda yasaklanan toplam değil, yasaklanan toplam anlamına gelir. Daha önce yasaklanmış adresleri bulacağınız tek yer kütüklerin içinde (eğer saklarsanız).
Monica'ya Zarar Vermeyi Durdurun

jail.local veya jail.conf'ta küçük bir tane var gibi gözüküyor bantime. Yapın 200mya da yükseltin ve sonra yapın sudo service fail2ban restartve sonrafail2ban-client status sshd
Allen King,

Yanıtlar:


19

Lütfen IP'nin fail2ban yasaklamasının doğada geçici olduğunu unutmayın.

Engellenen IP'lerin tam listesine bakmanın en iyi yolu, günlük dosyasını kontrol etmektir:

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

Aşağıdaki komut size temiz bir giriş kuralları listesi de verebilir:

sudo iptables -L INPUT -v -n | less

3
Kayıt dosyalarımda sütun yok (bu nedenle grep'i ayarlamak için gerekli). Ancak, bunun ne kadar yaygın olduğunu bilmediğimden / bu son bir değişiklikse, bir düzenleme yerine yorum olarak bırakılıyor.
kwah

İptables kurallarını listelemenin sadece iptables sizin yasaklayıcı eyleminiz olduğunda işe yaradığını unutmayın. Bazen bu durum böyle değil.
gilad mayani

Benim için aynı @kwah, günlük dosyasında iki nokta üst üste. Muhtemelen çıktıda yeni bir değişiklik veya bir yazım hatası.
David Mordigal

':' İfadesini 'Ban' arama teriminden sonra kaldırın çünkü ':' artık günlük dosyasına yazılmamıştır. Böylece yukarıda belirtilen komut ile engellenen IP'leri tekrar görebileceksiniz.
Mario Neubauer

9

Tüm iptables satırını görüntülemek için:

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

Sadece IP adresini görüntülemek için:

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

Durumunuza bağlı olarak "REJECT" i "DROP" ile değiştirebilirsiniz.


6

Yukarıda bulunan Kwaa'nın yorumlarıyla NA AE'ye benzer şekilde , tüm IP'leri listeler:

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

ama bu çıktı çok fazla çizgiye sahip. Bu, giriş yapmış tüm yasaklanmış (ve büyük olasılıkla yasaklanmamış) iplerin satırlarını sayar:

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

Yukarıdaki komutun çıktısı (satır sayımlı) fail2ban'ın durum çıktısında 'Toplam Yasaklı' sayıyla eşleşmelidir:

fail2ban-client status sshd

Ubuntu 18.04.1 LTS'de test edilmiştir.

'Wc -l' satırından çıktım:

7244

Ve fail2ban'ın durumundan aynı 7244 sayısı doğrulandı:

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

Sadece bir Bilginize:

  • "Toplam yasak", bu hapis için yasaklanan (ve muhtemelen yasak olan) toplam IP’lerdir.
  • "Şu anda yasaklanmış", şu anda bu hapis cezasına çarptırılmakta olan SADECE IP'lerdir (ve IP listesi bunu onaylamaktadır).

Umarım yardımcı olur.


4

yasaklı IP listesini zaman aşımına uğramış olarak görmek istiyorsanız (zaman aşımına uğraması yasaklı havuzdan kaldırılır) kullanabilirsiniz:

ipset list

2

Bu, iptables'ın Chain fail2ban-ssh kısmında şu anda neyin yasak olduğunu (REJECT) gösterecektir.

sudo iptables -L fail2ban-ssh -v -n

2

Daha genel bir cevap eklemek için:

Lütfen iptables'ın doğru cevap olmayabilir ve size ilgili hiçbir bilgi vermeyebileceğini unutmayın (orijinal poster için). DEFAULT veya özel hapishane tanımında kullandığınız banaction = [action] için hangi değere bağlı olduğuna bağlıdır .

Linux çalıştıran birçok küçük ARM destekli kutum var ancak çekirdeğin tüm ilgili iptables modülleri yok, bu yüzden iptables bu durumda çalışmayacak.

* BSD hiç iptables olmayabilir ve bunun yerine pf gibi bir şey kullanın.

ARM kutularımda engelleme için rota kullanıyorum . Yasaklanan IP'ler için geçersiz bir yol ekliyor ve bu nedenle iade paketleri teslim edilemiyor ve IP esas olarak engelleniyor. Çok iyi çalışıyor. Bu durumda, yasaklı IP'leri aşağıdakileri kullanarak kontrol edebilirsiniz:

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

Yasaklama için birçok seçeneğiniz var. Ve bu nedenle yasak listesini kontrol etmek için birçok seçenek. Hangisini kullanacağınız, platformunuza ve tercihlerinize göre değişir. /Etc/fail2ban/action.d/ içinde seçim yapabileceğiniz çok önceden konfigüre edilmiş konfigürasyon dosyaları vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.