Bilgi Bankası: Linux
Fail2Ban Kurulumu (Fail2Ban & Ubuntu 14.04)
Posted by Veri Merkezi Operasyonları(287) on 06 March 2015 01:52 PM

Brute Force Nedir?
Bir program veye el yordamıyla manuel olarak kötü niyetli kişilerin sisteminizdeki bir servis için kullanıcı adı / parola denemesi yaptığı en temel saldırılardan biridir. Brute Force denemesi yapalan kişi genellikle otomatik olarak şifre üretip ürettiği şifreleri seçtiği adres üzerinde tek tek dener. Dolayısıyla bu tür parola denemelerinin önüne geçmek için sık kullanılan ve kolay tahmin edilebilir parolaları ( 1234 , 123456, 1907, 1905 vb. doğum tarihiniz gibi ) herhangi bir parolaları internet üzerinde kullanmamanızı, sayı + harf + alt karakter içeren şifreler kullanmanızı ve düzenli olarak şifrelerinizi güncellemenizi öneririz.

Ancak yalnızca size ait parolaları sayı+harf+alt karakter kullanmak veya parolaları sıklıkla güncellemek bireysel olarak sahip olduğunuz hesap ve sistemlerin Brute Force ataklarına karşı kolay elde edilebilir olmaktan çıkarsa da bir sistem yöneticisi olarak sizlerin farklı sorumlulukları da bulunmaktadır. Örneğin websayfanızın admin erişimi sağlanan herhangi bir URL 'sinde , mail sunucusundaki herhangi bir e-posta hesabı için , MySQL , FTP veya diğer servisler için sunucunun olduğu kadar, kullanıcılarınıza ait hesaplarında güvenliğini sağlamak durumundasınız.

Dolayısıyla bu gibi durumlarda kullanmak üzere Linux platformlarda yapılandırması kolay ve kullanışlı birçok güvenlik uygulaması bulunmaktadır. Bunlardan bir tanesi de Fail2ban 'dır.

Fail2Ban Nedir?

Fail2ban, sunucunuzdaki log dosyalarını takip ederek çok sayıda hatalı login yapılmaya çalışılan servis için (bir veya birden fazla servis için tanımlama yapılabilir) , fail2ban konfigurasyon yapılandırmasında belirlediğiniz kadar login denemesine izin verir , bu limit aşımı olduğunda Linux sunuculardaki iptables firewall'i kullanarak illegal işlem yapmaya çalışan IP adresi veya adresleri için iptables üzerinde otomatik kural oluşturur. Dolayısıyla bu tür durumlarda kalındığında sistem yöneticisi olarak sizlerin her an sunucuya login olup logları analiz etmesine gerek kalmadan basit ama etkili bir güvenlik otomasyonu oluşturmanızı sağlar.  Fail2ban iptables  yerine alternatif olarak tcpwrapper kullanarak da  hosts.deny dosyasına da belirli servis için belirli IP adresine yasak ekleyebilir.

TCP Wrappers Nedir?
TCP Wrappers, sunucuda kullanılacak bazı servislere kısıtlama getirmek için kullanılmaktadır. TCP Wrappers hangi servislere, hangi IP 'lerin erişebileceğini ya da engelleneceğini belirleyebileceğiniz bir güvenlik uygulamasıdır. Erişim kontrolleri /etc/hosts.allow ve /etc/hosts.deny adında iki dosya ile gerçekleştirilir. Erişim izni verilecekleri hosts.allow dosyasında, engellenecekleri ise hosts.deny dosyasında belirtebilirsiniz. TCP Wrappers hakkında daha detaylı bilgi için aşağıdaki adresi incelemenizi öneririz.

http://www.ciscotr.com/tcp-wrappers.html

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

Aşağıdaki adımlarla DorukNET sistemlerindeki Windows Azure Pack platformu üzerinden Ubuntu Server oluşturabilirsiniz.
http://destek.doruk.net.tr/staff/index.php?/Knowledgebase/ViewKnowledgebase/Article/210/44

Aşağıdaki adımlarla Linux sunucunuza SSH erişimi sağlayabilirsiniz.
http://destek.doruk.net.tr/staff/index.php?/Knowledgebase/ViewKnowledgebase/Article/208/44

Fail2Ban Kurulumu (Fail2Ban & Ubuntu 14.04)

ssh ubuntu@external_ip

# Tarafımızdan dökümante edilen diğer Azure Pack makalelerde de olduğu gibi aksi belirtilmedikçe tüm komutlar root yetkisi ile gerçekleştirilmektedir.

apt-get update
apt-get install fail2ban

Eğer Fail2ban posta bildirimleri göndermek istediğiniz Postfix, Exim veya Sendmail gibi SMTP sunucusu çeşit gerekir. Örneğin, aşağıdaki komutu ile Postfix'in yükleyebilirsiniz

apt-get install postfix -y

# Fail2ban Yapılandırma
Fail2ban uygulamasında ön tanımlı olarak /etc/fail2ban/jail.conf dosyası yapılandırma ve parametrelerin tanımlı olduğu temel dosyadır ancak birçok ingilizce dökümantasyonda best practice olarak /etc/fail2ban/jail.local ismiyle bu dosyanın bir kopyasını oluşturarak ilgili dosya üzerinde yapılandırmanızı oluşturulması önerilmektedir. Tarafımızdan yapılan kurulumda da best practice 'e uygun kullanım tercih edilecektir.

# Varsayılan yapılandırma dosyasını kopyalayın : 
cp /etc/fail2ban/jail.conf   /etc/fail2ban/jail.local

Fail2ban yapılandırma dosyası kopyalandıktan sonra, jail.local dosyasında değişiklik ve eklemeler yapmak gerekir. Herhangi bir metin editörü ile ( vim , vi , nano vs. ) "jail.local" dosyasını açın ve aşağıdaki gibi değişiklikleri gerçekleştiriniz.

vim /etc/fail2ban/jail.local

[DEFAULT] bölümüne:

ignoreip : Bu listedeki bir adres veya adresler için fail2ban kısıtlamaları etkilenmeyecektir. İlgili alanda CIDR Netmask veya tek IP eklenebilir. 

bantime : Fail2ban tarafından engellenen IP için saniye cinsinden ne kadar yasaklı kalacağını belirten alandır. Varsayılan 600 saniyedir (10 dakika)

maxretry = Maksimum kaç başarısız işlem'den sonra "bantime" süresi kadar erişimin kısıtlanacağının tanımlandığı alandır. Varsayılan "3" olarak ayarlıdır.

destemail : Fail2ban işlemleri ile ilgili uyarıların gönderileceği e-postanın tanımlandığı alandır.

logpath = Fail2ban 'ın dikkate alacağı servisin log dosyasıdır.

Eğer varolan filtreler bazı yeni filtreler eklemek istiyorsanız, /etc/fail2ban/filter.d/ dizinde Fail2Ban de kullanabileceğini diğer filitreleri bulabilirsiniz.  Tarafımızdan dökümante edilen Fail2ban Server v0.8.11 sürümüdür. Bu sürümde 46 ayrı filitre mevcuttur.

enable = Fail2ban 'ın dinlediği servis için (Web, Mail, FTP, MySQL vb.) servis için kuralın devreye alınıp alınmayacağını tanımladığımız alandır. Fail2ban üzerinde varsayılan olarak "false" yani pasif durumdadır. Hangi servis için (Web, Mail, FTP, MySQL vb.) Fail2ban kuralının etkin olması isteniyorsa ilgili servis herhangi bir metin editörü vs. kullanılarak " enable = true " olarak değiştirilmelidir.

filter = Hangi filtrenin kullanılacağı belirtilir. Bu filtreler /etc/fail2ban/filter.d dizininde bulunur.

action = Bu parametre fail2ban'ın yasaklama varyasyonlarını belirler.

#action = %(action_)s : Varsayılan halinde, oluşturulan kural çerçevesinde, güvenlik duvarını oluşan trafiği engellemek için kullanır. (The simplest action to take: ban only)

Eğer whois raporu ve Fail2ban ile ilgili uyarıları almak istiyorsanız, action parametresini " %(action_mwl)s " olarak değiştirmenizi öneririz.

# Fail2ban Servisi Durdur / Başlat / Restart işlemleri

Restart
/etc/init.d/fail2ban restart

Stop
/etc/init.d/fail2ban stop

Start
/etc/init.d/fail2ban start

Fail2ban konfigurasyonunda destemail tanımladıktan sonra servis başlat / durdur / restart gibi işlemlerde aşağıdaki gibi mail alabilirsiniz.

 

Fail2ban yapılandırmanızda "action " olarak  action_mw veya action_mwl gibi bir parametre kullanılması durumunda Fail2ban 'in dikkate aldığı servis için ( Web, FTP, E-Posta, MySQL, SSH vb.) aşağıdaki gibi bir mail alabilirsiniz.

Fail2ban tarafndan atılan aşağıdaki mail'de Çin Networküne ait bir IP den SSH servisine yönelik bir kural uygulandığı belirtilmektedir.

Normal şartlarda Fail2ban gibi bir uygulama kullanılmaması durumunda sistem yöneticisi olarak bu logların tarafınızdan manuel olarak analiz edilmesi ve gerekli görülmesi halinde sunucunuzdan uzaklaştırılması gerekmektedir.

Dolayısıyla Fail2ban tarafınızdan belirlenecek bir servis için basit ama pratik bir güvenlik otomasyonu oluşturmuş olmaktadır.

Sununuzda komut satırına " iptables -nvL fail2ban-ssh " yazarak burada Fail2ban tarafından engellendiği belirtilen IP adresi için oluşan kuralı görüntüleyebilirsiniz.

Özellikle Çin ve Rus Network'ünden ne sıklıkla brute force atakları yapıldığı hakkında fikir vermesi için aşağıdaki ekran görüntüsüne dikkat etmenizi öneririz. Fail2ban gibi bir uygulama kullanılmaması durumunda bu tür brute force ataklarının manuel olarak sisteminizden uzaklaştırılmak durumunda olduğunuzu tekrar hatırlatmak isteriz.

Fail2ban yapılandırmanızın hangi servislere yönelik olduğunu " fail2ban-client status " komutuyla kontrol edebilirsiniz.

Buna göre Fail2ban servisi Apache Web Server, Postfix Mail Server, SMTP ve SSH servisleri dahil toplam 4 servis için log analizi takibi ve gerekli durumlarda aksiyon almaktadır. Bu yapılandırmayı örnek alarak yukarıda belirtilen diğer servisler için de talep ettiğiniz kuralları etkinleştirebilirsiniz.

(2 oy)
Bu makale yararlı
Bu makale yararlı değil

Yorumlar (0)
Yorum gönder
 
 
Tam İsim:
E-Posta:
Yorumlar:
Resim Doğrulama 
 
Lütfen alttaki resimde gördüğünüz karakterleri aşağıdaki kutucuğa girin. Bu özellik otomatik kayıt ve form gönderilerini engellemek için uygulanmaktadır.