IPtables ile Fail2ban bloğu Debian Lenny'de çalışmaz. [ssh bağlantı noktasını taşıdı]


11

Son zamanlarda güvenlik bakımı yapmaya karar verdim. Günlüklerimi gördüm ve SSH sunucumda bazı denemeler yapıldı. İlk başta, SSH portunu varsayılan 22'den uzaklaştırdım. Bundan sonra, Fail2ban , BlockHosts ve DenyHosts hakkında bir şeyler okudum .

İlkine baktım: yapılandırması basit, her şey anlaşılabilir; ama "korumasını araştırmaya" çalıştığımda, testler başarısız oldu . Her şey iyi görünüyor, ama yine de sunucuya erişebilirim.

IPtables'ı da test ettim: # iptables -I INPUT -j DROP- bundan sonra SSH bağlantım kesildi (yani, istediğim). Sonra # iptables -I INPUT -s 84.x.y.z -j DROPda işe yaradı.

Ancak, Fail2ban hangi kuralları yaptı, işe yaramadı: ( $ sudo iptables -L)

Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
fail2ban-apache  tcp  --  anywhere             anywhere            multiport dports www,https
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh
fail2ban-ssh-ddos  tcp  --  anywhere             anywhere            multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        

Chain fail2ban-apache (1 references)
target     prot opt source               destination        
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh (1 references)
target     prot opt source               destination        
DROP       all  --  84.x.y.z           anywhere            
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh-ddos (1 references)
target     prot opt source               destination        
RETURN     all  --  anywhere             anywhere

Yüklü çekirdek modülleri: ( $ lsmod | grep ip)

iptable_nat             4680  0
nf_nat                 15576  1 iptable_nat
nf_conntrack_ipv4      12268  3 iptable_nat,nf_nat
nf_conntrack           55540  4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport            2816  2
iptable_filter          2624  1
ip_tables              10160  2 iptable_nat,iptable_filter
x_tables               13284  5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6                  235396  24

sürümleri:

  • Debian Lenny 5.06, çekirdek 2.6.26-2-686
  • IPtables 1.4.2-6
  • Hata2ban 0.8.3-2sid1
  • openssh-server 1: 5.1p1-5

# 1 adım adım test edin:

  1. Fail2ban'ı düşük bantime olarak yapılandırın. 60 saniye. Sonra yeniden yükleyin.
  2. Doğrudan yanlış passwd ile giriş yapmayı deneyin (SSH ile).
  3. 6. kez doğru passwd'yi girin (burada maksimum deneme sayısı 4'tür). Oturum açtım. Bu sunucu tarafından barındırılan web sayfasına da erişebilirim.
  4. iptables -Lbeni yukarıda belirtildiği gibi gösterdi. Böylece yasak aktifti, bağlandığımda sunucuma komut verdi.

Adım 2'yi adım adım test edin:

  1. Fail2ban'ı durdurun. atGelecekte aşağıda yazılı yasağı kaldırmak için bir komut dosyası oluşturun . ( iptables -D INPUT 1)
  2. Yasaklama kuralı oluşturun: iptables -I INPUT 1 -s 84.x.y.z -j DROP
  3. Başka bir şey yazamadım, SSH bağlantısı kullanılamaz. Web sayfasına erişemedim. Yani, ben iptables ne istedim.
  4. atSenaryodan sonra sunucuma erişebilirim.

Çözümü görmüyorum, IPtables yasaklamamın (Fail2ban tarafından yapılmıştır) çalışması için ne yapmalıyım?


Soru düzenlendi! Herhangi bir fikir?
antivirtel

Yanıtlar:


8

Fail2ban yüklemeden önce ne yaptığımı sorun buldum. Zaman ayırdığın için üzgünüm.

Güvenlik nedeniyle, sshd'mi 22 numaralı porttan diğerine taşıdım. İçindeki referans iptablessadece port 22'ye atıfta bulunmaktadır. Her zaman geçerli sshd portunu ifade eden bir değişken olduğunu düşündüm. Ama DEĞİL .

Kesin çözüm (arka planınızı orijinal bağlantı noktasından uzaklaştırdıysanız):

  1. Jail.local (veya .conf) dosyasını açın.
  2. Hizmetinizi bulun (parantez içinde).
  3. portBölümü herkese düzeltin . Misal:port = all
  4. banactionBağlantı noktası satırından sonra iptables-allports değerine sahip mevcut bir satırı ekleyin veya düzenleyin . Örnek: banaction = iptables-allports.
  5. Arka plan programını yeniden başlatın. Örnek: # service fail2ban restart.

port sshDirektifi değiştirmek için bir çözüm bulamadım ya da bir numara yazamadım. Bağlantı noktası olmayan bir çözümünüz varsa, onu dinleyeceğim!


1
Tek yapmanız gereken ad yerine port numarasını sağlamaktır.
Julian Knight

Ayrıca başarılı bir şekilde eklenebilmek için iptable adınızın 32 karakterden az olması gerektiğini unutmayın.
Adrian Lopez

2

Ben ssh sunucumu standart olmayan bağlantı noktası 12345 (diyelim) taşınmış sonra fail2ban ile yasaklanma aynı sorun vardı.

Fail2ban'ın bir dizi başarısız kimlik doğrulama girişiminden sonra doğru kuralları üretmesini sağlamak için düzenledim /etc/fail2ban/jail.conf.

port = ssh 

içine

port = 12345

Benzer bir yaklaşımın standart dışı limanlardaki diğer hizmetler için de işe yarayacağını düşünüyorum.


0

Fail2ban için ayarlar ayarlanmıştır /etc/fail2ban/jail.local. Varsayılan kurulumda orada olup olmadığından emin değilim. O zaman ne yapmanız kopyasıdır jail.confiçin jail.localsize iki dosya var, bu yüzden /etc/fail2ban/. Düzenle jail.local, içeren satıra gidin [ssh]ve şu şekilde etkinleştirin:

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

Bundan sonra fail2ban'ı yeniden başlatın:

sudo /etc/init.d/fail2ban restart

Şimdi çalışması mümkün, ben böyle ayarladım ve işe yarıyor.


Sanırım sorumu anlamadın! Fail2ban istediğim şeyi yapar: günlükleri izle ve saldırganlara yasak koy. Ancak bu yasak, IPtables ne yapmalı, işe yaramıyor. Yukarıda belirtilen kural kurulumuyla, sunucuya hala erişebilirim.
antivirtel

Üzgünüm, acelem vardı, bu yüzden yanlış anladım ve jail.local ekleyerek çözdüğüm aynı sorunu yaşadığım için, bunun yardımcı olacağını düşündüm. Ne yazık ki, her şey doğru ayarlanmışsa, sorunun ne olduğunu bilmiyorum ama umarım başka biri yapar.
enedene

0

Yüklü olarak "Fail2ban 0.8.3-2sid1" listelediniz. Bu desteklenmeyen bir yapılandırmadır. Sid paketleri sabit bir ortama kurulmamalıdır.

Lenny'den yükseltilen Debian 6'yı (Squeeze) bir VM'de evim için bir SSH sunucusu olarak çalıştırıyorum. Ayrıca fail2ban kullanıyorum. Test # 1'inizi gerçekleştirdim ve her şey olması gerektiği gibi çalıştı. Maksimum deneme sayısı için giriş yapamadım ve ardından giriş taleplerim 60 saniye boyunca düştü.

Sürüm listem:

  • / etc / debian_version = 6.0.1
  • fail2ban = 08..4-3
  • iptables = 1.4.8
  • openssh-sunucu = 1: 5.5p1-6


Bu durumda, bir dağıtım yükseltmesi yapmanızı öneririm.
James Sumners

okok, çok kolay değil, ama bir şekilde yapmayı başaracağım ... - belki temiz bir yeniden yükleme
antivirtel

sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade. Oldukça basit.
James Sumners

evet, ama bir dahaki sefere önyükleme yapmama şansı var ... sürüm notları yazdı, yeni kenel + yeni udev sistemi ... - makinenizde başarılı oldu mu?
antivirtel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.