Sunucunuzu Linux'ta Fail2Ban ile nasıl korursunuz?
Sunucu güvenliği, herhangi bir işletme veya kuruluş için en önemli önceliktir. Fail2Ban, bir sistem yöneticisinin araç setindeki en önemli araçlardan biridir. Bu kılavuz, Fail2Ban'in ne olduğunu ve Linux'unuzdaki Fail2Ban ile sunucunuzu saldırılardan nasıl koruyabileceğinizi açıklar.
Fail2Ban nedir?
Fail2Ban, günlük dosyalarını izleyen ve kötü niyetli etkinlik belirtileri gösteren IP adreslerini engelleyen bir saldırı önleme aracıdır. Bunu, günlük dosyalarındaki belirli kalıplarla eşleşen "filtreler" oluşturarak ve rahatsız edici IP adresini engellemek gibi eylemler gerçekleştirerek yapar.
Neden Linux'ta Fail2Ban kullanıyorsunuz?
Fail2Ban'ı Linux'ta kullanmanın birkaç nedeni vardır. Belki:
- Kötü amaçlı IP adreslerini otomatik olarak engelleyerek size zaman kazandırır.
- Bir saldırının başarılı olma şansını azaltarak sunucunuzun güvenliğini sağlamaya yardımcı olun.
- Sunucunuzun izlendiğini ve korunduğunu bilmek size rahatlık verir.
Fail2Ban'ı Linux'a yükleyin
Varsayılan olarak Fail2Ban, Ubuntu depolarında bulunur. Apt kullanarak kurun.
sudo add-apt-repository evren sudo apt update && sudo apt install fail2ban -y
Fail2Ban hizmetini arka planda ayarlayacak, ancak systemd varsayılan olarak devre dışı bırakacaktır. Aşağıdaki komutlarla başlatabilir ve etkinleştirebilirsiniz:
sudo systemctl fail2ban'ı başlat sudo systemctl fail2ban'ı etkinleştir
Fail2Ban'in aşağıdaki komutla çalıştığını doğrulayın:
sudo systemctl durumu fail2ban
Aşağıdaki görüntüye benzer bir çıktı göreceksiniz.
Linux'ta Fail2Ban'i Yapılandırma
“/etc/fail2ban” dizini, Fail2Ban için yapılandırma dosyalarını içerir. Fail2Ban, varsayılan olarak tüm hizmetlere uygulanacak Ayarları içeren bir "jail.conf" dosyasıyla birlikte gelir.
Ancak, yerel bir "jail.local" dosyası oluşturmak ve "jail.conf"taki Ayarları geçersiz kılmak iyi bir uygulamadır çünkü "jail.conf"ta yaptığınız tüm değişiklikler yazılım her güncellendiğinde kaybolacaktır.
Aşağıdaki komutlarla “jail.local” dosyanızı oluşturabilirsiniz:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Düzenlemek için jail.local dosyasını açın:
sudo nano /etc/fail2ban/jail.local
Bilmekte fayda var: öğrenmek LINUX'ta parolasız SSH oturumları nasıl etkinleştirilir?
jail.local dosyasını keşfedin
Aşağıda gösterilene benzer bir çıktı göreceksiniz ve mevcut seçeneklerin sayısı karşısında şaşkına dönebilirsiniz. Ancak endişelenmeyin, size en önemli seçenekleri gösteriyoruz.
Bir simge göreceksiniz "#" satırın başında, bunun bir yorum olduğunu belirtir. Fail2Ban, belirli bir ayarın ne yaptığını açıklamak için bunları kullanır. Bu kodu kaldırarak bazı Ayarları buradan etkinleştirebilirsiniz.
bölüm içerir "[VARSAYILAN]" tüm cezaevleri için geçerli seçenekler hakkında. Bu, Fail2Ban'ın genel yapılandırmasıdır. Aşağıdaki ekran görüntüsü bir örnek göstermektedir.
Hizmet adıyla başlayan başka bölümler de vardır. Bu hapishane, dünya hapishanelerinin üzerinde belirli bir hizmet için geçerlidir.
Örneğin, hapishane için bir bölüm var. "şşd". Bu bölüm sshd hizmeti için seçenekleri içerir.
İpucu: Şuraya giderek sunucu güçlendirme hakkında daha fazla bilgi edinebilirsiniz: SSH sunucunuzun güvenliğini sağlayın.
Autoban özelliğini etkinleştirin
ayara git “ban süresi = 1 saatve kodu kaldır "#" etkinleştirmek için satırın başında. Bu satır, Fail2Ban'in IP adresini devre dışı bırakmasının ne kadar süreceğini ayarlar. Varsayılan birim XNUMX saattir. Dakika gibi diğer birimleri de kullanabilirsiniz. (M) veya günler (D) hatta haftalar (w).
Bu değeri uygun gördüğünüz şekilde artırabilir veya azaltabilirsiniz. Örneğin blok süresini 30 dakikaya indirmek için bu değeri 30 metre olarak değiştirebilirsiniz.
Oturum açma penceresinin varsayılan uzunluğunu değiştirin
Aşağıdaki ayarlar “maxretry” ve “findtime” şeklindedir. Fail2Ban, IP adreslerini bloke etmeden önce bir saldırganın yapabileceği oturum açma girişimi sayısını sınırlar.
"maxretry" ve "findtime" için varsayılan değerler 5 ve 10 m'dir. Bir IP, on dakika içinde beş kez kimlik doğrulamasında başarısız olursa, Fail2Ban bantime ayarı tarafından belirtilen süre boyunca IP'yi bloke eder.
Bu değerleri istediğiniz gibi değiştirebilirsiniz. Örneğin, "maxretry"yi 3'e ve "findtime"ı 5m'ye ayarlayabilirsiniz: Fail2Ban, beş dakika içinde üç kez kimlik doğrulaması yapamazsa bir IP adresini devre dışı bırakır.
Linux'ta Fail2Ban bildirim özelliğini etkinleştirin
Sonraki Ayarlar destemail, sendername ve mta'dır. Bu ayarlar, Fail2Ban'in e-posta bildirimlerini yapılandırmak için kullanacağı ayardır.
- E-posta ayarı, programın bildirimlerini göndereceği e-posta adresidir.
- Gönderenin adı, bildirim e-postasının Kimden alanında görünecek addır.
- mta, Fail2Ban'in e-posta göndermek için kullanacağı posta aktarım aracısıdır. mta varsayılanı sendmail'dir, ancak bunu mail gibi başka bir şeyle değiştirebilirsiniz.
E-posta bildirimleri almak istiyorsanız, bu satırların açıklamasını kaldırmanız ve gösterildiği gibi uygun değerleri girmeniz gerekir.
Bir yasak oluştuğunda, yasakla ilgili detayları aşağıda gösterildiği gibi içeren bir e-posta bildirimi alacaksınız.
Özel blok siparişleri oluşturun
Sonraki ayar "action_=" şeklindedir. Bu, Fail2ban'ın bir IP adresini engellediğinde gerçekleştirdiği eylemi belirtir. Varsayılan, "bantime" sona erene kadar IP'yi engellemek için iptables kullanmaktır.
Aşağıda açıklanan diğer prosedürleri de kullanabilirsiniz. Bu öğretici, basitlik adına varsayılan ayara bağlı kalır.
- action_mw: Bir IP adresi engellendiğinde ilgili WHOIS bilgileriyle birlikte bir e-posta bildirimi gönderir.
- action_mwl: Bir IP adresi engellendiğinde, engellemeye yol açan ilgili WHOIS bilgileri ve günlük dosyası girişleriyle birlikte bir e-posta bildirimi gönderir.
- action_xarf: Bir IP adresi engellendiğinde, engellemeyi tetikleyen günlük dosyası girişleriyle birlikte bir X-ARF e-posta bildirimi gönderir.
Diğer birçok prosedür mevcuttur, ancak bu eğitimde hepsini ele almak imkansızdır. yapabilirsin Mevcut tüm prosedürler hakkında bilgi edinin Fail2ban belgelerinde.
Hizmet için yapılandırmayı etkinleştir
Fail2ban'ın varsayılan davranışını yapılandırmanın yanı sıra, bazı popüler İnternet hizmetleri için önceden hazırlanmış Filtre Dosyalarını kullanmak da mümkündür. Bunlar, geliştiriciler tarafından belirli bir sunucu için belirli günlük çıktılarını aramak üzere yazılan küçük dosyalardır.
Örneğin, “apache-shellshock.conf” dosyası, Fail2ban'ın bir shellshock hatası oluşturmaya yönelik kötü niyetli girişimleri kontrol etmesine izin vermek için gerekli tüm Ayarları içerir.
Sisteminiz için mevcut tüm filtre dosyalarını “/etc/fail2ban/filter.d” dizinini listeleyerek bulabilirsiniz:
ls /etc/fail2ban/filter.d
Kullanmak istediğiniz filtreleri öğrendikten sonra, Fail2ban'a "jail.local" dosyanızı açarak başlatma sırasında bunları yüklemesini söyleyin:
sudo nano /etc/fail2ban/jail.local
"jail.local" içinde yeni filtrelerinizi etkinleştirebileceğiniz bir alan oluşturun. Yorum başlığı ile [DAHİL] bloğu arasında kendiminkini oluşturuyorum.
Etkinleştirmek istediğiniz filtreleri ekleyin. Örneğin, yapılandırmamda kullandığım bir pasaj aşağıdadır:
# Yorumlar: yorum satırları için '#' ve ';' kullanın (bir boşluktan sonra) satır içi yorumlar için [sshd] etkin = true [nginx-bad-request] etkin = true [bitwarden] etkin = true [DAHİL]
Tamamlandığında, dosyayı kaydedin ve kapatın. Değişiklikleri uygulamak için fail2ban'ı yeniden başlatın.
sudo systemctl yeniden başlat fail2ban
Yapılandırmanızı test edin
Artık Linux'ta Fail2Ban'ı yapılandırdığınıza göre, onu test etme zamanı.
Yapılandırmanızı test etmenin en basit yolu, arka arkaya birkaç kez yanlış parolayla oturum açmayı denemektir. Bunu yapmak için bir SSH bağlantısı kullanabilirsiniz.
İmha makinesinde, 'admin' kullanıcı adını kullanarak Fail2ban sunucunuza SSH göndermeyi deneyin. "your_server_ip_address" ifadesini Fail2ban sunucunuzun gerçek IP adresiyle değiştirin.
ssh admin@sunucunuzun_ip_adresi
İstendiğinde rastgele bir şifre girin ve birkaç kez tekrarlayın. Birkaç denemeden sonra, sunucunun bağlantı girişiminizi reddettiğini belirten bir mesaj göreceksiniz.
ssh kullanmanın yanı sıra, Fail Status'u çalıştırarak Fail2ban'daki diğer filtre dosyalarını da test edebilirsiniz. Benim durumumda, bir ana bilgisayarın sunucuyu geçersiz isteklerle doldurup doldurmadığını algılayan "nginx-bad-request" filtresini kullanıyorum.
Bunu bilerek, curl kullanarak web sunucunuza kasıtlı olarak boş istekler göndererek bu özelliği test edebilirsiniz:
curl -H "User-Agent:" -H "Host:" https://yourwebsite.com -v
Linux'ta Fail2Ban rutinlerini kontrol etme
Son olarak, fail2ban'ın gerekli kuralları iptables'a eklediğini doğrulamak için Fail2ban sunucusunda aşağıdaki komutu çalıştırın.
grep komutu, iptables komutunun çıktısını filtreler. -S seçeneği, iptables'a kuralları kolayca ayrıştırılabilir bir biçimde yazdırmasını söyler.
sudo iptables -S | grep f2b
Aşağıdaki görüntüye benzer bir çıktı göreceksiniz. “–reject-with icmp-port-unreachable” bağımsız değişkeni, iptables'a, bağlanmaya çalıştığında istemciye bir ICMP bağlantı noktası erişilemez mesajı göndermesini söyler. Sunucunun engellediği cihazların IP adreslerini de görebilirsiniz.
İpucu: Linux sunucunuzun güvenliğini sağlamak için SELinux'u da kullanmalısınız.
Sık sorulan sorular
S1: Fail2ban bir IP adresini engellediğinde neden boş bir e-posta bildirimi alıyorum?
Cevap: Boş bir e-posta bildirimi alırsanız, muhtemelen posta sunucunuzu doğru şekilde yapılandırmamışsınızdır. Posta sunucusu yapılandırmanızı kontrol edin ve e-posta gönderebildiğinden emin olun.
S2: Bir IP adresinin engellemesini nasıl kaldırabilirim?
Cevap: Öncelikle, IP adresinin şu anda engellendiği hapishaneyi bulun: sudo fail2ban-client status , ardından aşağıdakini çalıştırarak IP adresinin engellemesini kaldırın: sudo fail2ban-client set temizlenmeli .
S3: fail2ban günlük dosyasını nasıl görüntülerim?
Cevap: Sorunları gidermek veya IP adresinin neden engellendiğini öğrenmek için fail2ban günlük dosyasını görüntülemek isteyebilirsiniz. “/var/log/fail2ban.log” dosyası fail2ban tarafından oluşturulan tüm günlükleri içerir. fail2ban günlük dosyasını görüntülemek için cat komutunu kullanın: cat /var/log/fail2ban.log.
S4: Birden çok filtre dosyasını etkinleştirdim. Neden hepsi çalışmıyor?
Cevap: Bu sorun, büyük olasılıkla, bir filtre kendisinden önce gelen farklı bir dosyanın üzerine yazdığı için oluşur. Bunu düzeltmenin bir yolu, birkaç filtreyi bir araya getirerek kendi filtre dosyanızı oluşturmaktır.
S5: Fail2ban, sunucumu bir DoS saldırısından koruyacak mı?
Cevap: Evet ve hayır. Çoğunlukla, Fail2ban, sunucunuza geçersiz istekler gönderen herhangi bir IP'yi engelleyebilir. Ancak, bu programın en büyük kısıtlamalarından biri, günlük kaydı oluşturmayan olaylar üzerinde işlem yapamamasıdır. Bu nedenle, bu tür saldırılar için Linux sunucunuzu diğer araçları kullanarak güvenceye almak yine de önemlidir.