Merhabalar,
Daha önce Brute Force Saldırısı Nedir ? Nasıl Önlem Alınır ? adlı yazımda Brute Force Saldırıları hakkında bilgi vermiştim ve gerekli birkaç önlemi anlatmıştım.
Bu yazımda ise MySQL yani veritabanımıza yapılan bir brute force saldırısını engellemeyi anlatacağım. Bunu biz apache’nin fail2ban modülünü kullanacağız.
Fail2ban ile MySQL’le yapılan Brute Force Saldırılarını engellemek için aşağıda ki adımları sırasıyla takip ediniz.
1.İlk olarak my.cnf içinde MySQL Error Log kayıtlarını aktif edelim.
log_warnings = 2 log_error = /var/log/mysql/error.log /etc/init.d/mysql restart
2. Daha sonra Fail2Ban için mysql.conf adında bir filtre oluşturuyoruz.
vim /etc/fail2ban/filter.d/mysql.conf
ve oluşturduğumuz bu dosyanın içine aşağıda ki kodları yazın ve dosyayı kaydedin.
[Definition] # Option: failregex # Notes.: regex to match the password failures messages in the logfile. The # host must be matched by a group named “host”. The tag “” can # be used for standard IP/hostname matching and is only an alias for # (?:::f{4,6}:)?(?P[\w\-.^_]+) # Values: TEXT # failregex = Access denied for user ‘.*’@'<HOST>’ # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex =
3. vim /etc/fail2ban/jail.conf dosyasını açalım ve bu dosyanın içerisine aşağıda satırları ekleyip, dosyayı kaydedin.
[mysql] enabled = true port = 6033 filter = mysql logpath = /var/log/mysql/error.log maxretry = 1
4. Fail2ban için oluşturduğumuz filtrenin doğru çalışıp, çalışmadığını kontrol edelim.
fail2ban-regex /var/log/mysql/error.log /etc/fail2ban/filter.d/mysql.conf
Bu kodu çalıştırdığınızda aşağıdaki hataya benzer bir hata alırsanız /usr/share/fail2ban/server/datedetector.py dosyasına aşağıda ki satırları ekleme yapmalıyız.
Hata Mesajı:
Found a match for ‘150813 15:32:54 [Warning] Access denied for user ‘root’@’10.9.5.55’ (using password: YES) ‘ but no valid date/time found for ‘150813 15:32:54 [Warning] Access denied for user ‘root’@’10.9.5.55‘ (using password: YES) ‘. Please contact the author in order to get support for this format
Hata alınırsa vim /usr/share/fail2ban/server/datedetector.py dosyasını açın ve finally: adlı satırı bulun ve aşağıda ki satırları ekleyin.
# MySQL date detector template = DateStrptime() template.setName(“YearMonthDay Hour:Minute:Second”) template.setRegex(“\d{2}\d{2}\d{2} {1,2}\d{1,2}:\d{2}:\d{2}”) template.setPattern(“%y%m%d %H:%M:%S”) self.__templates.append(template)
Kodları doğru şekilde eklediyseniz tekrar Fail2ban için oluşturduğumuz filtremizi kontrol ediyoruz.
fail2ban-regex /var/log/mysql/error.log /etc/fail2ban/filter.d/mysql.conf
Herhangi bir hata almadıysanız aşağıda ki gibi bir mesaj gelecektir konsol ekranınıza.
Success, the total number of match is 46
Bütün bu işlemler SSH ekranında gerçekleştirdik. PuTTy programı yardımıyla yukarıda ki işlemleri gerçekleştirebilirsiniz. Bu yöntem ile MySQL sunucumuza yapılabilecek olan Brute Force Saldırıları engellenmiş oldu.
Yazı Bağlantısını Kopyala & Paylaş
Bir Cevap Yaz