Soru Günde yüzlerce kırma girişimi yapmak normal midir?


Sadece sunucumu kontrol ettim /var/log/auth.log ve günde 500'den fazla başarısız şifre / ihlal girişimi bildirimi aldığımı fark ettim! Sitem küçük ve URL'si belirsiz. Bu normal mi? Herhangi bir önlem almalı mıyım?


196
2018-03-08 11:26


Menşei


Tüm gereksiz harici kapıları kilitleyene kadar, sadece çok fazla saldırı denemesi yapılmadığını hatırlıyorum, ama bir gün o kadar kötüydü ki iki farklı ülkeden hacklendik - aynı zamanda! Yani evet, 100'lü kırılma girişimleri tamamen normaldir. - Django Reinhardt
Her 16 saniyede bir yeni "saldırı" dizisi yaşayan sunucularımız var. Tek bir sıra, genellikle çeşitli bağlantı noktalarında yaklaşık 100 denemenin bir toplu işidir. Sadece bir gün tekmelemek için güvenlik duvarımızın dışında bir gönderilmemiş sunucu açtım; pwnd almak için açıldıktan sonra 10 dakikadan daha kısa bir sürede çalışır. Noktası İnternet gerçekten bir ormandır; yenmemeye çalış. - NotMe
Soruyu yanlış siteye gönderdiğimi görebiliyorum: superuser.com/questions/200896/... - Justin C
Diğerleriyle aynı fikirdeyim, bu da gerekli ortak bağlantı noktalarında normaldir (80, 443). Bu girişimleri SSH portuna karşı hemen hemen öntanımlı portu 22'den değiştirerek 6022 gibi bir şeyle değiştirdim. Sadece bunu yapmak, tek başına, bu tür saldırıların% 99'unu neredeyse yok etti. - Kilo
SSH bağlantı noktasını değiştirecekseniz, 1024 numaralı bağlantı noktasının altında tutmak için güvenlik nedenleri vardır (yalnızca kök <1024 bağlantı noktalarını açabilir, bu nedenle sizi SSH'yi ele geçiren diğer kullanıcılardan korur). - Brendan Long


Cevaplar:


Bugünün internetinde bu oldukça normaldir. Tüm IP ağlarında bulduğu her sunucuya giriş yapmaya çalışan botnetlerin orduları vardır. Tipik olarak, iyi bilinen hesaplarda (root veya belirli uygulama hesapları gibi) basit sözlük saldırıları kullanırlar.

Saldırı hedefleri Google veya DNS girişleri aracılığıyla bulunmaz, ancak saldırganlar belirli bir alt ağdaki (örneğin, bilinen kök sunucu barındırma şirketlerinin) her IP adresini dener. Dolayısıyla, URL’nizin (dolayısıyla DNS girişi) oldukça belirsizdir.

İşte bu yüzden çok önemlidir:

  • SSH'de root girişine izin vermenasıl)
  • her yerde güçlü şifreler kullanın (web uygulamalarınızda da)
  • SSH için, mümkünse genel anahtar kimlik doğrulamasını kullanın ve şifre-auth'ını tamamen devre dışı bırakın (nasıl)

Ayrıca, yükleyebilirsiniz fail2ban authlog’u tarayacak ve bir IP’den belirli sayıda başarısız giriş denemesi bulursa, söz konusu IP’yi /etc/hosts.deny veya birkaç dakika için saldırganı kilitlemek için iptables / netfilter.

SSH saldırılarına ek olarak, web sunucunuzu savunmasız web uygulamaları (bazı blog uygulamaları, CMS'ler, phpmyadmin, vb.) İçin taramak da yaygınlaşmaktadır. Bu yüzden bunları güncel ve güvenli bir şekilde yapılandırdığınızdan emin olun!


207
2018-03-08 11:35



Fail2ban gibi uygulamalar 'geçici olarak' bu sabahları sunucunuza vurarak sabahları aptalca zamanlarda durdurabilmeleri için çok yardımcı olabilir :-) Ben 24 saat boyunca 3 yanlış girişimi yasaklamak için benim kurdum. - emtunc
Ve ssh'in portunu 22'den 222'ye taşı. Bu oldukça iyi çalışıyor. - Tom O'Connor
+1, yalnızca genel anahtar kimlik doğrulaması :) - 0xC0000022L
@STATUS_ACCESS_DENIED: fail2ban'ın aldığı eylemler sadece çalıştırmak için kabuk komutlarının listesidir. Bu nedenle, herhangi bir özel yapılandırma ile düzgün bir şekilde çalışmak için gerçekten esnek ve kolaydır. En iyi referans, indirmek ve bakmaktır. action.d/iptables.conf. - mattdm
Saldırganların bu şekilde engellenmesi zaman kaybıdır. Kök girişini devre dışı bırakırsanız, hiç kimse şifreli bir şekilde doğru kullanıcı adınızı bile tahmin edemez. SSH'nin kendisi zaten parola taleplerini sınırlayan bir orandır, bu yüzden kullanıcı adınızı (rastgele botlar) bilmese bile, iyi bir şifreniz varsa, bunu asla tahmin edemezler. - Brendan Long


Birkaç 100, sadece iyi ... Geçen ay sunucumlardan birinin 40k başarısız girişimi olduğunu buldum. Onları komplo haline getirme zahmetine gittim: harita

Ssh portunu değiştirip Port Knocking'i uyguladıktan sonra, sayı 0'a düştü :-)


58
2018-03-08 11:36



Güzel harita. Bunu nasıl yapacağımı bilmek isterim! - jftuga
Jftuga Önce bütün IP'leri günlüklerden aldım. grep 'Failed password' /var/log/secure* | grep sshd | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq(çiftlere izin vermek istiyorsanız, sondaki | uniq'i kaldırın). Daha sonra bunları bir CSV'ye yerleştirebilir ve zeemaps.com'a yükleyebilirsiniz. Haritaları renklendirmek için sayımı kullanacakları daha iyi haritalar gördüm (ilçe başına düşen denemelerin sayısı için kırmızıya yeşil) ama ben bir tanesini bulamadım. - Bart De Vos
'Port Knocking'i uygulayarak ne demek istiyorsun? Bunu yapmak için apt-get ile yükleyebileceğim bir uygulama var mı? 0'a düşen sayı güzel geliyor
Belirsizlik yoluyla güvenlik kötü bir sargı alır. Bu kadar mükemmel. Bölüm stratejinin tamamı yerine genel stratejinin Ne de olsa, belirsiz bir dizeden başka bir şifre nedir? - Joel Coel
@Joel Coel, bu bir gizli gizlilik sorunları ile çoğu güvenlik aksine - bir belirsiz, ancak mutlaka gizli bir süreç değil. - tobyodavies


Ben sadece bir tek kullanım için bir "tarpit" ek olarak sadece ortak anahtar kimlik doğrulamasına izin vermek ve kök girişlerini engellemeye.

İçinde netfilter var recent ile kullanabileceğiniz modül (INPUT Zincir):

iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --set --name tarpit --rsource
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 6 --name tarpit --rsource -j DROP
iptables -A INPUT -i if0 -p tcp --dport 22 -j ACCEPT

Ne yapar, 22 numaralı bağlantı noktasına bağlanmak için her girişimde listelenir. recent IP ile modül ve "tarpit" adı altında başka şeyler (merak ediyorsanız, bakın /proc/net/xt_recent/tarpit). Açıkçası diğer isimleri kullanabilirsiniz.

IP'leri kullanmak veya çıkarmak için:

echo "+123.123.123.123" > /proc/net/xt_recent/tarpit
echo "-123.123.123.123" > /proc/net/xt_recent/tarpit

Bu oran, denemeleri 300 saniyede 5 olarak sınırlar. Mevcut bir bağlantıya sahip kullanıcıların bu sınır tarafından rahatsız edilmediğini lütfen unutmayın, çünkü zaten kurulmuş bir bağlantıya sahipler ve daha fazla (oran sınırının üstünde bile olsa) oluşturulmasına izin verilir.

Kuralları beğeninize göre ayarlayın, ancak bu sıraya eklendiklerinden emin olun (yani eklerken, bu sırayla, ters sırayla eklerken bunları kullanın).

Bu, gürültüyü son derece azaltır. Ayrıca, portu değiştirmenin algılanan güvenliğinden farklı olarak gerçek güvenlik (kaba kuvvete karşı) sağlar. Bununla birlikte, eğer ortamınızda uygulanabilirse, bağlantı noktasını değiştirmenizi tavsiye ederim. Gürültü seviyesini de kesecek ...

Bunu hala hatasız ve sadece yukarıdaki kurallara rağmen çalıştırdığım halde, fail2ban ile birleştirebilirsiniz.

DÜZENLE:

Bunu yapmak için kendinizi dışarıda tutmak mümkündür, böylece belirli bir bağlantı noktasını çalarak yasağı kaldırmanızı sağlayan aşağıdaki gibi bir şey ekleyebilirsiniz:

iptables -A INPUT -i if0 -p tcp --dport <knockport> -m state --state NEW -m recent --name tarpit --remove

29
2018-03-08 14:24



Bunu kullanıyorum ve bazen kendimi engellemeyi başarabilirim, böylece başka bir bağlantı noktası açmak için yasağı temizlemek için "tıklayabilirsiniz". - benlumley
@benlumley: iyi nokta. Bağlantı noktası vuruşu, varsayılan bağlantı noktasını değiştirmeye de benzer olabilir - hatta bunların her ikisini de kombinasyon halinde ... - 0xC0000022L
@benlumley: yorumunuzu gördüm (şimdi Sam tarafından kaldırıldı). Cevabın düzeltilip düzeltilmediğini kesinlikle düşünmüyorum;) - 0xC0000022L


Uygulayabilirsin fail2banveya IP'nize SSH'yi kilitlemek gibi benzer yöntemler. Ne yazık ki bots her zaman erişim bruteforce girişimi çok normal, iyi bir şifre olduğundan emin olmanız gerekir.


15
2018-03-08 11:32



SSH kullanıyorsanız, ortak anahtar kimlik doğrulamasını göz önünde bulundurun. Bu, parola kimlik doğrulamasından biraz daha güvenlidir. - Piskvor


Evet. Bugünlerde oldukça normal.

Mümkünse, yalnızca yönetim amaçlı kamu anahtar kimlik doğrulaması kullanın. İş istasyonunda özel bir anahtar oluşturun:

$ ssh-keygen -t dsa

İçeriğini kopyalayın ~ / .Ssh / id_dsa.pub size sunucular ~ / .Ssh / authorized_keys (ve /root/.ssh/authorized_keys, doğrudan root girişine ihtiyacınız varsa).

Sunucularınızı yapılandırın / Etc / SSH / sshd_config yalnızca ortak anahtar kimlik doğrulamasını kabul etmek için:

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin without-password

Çok fazla sunucunuz varsa kullanabilirsiniz Kukla Genel anahtarları ve yapılandırmaları çalıştırmak için.

İçine bakmak Denyhosts ve fail2ban tekrarlanan SSH giriş denemelerini engellemek ve görmek homurdanma Tam IDS / IPS'ye ihtiyacınız varsa.


12
2018-03-09 23:32



Sunucunuza kabuk erişimi için SSH'de açık anahtar kimlik doğrulamasını kullanmanızı önermem. İş istasyonunuz tehlikeye atılıyorsa veya daha da kötüsü çalınırsa, birileri artık parola gerektirmeden sunucularınıza açık erişime sahiptir. Genel anahtar kimlik doğrulaması, komut dosyasına veya programınıza düz metin parolalarını katıştırmanıza gerek kalmadan bir parola gerektirmeden başka bir sisteme SSH erişimi sağlayabilmek için bir komut dosyası veya program gibi bir şeye ihtiyacınız olduğu durumlar için daha fazladır. - Registered User
@Deleted Account: SSH özel anahtarı için bir parola belirtebilirsiniz. - Phil Cohen
"Kayıtlı Kullanıcının" yorumu yanlış yönlendirildi. Sadece açıklığa kavuşturmak için: Her zaman özel anahtarınıza iyi bir şifre koyun ve özel anahtarı herhangi bir sunucuda saklamayın. Özel anahtarı kendi iş istasyonunuzda tutun. Anahtarı bir ssh-agent programına ekledikten ve şifrenizi girdikten sonra, bir kez daha şifrenizi tekrar girmek zorunda kalmadan, ortak anahtarın kurulu olduğu her sisteme giriş yapabilirsiniz. Sunucudan sunucuya giriş yapabilmeniz için ssh istemcinizde aracı yönlendirmeyi etkinleştirin. Özel anahtarınızın çalınması kötüdür, ancak üzerinde iyi bir şifreyle çalınan parola kadar kötü değildir. - Martijn Heemels
Doğru, yöneticinin şifrelenmemiş özel anahtarlarını saklamayı bile düşünmüyorum. - yarek


kullanım http://denyhosts.sourceforge.net/

ve evet, ortak anahtar kimlik doğrulamasını kullanmalı ve parola kimliğini devre dışı bırakmalısınız.


8
2018-03-09 09:37



Parola auth'ını devre dışı bırakmak her zaman geçerli bir çözüm değildir. - Publiccert


Girişimler mekanize edildi, bu yüzden sayılar iyi görünüyor (evet, bazı sitelere kıyasla daha yüksek ve diğerlerine kıyasla daha düşük). Normalde yapmanız gereken adımları uygulamanız gerekir: Saldırı tespit etmediğiniz halde bile sitelerinizi her gün saldırı hedefi olarak kabul edersiniz; bir saldırıyı tespit etmemek, mevcut olmadığı anlamına gelmez.


6
2018-03-08 11:33