Fail2Ban üzerinden SMTP ataklarını engellemek

SMTP üzerinden gelen atakları engellemek için fail2ban’da bazı ayarlar yapmak gerekiyor. Fail2ban ayar dosyaları /etc/fail2ban klasörü içerisinde bulunmaktadır. Öncelikle maillog’larınızı kontrol ederek ne tip şifre denemeleri yapılıyor onları incele.(var/log/maillog veya /var/log/mail gibi…) Ardından gelen şifre denemelerinde şu ibareye rastlayabilirsin:

1
warning: unknown[saldiran_ip]: SASL LOGIN authentication failed: xxxxxxxxxx

Yukarıdaki satır ile mailin log dosyası içerisinde karşılaşacaksınız.

Şimdi, /etc/fail2ban içerisine girelim ve jail.local dosyasımızı açalım. Ve boş bir satıra şunu ekleyelim:

1
2
3
4
5
6
[postfix]
enabled = true
port = 587,25,993
filter = postfix-sasl
logpath = /var/log/maillog
maxretry = 2

Yukarıda postfix adında yeni bir rule tanımladık. Burada dikkat etmeniz gereken yer port kısmı, hangi portlardan engelleyecekseniz o portları yazmanız gerekiyor. İnternet üzerinde default olarak görülen port= smtp, ssmtp çalışmayabilir. Bu nedenle portları elle yazmanızı tavsiye ederim. Ben 587, 25, 993 numaralı portlardan engelle dedim. filter kısmı ise /etc/fail2ban/filter.d/ klasörü içerisindeki hangi filtreyi kullanacağını seçiyoruz. Saldırıyı SASL üzerinden aldığımız için postfix-sasl filtresini yazıyoruz. Bu dosya olarak /etc/fail2ban/filter.d/ klasörü içerisinde mevcuttur. Sonra var mı diye kontrol de edebilirsiniz. Oluşturduğumuz kural hangi log dosyasını dinleyecek onu da logpath kısmına yazıyoruz. Kaç kere denemeden sonra fail2ban ip’yi engelleyecek ben 2 dedim.

Tüm bunları yaptıktan sonra

1
systemctl restart fail2ban

yaptıktan sonra fail2ban-client status diyerek postfix dinlemesi yapıp yapmadığını görebilirsiniz. Deneme yaptınız, 2 kereden sonra herhangi bir engelleme yapmadı. Engelleme yapmadığını da şuradan gördünüz diyelim:

1
iptables -L -n

Burada reject kısmında engellenmesi gereken IP adresi yoksa iki sorundan biri vardır. 1.’si portlarda hata olabilir. 2.’si ise filter.d klasöründe bulunan postfix-sasl.conf dosyasında bazı ayarlar sizin postfix maillog’unuz ile uyumlu olmayabilir. Aşağıda vereceğim kodu şununla değiştirmeyi deneyin. Tekrar fail2ban’ı restart ettiğinizde çalışı çalışmadığın kontrol edin. Postfix’in sürümüne göre filter’da ufak değişiklik olabilir. Bunu internetten sizin araştırmanız gerecek.

Belki çalışacak kod:

1
#failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(:[ A-Za-z0-9+/:]*={0,2})?\s*$
1
failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/ ]*)?$

# ile başlayan default olarak vardı ben # işareti koydum başına. Onun altındakini de siz filter.d/postfix-sasl.conf dosyası içerisine paste edeceksiniz. Sonra tekrar systemctl restart fail2ban diyip deneme yapabilirsiniz.

En Dip Not:
Ben yukarıdaki işlemleri:
Fail2ban 0.9.7
Postfix 3.2.3

ile gerçekleştirdim.

Yalnız oluşturacağınız her rule ram’de yer kaplayacaktır (sadece çalıştığında) bunu da unutmamanınızı tavsiye ederim. Onu nasıl görürüz derseniz aşağıdaki komutla:

1
top

Çıkış içinse “q” basmanız yeterli.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Güvenlik Sorusu *