Fail2ban ile dovecot ve sasl giriş denemelerini hali hazırda denetleyen bir sistemim mevcut, yakın zamanda bu sisteme web arayüzü entegre ettim.
Seçtiğim sistem RoundCube idi. Roundecube üzerinden şifre denemelerini engellemek için fail2ban’a bir kaç ekleme yaptım;

/etc/fail2ban/filters.d/roundcube.conf dosyasını açın ve şunları yapıştırın; (dosyada sadece bu bilgiler yer alsın)

[Definition]
failregex = Login failed for .*. from
ignoreregex =

Dosyayı kaydedip çıkın.

/etc/fail2ban/jail.conf dosyasını açın en alta şunları ekleyin;

[roundcube]
enabled = true
port = http,https
filter = roundcube
logpath = /var/www/webmail/logs/errors
maxretry = 2

Burada düzenlemeniz gereken en önemli ayrıntı logpath‘tir. Kendi sisteminizde roundcube nerede kurulu ise o pathi veriniz.
maxretry seçeneğini de biraz daha genişletebilirsiniz.

Dosyayı kaydedin ve çıkış yaptıktan sonra fail2ban’ı yeniden çalıştırın;
/etc/init.d/fail2ban restart

Şimdi fail2ban loglarına bakalım ve roundecube aktif mi görelim;

tail -f /var/log/fail2ban.log

2012-01-18 11:56:26,155 fail2ban.filter : INFO Added logfile = /var/www/webmail/logs/errors
2012-01-18 11:56:26,155 fail2ban.filter : INFO Set maxRetry = 2
2012-01-18 11:56:26,157 fail2ban.filter : INFO Set findtime = 600
2012-01-18 11:56:26,157 fail2ban.actions: INFO Set banTime = 600
2012-01-18 11:56:26,163 fail2ban.jail : INFO Jail 'dovecot' started
2012-01-18 11:56:26,170 fail2ban.jail : INFO Jail 'ssh' started
2012-01-18 11:56:26,177 fail2ban.jail : INFO Jail 'sasl' started
2012-01-18 11:56:26,180 fail2ban.jail : INFO Jail 'roundcube' started

Süper, şimdi test etmemiz gerekiyor. Bunun için 600 sn banlanmayı göze alacağız veya alakasız bir baska bilgisayar
üzerinden bu testi yapacağız.
Webmaili açtık ve iki kez ard arda yanlış şifre girdik. Hemen fail2ban'ı kontrol edelim;

tail -f /var/log/fail2ban.log

2012-01-18 11:31:12,607 fail2ban.filter : WARNING Unable to find a corresponding IP address for 192.168.2.2.

Log dosyasında böyle bir hata ile karşılaşacaksınız, bu hatanın sebebini saatlerce aramanıza gerek yok çünkü çözümü burada;
Öncelikle hatanın sebebini daha net görebilmek için log dosyasından bir satır alalım;

tail -f /var/www/webmail/logs/errors

[18-Jan-2012 11:57:15 +0200]: IMAP Error: Login failed for fikri from 192.168.2.2. AUTHENTICATE PLAIN: Authentication failed.
in /var/www/webmail/program/include/rcube_imap.php on line 205 (POST /webmail/?_task=login&_action=login)

Evet burada da bariz bir şekilde görüldüğü üzere roundcube ip adresinin sonuna nokta “.” koyuyor. Bu sebeple
fail2ban geçersiz bir ip adresini banlamaya çalışıyor.

Bu hatanın çözümü için kısaca şu işlemi uygulayınız;

pico /var/www/webmail/program/include/rcube_imap.php
ctrl+w tuş kombinasyonu ile failed kelimesini aratınız.
Karşınıza çıkacak şu satırı;

$message = sprintf("Login failed for %s from %s. %s",

şu şekilde değiştiriniz;

$message = sprintf("Login failed for %s from %s %s",

Dosyayı kayıt edip çıkın, yorumlarınızı bekliyorum.

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir