Linux sunucunuzu dış saldırılardan korumak için ipuçları

Sanırım arabayı kullanan insanlar Linux sunucuları bilmek ve hakkında bilmek DenyHOSTS y Fail2ban. Bilmeyenler için ben gidiyorum açıklamak bu ikisi hakkında biraz uygulamaları.

John Fredy Perez bunlardan biri kazananlar haftalık yarışmamızdan: «Linux hakkında bildiklerinizi paylaşın«. Tebrikler! Hakkında endişeli katılmak ve John'un yaptığı gibi topluluğa katkıda bulunmak ister misiniz?

Daha sonra başınızı ağrıtmaması için bu iki uygulamayı yükleyip yapılandıracağız. Öncelikle bu iki uygulamanın ne olduğunu ve işlevlerinin neler olduğunu açıklayalım:

Fail2Ban

Başarısız kayıt girişimlerini arayan ve bu girişimlerin geldiği IP'leri engelleyen bir log analizörüdür. GNU lisansı altında dağıtılır ve genellikle bir saldırı kontrol sistemi veya yerel bir güvenlik duvarı ile arayüz oluşturan tüm sistemlerde çalışır.

Fail2Ban harika bir konfigürasyona sahiptir ve programlar için kurallar da oluşturabilir
kendi veya üçüncü taraflar.

DenyHOSTS

Sanal bir sunucuya kaba kuvvet saldırılarını önlemek için erişim sunucusu günlüklerini izleyen, python ile yazılmış bir güvenlik aracıdır. Program, belirli sayıda başarısız bağlantı girişimini aşan IP adreslerini yasaklayarak çalışır.

Bu Linux uygulamaları - DenyHosts ve Fail2ban - ayrı ayrı veya birlikte kullanılabilir. Benim durumumda ikisinin birlikte çalışmasını sağlıyorum.

Her birinin kurulumu ve yapılandırması kullandığınız dağıtıma bağlıdır. Bu yazı CentOS 6.3'e yöneliktir, ancak diğer dağıtımlar arasındaki farklar çok belirgin değildir.

O halde işe koyulalım.

Fail2Ban Kurulumu ve Konfigürasyonu

Bu uygulama, Linux güvenlik duvarının kendisinde dinamik kurallar oluşturur ve IpTables'da canlı kurallar oluşturmaktan sorumludur.

Montaj

Kurulum için ihtiyacınız olan tek şey:

yum install fail2ban 

Paket görünmüyorsa gerekli depoyu eklemeliyiz:

rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

Bununla uygulamayı bağımlılıklarıyla birlikte yüklemeye başlamalısınız.

Şimdi Fail2Ban'ı istediğimiz günlükleri analiz edecek ve engelleyecek şekilde yapılandırmamız gerekiyor.
IP'ler, e-posta yoluyla bildirim gönderiyor. Bunu yapmak için /etc/fail2ban'da bulduğumuz jail.conf dosyasını değiştirmeliyiz.

cd /etc/fail2ban
nano jail.conf

Bu dosyada aşağıdakilerin yapılması gerekmektedir:

  • Değiştirme ban süresi değeridir, bu değer saldırganın IP'sinin engelleneceği süreyi saniye cinsinden belirler, varsayılan değer 600 saniyedir.
  • Bir IP'nin engellenmeden önce başarısız kimlik doğrulaması yapma sayısı olacak maxretry değerini bulun.
  • İgnoreip parametresine IP'lerimizi ekleyin. Burada uygulama, söz konusu parametredeki kimliği doğrulanmış IP'lerimizi yok sayacaktır.
[VARSAYILAN]
# "ignoreip" bir IP adresi, bir CIDR maskesi veya bir DNS ana bilgisayarı olabilir. Fail2ban olmayacak
# bu listedeki adresle eşleşen bir ana bilgisayarı yasaklayın. Birkaç adres olabilir
# boşluk ayırıcı kullanılarak tanımlandı.
görmezden gelme = 127.0.0.1

# "yasaklama süresi" bir ana bilgisayarın yasaklandığı saniye sayısıdır.
yasak süresi = 600

# Bir ana bilgisayar, son "bulma zamanı" sırasında "maxretry" oluşturmuşsa yasaklanır
# saniye.
bulma zamanı = 600

# "maxretry", bir ana bilgisayarın yasaklanmasından önceki hata sayısıdır.
maksimum deneme = 3

Nasıl görünebileceğine dair bir örnek aşağıdaki gibidir:

görmezden gelme = 127.0.0.1 190.25.242.75 192.168.1.0/24
yasak süresi = 800
maksimum deneme = 2

Fail2Ban ve SSH'yi yapılandırma

Başarısız SSH oturum açma girişimlerini aramak için dosyayı aşağıdaki gibi görünene kadar değiştiririz:

[ssh-iptables] 
etkin = doğru
filtre = sshd
action = iptables[name=SSH, port=22, protokol=tcp]sendmail-whois[name=SSH, dest=FredySnake@outlook.com, sender=fail2ban@localhost]logpath = /var/log/secure # Bu fail2ban'ı analiz edecek günlük
maxretry = 3 # üç veya daha fazla başarısız denemesi olan tüm IP'ler engellenecektir.
bantime = 86400 # 24 saatlik yasaklama süresi saniye cinsinden ifade edilir

SSH'nin dinlediği port'u değiştirdiğinizde port parametresini de değiştirmeniz gerektiğini unutmayın.

Bu uygulama yalnızca SSH'ye yetkisiz erişim için değil, aynı zamanda Apache'nin Yıldız işareti günlüklerini vb. okuması için de çalışır.

DenyHOSTS Kurulumu ve Yapılandırması

Çalışması /etc/hosts.deny dosyasının kullanımına, yani "saldıran" ana bilgisayarların adreslerinin engellenmesine ve reddedilen ana bilgisayarların bir listesinin oluşturulmasına dayanır.

Depolardan kurulumu aşağıdaki komutla alabiliriz:

yum Denyhosts'u kurun 

Yapılandırma dosyası /etc/denyhosts.conf dosyasında bulunur

Devam etmeden önce, insanlar olarak herhangi bir hizmete erişirken ve kendimizi engellerken hatalar yapabilir ve tipik "Katman 8"i uygulayabiliriz. Bunu önlemek için /etc/hosts.allow dosyasını düzenleyip, erişim hatası durumunda kısıtlama getirilmesini istemediğimiz makinelerin IP'lerini ekliyoruz.

Denyhosts.conf dosyasının değiştirilmesi

Konfigürasyonların çok derinlerine inmemek için bu dosyada sadece bazı parametreleri düzenleyip yorumlarını kaldıracağız. Bunlar:

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 saat
SYNC_UPLOAD = evet
SYNC_DOWNLOAD = evet
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 saat

Böylece, pratik olarak varsayılan bir yapılandırmayı bırakacağız, ancak SSH saldırılarına karşı büyük güvenlikle.

nano /etc/hosts.allow

Örnek:

sshd:127.0.0.1 
sshd:192.168.1.10
sshd: 192.168.0.*

Bundan sonra servisi yeniden başlatıyoruz:

/etc/init.d/denyhosts yeniden başlatılıyor

Bununla bir IP'ye, bir IP aralığına ve tabii ki geridöngü arayüzümüze izin veriyoruz. Denemediğim bir şey - bu yüzden çalışıp çalışmadığını bilmiyorum - bu dosyaya DNS eklemek; yani DynDNS gibi hizmetlerle. Eğer yaparsam, nasıl gittiğini sana bildiririm.

Belirli seçenekler ve ayarlarla, DenyHOSTS yapılandırmasında belirttiğimiz süre sonunda saklanan adreslerin temizlenmesini ve başkaları tarafından - eğer belirtirsek - izin vererek yapılan diğer listelerle güncellenmesini de sağlayacağız. sunucuya erişmek için DenyHOSTS.

Saklanan adreslerin yapılandırıldığı gibi zaman zaman temizlenmesini sağlamak için arka plan programının –purge parametresiyle çalıştırılması gerekir:

/etc/init.d/denyhosts start --purge

Buna ek olarak sistemin başına şunu eklemeliyiz:

chkconfig reddetme ana bilgisayarları açık

Yorumunuzu bırakın

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

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.