Vraag Brute kracht aanvallen tegen SSH voorkomen?


Welke tool of techniek gebruik je om brute force-aanvallen tegen je ssh-poort te voorkomen. Ik merkte in mijn beveiligingslogboeken dat ik miljoenen pogingen heb om in te loggen als verschillende gebruikers via ssh.

Dit staat op een FreeBSD-box, maar ik kan me voorstellen dat het overal toepasbaar is.


49
2018-05-04 17:46


oorsprong




antwoorden:


Hier is een goede post over dat onderwerp door Rainer Wichmann.

Het verklaart voor- en nadelen op de volgende methoden om het te doen:

  • Sterke wachtwoorden
  • RSA-authenticatie
  • Gebruik 'iptables' om de aanval te blokkeren
  • Gebruik de sshd log om aanvallen te blokkeren
  • Tcp_wrappers gebruiken om aanvallen te blokkeren
  • Haven klopt

25
2018-05-05 16:53





ik gebruik fail2ban waardoor een IP-adres wordt vergrendeld na meerdere mislukte pogingen voor een configureerbare hoeveelheid tijd.

Combineer dit met wachtwoordsterktetests (met John (John the Ripper)) om te zorgen dat aanvallen met brute kracht niet lukken.


39
2018-05-04 17:53



Fail2ban is uitstekend. Het was eenvoudig om het uit te breiden naar monitor / var / log / maillog en ervoor te zorgen dat persistente spammers mijn mailserver niet konden raken - Dave Cheney
Fail2ban kan worden gecombineerd met een iptables-keten die tcp-verkeer naar de server verzendt TARPIT doelwit, als je je akelig voelt (van xtables-addons). - Tobu


Ons kleine ding dat je kunt doen is iets als DenyHosts gebruiken:

http://denyhosts.sourceforge.net/

Het gebruikt de ingebouwde hosts.allow / hosts.deny om SSH-misbruikers te blokkeren.


24
2018-05-04 18:06





  • Wijzig de poort gebruikt als Trent genoemd)
  • Coderingssleutels vereisen in plaats van wachtwoorden. http://novosial.org/openssh/publickey-auth/
  • blacklist aanvaller ips
  • whitelist bekende gebruikers om onbedoelde blacklisting te voorkomen. (zoals Samiuela vermeldde)

16
2018-05-04 17:53





Een van de gemakkelijkste manieren om deze aanvallen te omzeilen is om de poort waarnaar shshd luistert aan te passen


15
2018-05-04 17:48



Als, natuurlijk, je systeem het kan verdragen. - C. Ross
Beveiliging door middel van obscuriteit, effectief elke keer. - Chris Ballance
Ik zou het niet erg vinden om de poort zo veel te veranderen, maar ik heb geleerd dat de meeste firewalls (anders dan die van mij) de neiging hebben om alle andere poorten dan de algemene (80, 22, 443, enz.) Te vergrendelen. Als ik achter die firewalls zit, kan ik niet naar mijn thuisserver komen op die niet-standaardpoort. Dat is voor mij niet toegestaan. - grieve
@grieve dan onze firewall veranderen om die port te laten gaan? - Rory
@Roy Ik heb het over andere firewalls dan degene die ik bezit. Als ik bijvoorbeeld vanuit Starbucks op mijn thuiscomputer wil sshoppen, blokkeert hun firewall de uitgaande poort. Ik kan dat niet veranderen. (Ik heb zojuist Starbucks als voorbeeld gebruikt, ik heb geen idee welke poorten ze blokkeren of niet). - grieve


Zoals Chris opmerkt, gebruik encryptiesleutels in plaats van wachtwoorden.

Voeg daaraan toe:

  • gebruik waar mogelijk een witte lijst.

Hoeveel mensen of locaties (met zwevende openbare IP's) heb je echt toegang nodig tot je openbare SSH-verbindingen?

Afhankelijk van het aantal openbare ssh-hosts dat je onderhoudt en of je je algemene verbindingscriteria kunt verfijnen, kan het een eenvoudiger, onderhoudsvriendelijke configuratie zijn om de toegang tot een paar externe hosts te beperken.

Als dit voor u werkt, kan het uw administratieve overhead aanzienlijk vereenvoudigen.


12
2018-05-23 17:36



Whitelisting is enorm belangrijk als u op een of andere manier op de zwarte lijst komt, tenzij u buitengesloten wilt raken. - Ryaner
+1 voor pro-actieve whitelisting. - Chris Ballance
+1 voor het absoluut beste antwoord. Die twee dingen zijn de enige redelijke stappen en ze zijn inderdaad zeer effectief. Of alleen is de moeite waard, en beide samen meer. Boe de andere antwoorden die voor de veiligheid door obscuriteit pleiten! - dwc


In aanvulling op de andere goede suggesties, is het heel eenvoudig om inkomende verbindingen te beperken. Beperk tot 3 verbindingen per minuut per IP:

iptables -A INPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

11
2018-05-21 09:04



Ik mis misschien iets, maar veel reguliere browsers maken verbinding tussen 4-6 verbindingen tegelijk - hoewel de HTTP-standaard dit op 2 instelt. - Joshua Enfield
Ja, dat zou een probleem zijn als u poort 80 probeert te beperken. U maakt geen verbinding met SSH via uw webbrowser. Ssh-sessies zijn sessies met een lange levensduur die statische sessies onderhouden, niet van korte duur, zoals http. Parallelle ssh-sessies als dat klopt niet. Dat wil niet zeggen dat er geen niche-gebruik van ssh is dat dit zou breken, maar het is zeldzaam. - sherbang
Deze oplossing is niet zo goed als je, net als ik, Subversion via SSH serveert. Een enkele SVN-query kan snel een groot aantal verbindingen maken. Als u die service verleent, kunt u een tweede sshd-service op een andere poort gebruiken of bekende IP's op de witte lijst plaatsen. Ik denk erover om fail2ban of sshdfilter te gebruiken om voor de eerste keer voor de hand liggende aanvallen te vangen, zonder mijn legitieme gebruikers te straffen. - paddy
goed om deze optie ook te kennen ... - ZEE


Gebruik de optie "AllowUsers" in sshd_config om ervoor te zorgen dat slechts een kleine groep gebruikers zich kan aanmelden. Alle anderen worden geweigerd, zelfs als hun gebruikersnaam en wachtwoord correct zijn.

U kunt gebruikers zelfs beperken tot aanmeldingen van een bepaalde gastheer.

b.v.

AllowUsers user1 user2@host.example.com

Dit verkleint de zoekruimte en vermijdt die oude gebruikers die per ongeluk rondslingeren of zijn ingeschakeld (hoewel deze natuurlijk toch moeten worden uitgeschakeld, dit is een eenvoudige manier om te voorkomen dat ze worden gebruikt voor een SSH-vermelding).

Dit stopt niet volledig de brute-kracht aanvallen, maar helpt het risico te verminderen.


6
2018-05-27 19:20





Gebruik zoiets als PF:

tabel <ssh-brute> persist
blok in snel loggen van label ssh_brute
doorgeven op $ ext_if proto tcp naar ($ ext_if) poort ssh modulate state \
        (max-src-conn-rate 3/10, global overbelasting)


3
2018-05-04 17:52