Fail2ban, brute force saldırılarını engellemek ve sisteminizi kötü niyetli hackerlara karşı korumak için iyi bir yoldur. Yaygın olarak kullanılmakta olan fail2ban ‘ın ana hedefi ssh, apache, courier gibi çeşitli hizmetlere yapılan brute force saldırıları önleyerek böylece hatalı kimlik doğrulama deneme oranını azaltır. Temel olarak log dosyalarını tarayıp hatalı şifre erişimlerini ayırt ederek IP adresini bulmak ve firewall ile (iptables, firewalld, tcpwrapper) erişimini engellemektedir.

– Fail2ban kurulumu için EPEL reposunu sisteminize ekleyiniz.

[[email protected] ~]# yum install epel-release.noarch

– Firewall olarak Centos 7 ile birlikte ön tanımlı gelen FirewallD kullanılacaktır. Dilerseniz iptables veya tcpwrapper kullanabilirsiniz.

– Fail2ban ve fail2ban-systemd (fail2ban-firewalld içerir) paketlerini kurunuz.

[[email protected] ~]# yum install fail2ban.noarch fail2ban-systemd.noarch -y

– Fail2ban yapılandırma dosyasını açınız.

[[email protected] ~]# vi /etc/fail2ban/jail.conf

– SSH erişimlerini kontrol etmesi için “SSH Servers” bölümü altında aşağıdaki şekilde tanımlama yapınız.

[sshd]
enabled = true
maxretry = 3          
bantime = 86400      
port = ssh              
logpath = %(sshd_log)s

maxretry: maksimum deneme sayısı
bantime: saniye cinsinden ban süresi
port: filtrelenecek servis, bkz. /etc/fail2ban/filter.d/

– Fail2ban servisini başlatınız.

[[email protected] ~]# systemctl start fail2ban.service
[[email protected] ~]# systemctl enable fail2ban.service

– Servisin başlaması ile ilgili hata olup olmadığını kontrol ediniz.

[[email protected] ]# journalctl -lfu fail2ban
Feb 19 16:52:17 fail2ban systemd[1]: Starting Fail2Ban Service...
Feb 19 16:52:17 fail2ban fail2ban-client[15700]: 2016-02-19 16:52:17,148 fail2ban.server [15701]: INFO Starting Fail2ban v0.9.3
Feb 19 16:52:17 fail2ban fail2ban-client[15700]: 2016-02-19 16:52:17,148 fail2ban.server [15701]: INFO Starting in daemon mode
Feb 19 16:52:17 fail2ban systemd[1]: Started Fail2Ban Service.

– Mevcut durumu görmek için

[[email protected] ~]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
 |- Currently banned: 0
 |- Total banned: 0
 `- Banned IP list:

– Test için 3 kez yanlış parola ile ssh erişimi yapmayı deneyebilirsiniz. (Farklı bir sunucu üzerinden ssh ile erişmeyi deneyebilirsiniz.)

[[email protected] ~]# ssh [email protected]
 [email protected]'s password:
 Permission denied, please try again.
 [email protected]'s password:
 Permission denied, please try again.
 [email protected]'s password:
 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

– 3 kez yanlış denemeden sonra tekrar erişmek istediğimizde artık fail2ban erişimimizi engelleyecektir.

[[email protected] ~]# ssh [email protected]
ssh: connect to host 192.168.1.102 port 22: Connection refused

– Fail2ban kurduğumuz sunucuya gelerek mevcut durumu kontrol edebilirsiniz. Banned IP List bölümünde engelli ip adresini görebilirsiniz.

[[email protected] ~]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 25
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
 |- Currently banned: 1
 |- Total banned: 1
 `- Banned IP list: 192.168.1.101

– Her ihtimale karşı banlanmış bir ip adresine izin vermek için;

[[email protected] ~]# fail2ban-client set sshd unbanip 192.168.1.101

– Bir IP adresini manuel banlamak için;

[[email protected] ~]# fail2ban-client set sshd banip 192.168.1.101

– Fail2ban statüs durumunu görüntülemek için;

[[email protected] ~]# fail2ban-client status
Status
|- Number of jail: 3
`- Jail list: apache-auth, sshd, wordpress

Yukarıdaki durum çıktısında apache-auth, ssh ve wordpress servisleri için fail2ban ‘da kural oluşturulduğu görülebilmektedir.

Bir cevap yazın

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

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Post Navigation