#1 16. November 2011 Hey, momentan versucht jemand vehement, meinen Server lahmzulegen und einzubrechen. Erst vor ein paar Tagen habe ich einen SYN DoS entdeckt. Der Feind hat sich in unserer Community auf primitive Schreibweise erkennbar gegeben (über VPN und Proxy allerdings, leider nicht nachzuverfolgen), dass er sich zum Ziel gesetzt hat, uns lahmzulegen. Jetzt kommt das nächste, ein ssh Bruteforce á la dem hier (über "lsof -i tcp" an der offenen sshd connection entdeckt): Code: Nov 16 20:33:01 xxx.net sshd[14104]: pam_unix(sshd:auth): check pass; user unknown Nov 16 20:33:01 xxx.net sshd[14104]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=***.106.86.67 Nov 16 20:33:03 xxx.net sshd[14104]: Failed password for invalid user tester from ***.106.86.67 port 36187 ssh2 Nov 16 20:33:06 xxx.net sshd[14106]: Invalid user tester from ***.106.86.67 Nov 16 20:33:06 xxx.net sshd[14106]: pam_unix(sshd:auth): check pass; user unknown Nov 16 20:33:06 xxx.net sshd[14106]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=***.106.86.67 Nov 16 20:33:08 xxx.net sshd[14106]: Failed password for invalid user tester from ***.106.86.67 port 43001 ssh2 Nov 16 20:33:11 xxx.net sshd[14108]: Invalid user tester from ***.106.86.67 Nov 16 20:33:11 xxx.net sshd[14108]: pam_unix(sshd:auth): check pass; user unknown Nov 16 20:33:11 xxx.net sshd[14108]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=***.106.86.67 Nov 16 20:33:13 xxx.net sshd[14108]: Failed password for invalid user tester from ***.106.86.67 port 50405 ssh2 Nov 16 20:33:16 xxx.net sshd[14110]: Invalid user tester from ***.106.86.67 Nov 16 20:33:16 xxx.net sshd[14110]: pam_unix(sshd:auth): check pass; user unknown Nov 16 20:33:16 xxx.net sshd[14110]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=***.106.86.67 Nov 16 20:33:18 xxx.net sshd[14110]: Failed password for invalid user tester from ***.106.86.67 port 56965 ssh2 Nov 16 20:33:20 xxx.net sshd[14114]: Invalid user tester from ***.106.86.67 Nov 16 20:33:20 xxx.net sshd[14114]: pam_unix(sshd:auth): check pass; user unknown Nov 16 20:33:20 xxx.net sshd[14114]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=***.106.86.67 Nov 16 20:33:22 xxx.net sshd[14114]: Failed password for invalid user tester from ***.106.86.67 port 53960 ssh2 Nov 16 20:33:28 xxx.net sshd[14116]: Invalid user tester from ***.106.86.67 Nov 16 20:33:28 xxx.net sshd[14116]: pam_unix(sshd:auth): check pass; user unknown Nov 16 20:33:28 xxx.net sshd[14116]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=***.106.86.67 Nov 16 20:33:30 xxx.net sshd[14116]: Failed password for invalid user tester from ***.106.86.67 port 59679 ssh2 Nov 16 20:33:33 xxx.net sshd[14122]: Invalid user tester from ***.106.86.67 Nov 16 20:33:33 xxx.net sshd[14122]: pam_unix(sshd:auth): check pass; user unknown Nov 16 20:33:33 xxx.net sshd[14122]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=***.106.86.67 Nov 16 20:33:35 xxx.net sshd[14122]: Failed password for invalid user tester from ***.106.86.67 port 42712 ssh2 Nov 16 20:33:37 xxx.net sshd[14132]: Invalid user tester from ***.106.86.67 Nov 16 20:33:37 xxx.net sshd[14132]: pam_unix(sshd:auth): check pass; user unknown Nov 16 20:33:37 xxx.net sshd[14132]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=***.106.86.67 Nov 16 20:33:40 xxx.net sshd[14132]: Failed password for invalid user tester from ***.106.86.67 port 48478 ssh2 Mich nervt das mittlerweile nurnoch. Hab ihn jetzt mal über hosts.deny ausgesperrt. Ich habe schon von fail2ban gehört und auch ein wenig gelesen. Wäre das eine Möglichkeit um Angriffe zu verhindern, wenn man mal gerade nicht auf den Server schaut? Am schönsten wäre eigentlich auch ein Filter, der sich mit einer der vielen IP-Abuse Lists synct und denen garkeinen Zutritt gewährt. Vielen Dank im Voraus! + Multi-Zitat Zitieren
#2 16. November 2011 AW: SSH Bruteforce - Was tun? Ich hatte das gleiche Problem wie du und hab dann fail2ban versucht und alles lief dann auch wunderbar. Der erste satz auf der Seite sagt doch schon alles aus: Fail2ban scans log files like /var/log/pwdfail or /var/log/apache/error_log and bans IP that makes too many password failures. It updates firewall rules to reject the IP address. Ist doch genau das was du willst + Multi-Zitat Zitieren
#3 16. November 2011 AW: SSH Bruteforce - Was tun? Kann da meinem vorredner nur zustimmen. Fail2ban und ruhe is. Ich hab auch ein script für php-Anfragen für fail2ban. dann bist die ständigen anfragen nach php-myadmin und so auch los (google phpmyadmin fail2ban) Greetz jojo + Multi-Zitat Zitieren
#4 16. November 2011 AW: SSH Bruteforce - Was tun? Hey, könntest auch den SSH Port ändern. So Attacken gehen ja meistens sofort an Port 22. lulox + Multi-Zitat Zitieren
#5 17. November 2011 AW: SSH Bruteforce - Was tun? iptables ip blocken (oder gleich ein limit pro anfragen an den ssh port setzen). Ansonsten abuse schreiben und ignorieren. Deine SSH User sollten sich ja eh nur per sicherem Passwort oder Zertifikat authentisieren können. + Multi-Zitat Zitieren
#6 17. November 2011 AW: SSH Bruteforce - Was tun? Hab ich mein meinem Server auch so gemacht. Seit dem ist Ruhe in der auth.log + Multi-Zitat Zitieren
#7 17. November 2011 AW: SSH Bruteforce - Was tun? Nein nein nein... Nur Fail2Ban und ruhe ist defintiv die falsche Lösung .. rofl Um den SSH_Dienst abzusichern: Port ändern auf min XXXXX, keine Passwortauthentitizierung, nur mit Keyfile - dann haste ruhe und kannst auch sicher sein, dass niemand trotz bruteforce, was au immer an Fail2ban vorbei kommt... Bei einem frisch aufgesetztn Root, füllt sich der SSH-Fail log recht schnell. Hat nichtma was zu sagen das dir jemand was will, sondern is alles automatisch, Range scannen, wo Port 22 offen is und try & error so nachn motto. Wichtige Logins ala phpmyadmin, falls man das überhaupt umbedingt braucht immer .htaccess ..... + Multi-Zitat Zitieren
#8 17. November 2011 AW: SSH Bruteforce - Was tun? iptables-limit nicht vergessen, schau hier mal nach: SSH iptables limit recipe. – tummy.com, ltd. ...mfg coach + Multi-Zitat Zitieren
#9 17. November 2011 AW: SSH Bruteforce - Was tun? Naja, wenn man das zeug schon unbedingt braucht, würde ich den Zugriff nur von erlaubten Ips / Ranges (Falls es nicht anders geht) zulassen. Selbes gilt auch für SSH, und sonstige Dienste, die nicht für die Öffentlichkeit gedacht sind. + Multi-Zitat Zitieren
#10 20. November 2011 AW: SSH Bruteforce - Was tun? es gibt da noch andere mögliche spielereien wie z.b. den KnockD. nach außen scheint der server keine offenen ports zu haben, tatsächlich horcht der knockd auf allenm ports und wartet darauf von einem knock clienten ein bestimmtes pingmuster auf verschiedene ports zu erhalten. wenn ein passendes muster erkannt wurde, öffnet der knockd für die quell-id für eine bestimmte zeitspanne einen bestimmten port, z.b. den ssh port. hat allerdings auch nachteile: - alle pakete auf alle ports (oder zumindest die überwachten) müssen vom knockd überwacht und analysiert werden. - kackt der knockd ab, hast du ein problem ^^ + Multi-Zitat Zitieren
#11 20. November 2011 AW: SSH Bruteforce - Was tun? jops, wenn portknocking, dann mit failover-strategie^^ könntest nen kleines watchdog-skript schreiben oder nen entsprechendes programm benutzen. dann solltest langsam sicher genug sein mit den tipps hier xD ...mfg coach + Multi-Zitat Zitieren
#12 20. November 2011 AW: SSH Bruteforce - Was tun? portknocking mit so nem programm kann man aber vorm abstürzen auch noch absichern. Kleiner Cronjob, checkt alle X Minuten ob der Prozess läuft und wenn nicht restart des prozesses ... bzw einmal am tag so restarten. + Multi-Zitat Zitieren
#13 21. November 2011 AW: SSH Bruteforce - Was tun? Ich verwende Denyhosts. Fail2Ban ist etwas unpraktikabel da man hin und wieder auch selbst mal das PW falsch eintippt wird bei "Success" nicht der counter resetet. Fail2Ban für alles andere aber nicht SSH. Port umlegen ist natürlich eine Lösung, fällt bei mir aber praktisch weg da ich sonst von der Arbeit nicht draufkomme. Daher Denyhosts, bin absolut zufrieden und bekomme auch immer schön Reports. Denyhosts Blockierungen greifen natürlich nur bei Programmen die die hosts.deny abfragen. Meist schafft der Angreifer 3 Anfragen dann is Ruhe. Gruß + Multi-Zitat Zitieren