Fail2ban ile Linux Sistemlerini Koruma

caylak29y

Kızıltaş Madencisi
En iyi cevaplar
0
Merhaba Degerli Üyeler Uzun Süredir pek konu Acmıyordum ve Uzun bir süredir Linux Sistemleri İle ve php ile cok ilgim var bilgim pek yok ama ilgim cok meraklıyım Ve Böyle bir konu Acmak istedim konu Alıntırdır bunu En Baştan Söyleyim.

Linux işletim sistemleri ekonomik ve teknik nedenlerden dolayı sunucu (server) pazarında oldukca büyük rağbet görmektedir. Bu durum bilgisayar korsanlarının Linux işletim sistemlerinde yer alan programlar için özel atak metodları geliştirmesine yol açmaktadir.

Bu nedenle Linux makinelerininde atak engelleyici güvenlik programları büyük önem arz etmektedir Fail2ban gibi.

Linux servis sağlayıcılarında SSH servisi, web servisi, mail servisi, FTP servisi gibi çeşitli programlar çalışmaktadır. Tüm bu programların log dosyalarını analiz edip bilgisayar korsanlarına karşı önlem almak oldukça zaman alıcı ve zordur.

Fakat Fail2ban sistem yöneticilerinin hayatını kolaylaştırmaktadır. Fail2ban /var/log/pwdfail ya da /var/log/apache/error_log gibi log dosyalarını taramakta ve eğer olağan dışı fazla hatalı şifre girişi varsa, giriş yapılan IP’yi cezalandırmaktadır. Fail2bangüvenlik duvar kurallarını atağın geldiği IP adreslerini engelleyecek şekilde yeniler.

Bu makalede SSH servisinin özelinde Fail2ban’ın Linux makinelerini bilgisayar korsanlarından nasıl koruduğunu inceleyeceğiz.


SSH(Güvenli Kabuk-Secure Shell)
Tüm Linux sunucularında SSH servisi bulunmaktadir. SSH servisi ile İnternet üzerinden herhangi bir Linux makinesine bağlanılabilir, komut satırıyla makine üzerinde istenilen işlemler gerçekleştirilebilir.

SSH’ın cazip yanı tüm iletişimin kriptolanmiş olmasında yatmaktadır. Bu protokolün açık anahtarlı şifrelemeyi (public/private key encryption) desteklemesi populerliğini daha da artırmaktadır.

SSH’ın varsayılan port numarası 22’dir. Bu değer /etc/ssh/sshd_config dosyasindan değiştirilebilir. Fakat çoğu sistem yöneticisinin bunu değiştirmediği ne yazık ki bir gerçektir. Üstelik root kullanıcısının SSH bağlantısı da çoğu sistemde engellenmemiştir.

Görüleceği üzere bilgisayar korsanının yapması gereken işlem port 22'ye root kullanıcı adını kullanarak sözlük atağıyla (dictionary attack) farklı şifreleri deneyip saldırmaktan ibarettir. Çoğu zaman bilgisayar korsanı ele geçirilmiş makineler ile saldırdığından izinin bulunması hayli güçleşmektedir. Bu durumda atağı önleyip, cezanın otomatik olarak sizin makineniz tarafından verilmesi büyük bir önem kazanmaktadır.

Neden Fail2ban?

Fail2ban harici başka programlarda log dosyalarını analiz edip hücum eden makineleri yasaklayabilir. Fakat Fail2ban’ın bu programlar arasından aşağıdaki tüm özelliklere sahip olması ile sıyrılabilmektedir.

  • İstemci/sunucu
  • Multithreaded
  • Tarih/zaman dilimini otomatik tanıma
  • Logpath opsiyonunda wildcard desteği
  • Çoklu servis desteği (sshd, apache, qmail, proftpd, sasl)
  • Birçok önlem alma şekli (iptables, tcp-wrapper, shorewall, e-mail ile bildirim, etc)
Kurulum

Kurulum Ubuntu 8.10 işletim sistemi ile gerçekleştirilmiş olmakla beraber diğer Linux versiyonlarındaki kurulum aşamaları oldukça benzerdir.

Aşağıdaki komut fail2ban programını kuracaktir.

Kod:
sudo apt-get install fail2ban

Şimdi sıra gerekli konfigurasyonları yapmakta. Konfigurasyon dosyları /etc/fail2ban klasörünün altında bulunmaktadır.

Jail.conf dosyasına bir göz atalım. Burada geliştiricinin uyarısını dikkate alıp bu dosyayı değiştirmeyelim. Bunun yerine tüm değişiklikleri /etc/fail2ban/jail.local dosyasında yapalım.

Bunun için jail.conf dosyasını aşağıdaki komut ile jail.local dosyasına taşıyalım:

Kod:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Ayarlar
Eğer jail.local dosyasına bakarsanız birçok opsiyon görürsünüz. Bu opsiyonları birer birer ele alalim:

enabled
Bölümün aktif edilip edilmediğini tanımlar. Olası değerler 'true' or 'false'.

Filter
Hapis (jail) tarafından eşleşmeleri bulmak için kullanılan filtrenin (filter) ismi.

Bu ‘/etc/fail2ban/filter.d’ klasöründe var olan dosya ismine denk gelir. ( .conf uzantisiz)

Örnegin ‘filter=sshd’ /etc/fail2ban/filter.d/sshd.conf' dosyasına karşılık gelir.

action
Filtremiz bir eşitliği yakaladığı vakit hangi etkinliği yapacağını belirtir.

logpath
Filtremizin hangi log dosyasına bakacağını tanımlar.

ignoreip
Bu opsiyon ayarlandığında ne kadar başarısız login girişimi olursa olsun bunlar yok sayılıp IP'ye ceza kesilmiyecek yani ban’lanmıyacaktır.

maxretry
IP'ye ceza kesimi için ne kadar hatalı giriş yapma hakkı olduğunu belirler. Eğer bu sayıyı 5'e ayarlarsanız altıncı başarısız login girişiminde bulunan IP'ler cezalandırılacak yani bloklanacaktır.

bantime
IP'nin kaç saniye bloke kalacağını belirler.

destmail
Bu opsiyon her hangi bir bloklanma olayında kime e-posta gönderileceğini belirler.

banaction
Bu değişken ile IP hakkında ne türlü bir ceza kesimi olacağına karar verilir.

Bu opsiyon, '/etc/fail2ban/action.d' klasöründe yer alan dosyanın '.conf' uzantısız halini tanımlar. Örnegin, 'action = iptables-allports', '/etc/fail2ban/action.d/iptables-allports.conf' dosyasına karşılık gelir.

Protocol
Standart olarak engellenecek protokoller varsa burada belirtilir.

Vereceğimiz örnekte, fail2ban’in saldırgan makinelerin IP’lerini bloke edip [email protected] adresine whois raporunu içeren e-posta göndermesini sağlıyacağız.

Bu IP adresinin 5 dakikalığına bloke edilmesini istemekteyiz:

Kod:
[DEFAULT]
bantime  = 600
destemail = [email protected]
action = %(action_mw1)s
[ssh]

enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 5

Şimdi fail2ban programını yeniden başlatalım:

Kod:
sudo /etc/init.d/fail2ban restart

Başlangıçta jail.conf adlı dosyada sadece ssh bölümü aktif edilmiştir.

Bu fail2ban programının yalnızca /var/log/auth.log dosyasına bakıp saldırgan IP’leri bloke edecek anlamına gelmektedir. Eğer web, mail, dns ya da ftp sunucularına saldıran IP’leri de engellemek istiyorsak, ‘enabled’ değerini o bölümler için de ayarlamamız ve gerekli filtreleri aktif hale getirmemiz lazımdır.

Test
Hazırladığımız test ortamında iki tane makine mevcuttur: Saldırgan makine ve bizim sunucumuz

Saldırgan makinenin IP’si: --------------

Sunucumuzun IP’si: --------------

Yönetici e-posta adresi: [email protected]

Saldırgan makineden 5 tane başarısız login girişimi yaptıktan sonar e-postamızı kontrol edelim:
Kod:
rom fail2ban@ITSecurity  Thu Jul 16 04:59:24 2009
Subject: [Fail2Ban] ssh: banned ---------
Hi,
The ip --------- has just been banned by Fail2Ban after
5 attempts against ssh.
Here are more information about ---------:
{whois info}
Lines containing IP:123.45.67.89 in /var/log/auth.log
Jul 16 04:59:16 example.com sshd[10390]: Failed password for root from --------- port 46023 ssh2
Jul 16 04:59:18 example.com sshd[10390]: Failed password for root from --------- port 46023 ssh2
Jul 16 04:59:20 example.com sshd[10390]: Failed password for root from --------- port 46023 ssh2
Jul 16 04:59:21 example.comsshd[10394]: reverse mapping checking getaddrinfo for ---------.example.com [---------] failed - POSSIBLE BREAK-IN ATTEMPT!
Jul 16 04:59:22 example.com sshd[10394]: Failed password for root from --------- port 46024 ssh2
Regards,
Fail2Ban

Burada fail2ban bize engellediği IP’yi whois bilgisiyle beraber göndermiştir. Whois bilgisi saldırgan kullanıcıyı organizasyona ihbar etmemiz bakımından oldukça önemlidir. Çoğu şirket gerekli yaptırımları uygulamakta ve kullanıcıyı uyarmaktadir.

Sonuç
Fail2ban, Linux sistemleri daha güvenli hale getiren oldukça iyi bir programdir. Bu teknik yazıda fail2ban programını kendi ihtiyaçlarımız doğrultusunda nasıl kurabileceğimizi ögrendik. Fail2ban, saldırgan IP'leri bloke edebilir ve whois bilgisini e-posta yoluyla bize ulaştırabilir. Böylelikle saldırganı kendi ISP şirketine şikayet edebilir ve böylelikle gelecekte aynı IP’den gelebilecek olası atakların önüne geçebiliriz.


ordaki ----- ler ip idi sensürlemek zorundayım idim kb arkadaşlar.

konunun link-
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.



Not Burda Olsun dedim ii günler Arkadaşlar.







 
Üst