Bir LAMP ortamında (sshd yum üzerinden yüklenmiş) maksimum giriş denemelerini kurmanın en kolay yolu nedir? Bir paket veya basit bir güvenlik duvarı kuralı var mı?
Bir LAMP ortamında (sshd yum üzerinden yüklenmiş) maksimum giriş denemelerini kurmanın en kolay yolu nedir? Bir paket veya basit bir güvenlik duvarı kuralı var mı?
Yanıtlar:
Kullandığım Fail2ban ; Denyhosts'u geçmişte kullandım ve oldukça iyi çalışıyor. Fail2ban'ı artık daha yapılandırılabilir ve birden fazla farklı hizmeti izlemeyi daha kolay yapabildiğinden (örneğin, sshd'niz ve web uygulamanızın giriş sayfası aynı anda (günlük hataları).
Düşünebileceğiniz başka bir yöntem de LIMIT kuralı uygulamaktır iptables
; Maalesef Shorewall'ı yüklemek istemediğiniz sürece size bu konuda yardımcı olamam ve sonra bir LIMIT kuralını yapılandırmak için birisinin kaba yeteneğini nasıl sınırlayacağınız konusunda sizi o sitedeki mükemmel belgelere doğru yönlendireceğim. sunucunuzu zorlayın.
Herhangi bir üçüncü taraf aracı kullanmaktan hoşlanmıyorum. Bu yüzden ssh yapılandırması ve güvenlik duvarı ayarlarının bir kombinasyonunu kullandım. Aşağıdaki çözümle, bir saldırganın 2 dakika içinde tam olarak 3 hata girişi yapmasına izin verilir veya 120 saniye boyunca engellenir.
1) Aşağıdaki satırı ekleyin /etc/ssh/sshd_config
MaxAuthTries 1
Bu, bağlantı başına yalnızca 1 oturum açma girişimine izin verir. Ssh sunucusunu yeniden başlatın.
2) Aşağıdaki güvenlik duvarı kurallarını ekleyin
Yeni bir zincir oluştur
iptables -N SSHATTACK
iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
iptables -A SSHATTACK -j DROP
Her IP adresini 120 saniye boyunca engelleyin; bu, 120 saniye içinde üçten fazla bağlantı kurar. Dördüncü bağlantı girişimi durumunda, istek SSHATTACK
, olası ssh saldırısının günlüğe kaydedilmesinden sorumlu olan ve son olarak isteği bırakan zincire devredilir .
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK
3) Olası ssh saldırılarının günlük girişlerini /var/log/syslog
Dec 27 18:01:58 ubuntu kernel: [ 510.007570] Possible SSH attack! IN=eth0 OUT= MAC=01:2c:18:47:43:2d:10:c0:31:4d:11:ac:f8:01 SRC=192.168.203.129 DST=192.168.203.128 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30948 DF PROTO=TCP SPT=53272 DPT=1785 WINDOW=14600 RES=0x00 SYN URGP=0
Bunu ayarlamak için SSH ile ilişkili belirli bir paket yok. Ancak ConfigServer & Firewall olan CSF'yi yükleyebilirsiniz.
Dosyada önereceğim iki Yapılandırma değişikliği yapılır: / etc / ssh / sshd_config
Ssh sunucusunun aynı anda işleyeceği doğrulanmamış maksimum bağlantı sayısını sınırlayın. Bu ne kadar küçükse, komut dosyası çocuklarının birden çok bağlantıyla paralel, koordineli çatlama girişimleri yapması o kadar zor olur. düzenleme sshd_config ve MaxStartups varsayılan "10" yerine "3:50:10" değiştirin. İki nokta üst üste ayrılmış değerler ssh sunucusuna "3 kullanıcının aynı anda oturum açmaya çalışmasına izin ver ve 3 ile maksimum 10 arasındaki bağlantı girişimlerini rastgele ve giderek daha fazla düşürmesini" söyler. Not: Bu, oturum açan önemli sayıda geçerli ssh kullanıcısına sahip sunucularda artırılmalıdır.
Bağlantıyı kesmeden önce başarılı bir şekilde oturum açmak için izin verilen maksimum süreyi azaltın. Varsayılan 2 dakika, kimliği doğrulanmamış bir bağlantı girişimini açık tutmak için çok fazla zaman (yukarıya bakın); 30 saniye oturum açmak için yeterli süreden fazla:
Bunun için bu IPTables kurallarını kullanıyorum:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 4 --rttl --name SSH -j DROP
Bu, 4 TCP / SYN paketinin 5 dakika içinde bir IP adresinden yalnızca 22 numaralı bağlantı noktasına izin verir. Daha fazla deneme yaparsa, kapı 5 dakika geçene kadar kapalıdır.
-A INPUT -p tcp -m tcp --dport 22 -m limit --limit 48/hour -j ACCEPT
.
sunucu için sshd_config dosyanıza koyabileceğiniz bir seçenek vardır:
MaxAuthTries
Specifies the maximum number of authentication attempts permitted per
connection. Once the number of failures reaches half this value, additional
failures are logged. The default is 6.