Gast Geschrieben 30. Mai 2008 Teilen Geschrieben 30. Mai 2008 (bearbeitet) hi, hab meinen debian etch server mal wieder fit gemacht und mal in den logs gestoebert ob jemand versucht meinen ssh key zu bruteforcen... dabei is mir aufgefallen das jemand ununterbrochen versucht sich mit lustigen namen einzuloggen und wuerde das gerne irgendwie unterbinden, damit mir nich der traffic bzw. logspace um die ohren fliegt? am besten irgendwie alles von der ip per iptables sperren? 5061 May 30 17:01:15 h1342328 sshd[14170]: Invalid user bacp from xxx.xxx.xxx.xxx 5062 May 30 17:01:17 h1342328 sshd[14172]: Invalid user radmin from xxx.xxx.xxx.xxx 5063 May 30 17:01:18 h1342328 sshd[14174]: Invalid user q from xxx.xxx.xxx.xxx 5064 May 30 17:01:19 h1342328 sshd[14176]: Invalid user ae from xxx.xxx.xxx.xxx 5065 May 30 17:01:20 h1342328 sshd[14178]: Invalid user kw from xxx.xxx.xxx.xxx 5066 May 30 17:01:22 h1342328 sshd[14180]: Invalid user er from xxx.xxx.xxx.xxx 5067 May 30 17:01:23 h1342328 sshd[14182]: Invalid user sms from xxx.xxx.xxx.xxx 5068 May 30 17:01:24 h1342328 sshd[14184]: Invalid user http from xxx.xxx.xxx.xxx 5069 May 30 17:01:25 h1342328 sshd[14187]: Invalid user http from xxx.xxx.xxx.xxx 5070 May 30 17:01:29 h1342328 sshd[14193]: Invalid user apache2 from xxx.xxx.xxx.xxx 5071 May 30 17:01:30 h1342328 sshd[14195]: Invalid user apache2 from xxx.xxx.xxx.xxx 5072 May 30 17:01:31 h1342328 sshd[14197]: Invalid user fo from xxx.xxx.xxx.xxx 5073 May 30 17:01:33 h1342328 sshd[14199]: Invalid user km from xxx.xxx.xxx.xxx 5074 May 30 17:01:34 h1342328 sshd[14202]: Invalid user art from xxx.xxx.xxx.xxx 5075 May 30 17:01:35 h1342328 sshd[14204]: Invalid user home from xxx.xxx.xxx.xxx 5076 May 30 17:01:38 h1342328 sshd[14211]: Invalid user sg from xxx.xxx.xxx.xxx 5077 May 30 17:01:39 h1342328 sshd[14213]: Invalid user kn from xxx.xxx.xxx.xxx 5078 May 30 17:01:40 h1342328 sshd[14216]: Invalid user mn from xxx.xxx.xxx.xxx 5079 May 30 17:01:42 h1342328 sshd[14218]: Invalid user fire from xxx.xxx.xxx.xxx 5080 May 30 17:01:43 h1342328 sshd[14220]: Invalid user firewall from xxx.xxx.xxx.xxx 5081 May 30 17:01:45 h1342328 sshd[14224]: Invalid user oracle from xxx.xxx.xxx.xxx 5082 May 30 17:01:46 h1342328 sshd[14226]: Invalid user user from xxx.xxx.xxx.xxx 5083 May 30 17:01:48 h1342328 sshd[14228]: Invalid user local from xxx.xxx.xxx.xxx 5084 May 30 17:01:49 h1342328 sshd[14230]: Invalid user print from xxx.xxx.xxx.xxx 5085 May 30 17:01:50 h1342328 sshd[14277]: Invalid user sd from xxx.xxx.xxx.xxx edit: hab die ip mal entffernt.. die seite is ja mal von der richtig ekligen pornoschiene Bearbeitet 30. Mai 2008 von nini_knoxville Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 30. Mai 2008 Teilen Geschrieben 30. Mai 2008 (bearbeitet) Leg den SSH-Port einfach auf einen hohen Port um, dann bist du vor 99% der Brute-Force-Angriffe sicher, da sie fast immer nur einen Portscan auf den Standardport machen und schauen, ob SSH läuft. Hatte das Problem bei meinem Server auch mal und seitdem ich einen Port über 5000 gewählt habe, habe ich da keine Probleme mehr mit. Einfach in der /etc/ssh/sshd_config den Port auf z.B. 15243 stellen, abspeichern und SSH neu starten. DAnn versuchen einzuloggen und wenns funktioniert, kann die Verbindung getrennt werden. Den entsprechenden Port sollte man sich natürlich merken/aufschreiben. Wenn die Brute Force Angriffe immer nur von einer IP ausgehen, kann man diese natürlich auch per iptables sperren. Dann kann es aber sein, dass kurz danach das über eine andere IP geht und man das Problem schon wieder hat und man in einem Kreislauf landet. Man könnte natürlich auch komplette IP-Bereiche sperren - von den anderen kann dann aber trotzdem noch was kommen. [edit] Als zusätzliche Absicherung den root-Zugang auf jeden Fall verbieten und den Zugang nur mit einem gültigen SSH-Key erlauben. Dann kann, solange man mit seinem privaten Key sorgsam umgeht, darüber schonmal keiner mehr auf den rechner kommen. Ist zwar vielleicht etwas umständlicher, aber einen USB-Stick mit dem Key immer dabei zu haben ist ja auch normal kein Problem. Wenn dann noch jemand dauernd Logins probiert, hat derjenige es speziell auf den Rechner abgesehen. Per SSH einloggen wird er sich dann aber trotzdem nicht mehr können. Da müsste man dann schauen, was es sonst noch für Zugange oder Sicherheitslücken auf dem System gibt. [/edit] Bearbeitet 30. Mai 2008 von Crash2001 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
t3quill4b0y Geschrieben 31. Mai 2008 Teilen Geschrieben 31. Mai 2008 Ich hab bei mir das "Problem" mit iptables gelöst: 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 recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_brute_force " iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP Sperrt ab dem 4. Anmeldeversuch pro Minute die SourceIP für 60 sek. Die meisten Brutefocre Tools geben dann ganz schnell auf. Lässt sich auch schön auf andere Dienste ausweiten, z.B. FTP (Auf einem Firmen FTP wäre das aber mit vorsicht zu geniessen ) Eine Kombination aus beiden Lösungen is wohl etwas Paranoid, aber da es kaum Aufwand darstellt... wieso nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Geschrieben 31. Mai 2008 Teilen Geschrieben 31. Mai 2008 @Crash2001 das hab ich danacha ls erstes gemacht, also den port umlegen, root logins sind sowieso verboten @t3quill4b0y danke, werde das mal ausprobieren Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarioKuschel Geschrieben 12. April 2010 Teilen Geschrieben 12. April 2010 Nice catch, t3quill4b0y Komplizierter Weg: Du machst das über nen Python Script, welches /var/log/auth.log durchwühlt und nen Iptables Script schreibt um die bösen Leute wegzuschließen. Allerdings nur die bösen Leute, welche versucht haben sich per SSH mit nem User anzumelden, den es nicht gibt. "Failed password for invalid user userxy from 61.178.14.112 port 49549 ssh2" Ich weiß das Ding hat noch Macken Z.B. dass mein Server abschmiert, wenn ich zuviele Iptables regeln reinballer xD (meine auth.log is > 120MB groß und gibt mir 520 einzigartige IP Adresse von bösen Leuten Oo) iptables: Memory allocation problem iptables: Memory allocation problem iptables: Memory allocation problem iptables: Memory allocation problem iptables: Memory allocation problem iptables: Memory allocation problem iptables: Memory allocation problem iptables: Memory allocation problem iptables: Memory allocation problem Python Script #!/usr/bin/python -tt import re import sys import os import stat def main(): file = open("/var/log/auth.log","r") text = file.read() file.close() liste = re.findall(r"Failed password for invalid user \w+ from (\d+.\d+.\d+.\d+) port \d+",text) #Zu filternder String: Sep 16 16:24:54 pv321 sshd[5236]: Failed password for invalid user userxy from 61.178.14.112 port 49549 ssh2 unique_liste = [] for i in range (0,len(liste)): if liste[i] not in unique_liste: unique_liste.append(liste[i]) outputfile = open("/skripte/iptables.sh","w") outputfile.write("#!/bin/sh" + "\n") outputfile.write("IPTABLES=/sbin/iptables" + "\n") outputfile.write("$IPTABLES -F" + "\n") outputfile.write("$IPTABLES -P INPUT ACCEPT" + "\n") outputfile.write("$IPTABLES -P OUTPUT ACCEPT" + "\n") outputfile.write("$IPTABLES -P FORWARD ACCEPT" + "\n") #Automatisch erzeugte Regeln outputfile.write("#---- Automatisch erzeugte Regeln ----" + "\n") for i in range (0,len(unique_liste)): outputfile.write("$IPTABLES -I INPUT -s " + unique_liste[i] + " -i venet -j DROP" + '\n') outputfile.write("#-------------------------------------" + "\n") outputfile.write("###### forwarding ######" + "\n") outputfile.write("echo 1 > /proc/sys/net/ipv4/ip_forward" + "\n") outputfile.write("exit" + "\n") outputfile.close() #Dateirechte vergeben -rwx------ os.chmod("/skripte/iptables.sh", 448) if __name__ == '__main__': main() Durch das Python Script erstelltes Iptables Script #!/bin/sh IPTABLES=/sbin/iptables $IPTABLES -F $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT #---- Automatisch erzeugte Regeln ---- $IPTABLES -I INPUT -s 77.39.19.67 -i venet -j DROP $IPTABLES -I INPUT -s 72.252.208.230 -i venet -j DROP $IPTABLES -I INPUT -s 94.229.71.27 -i venet -j DROP $IPTABLES -I INPUT -s 211.38.137.44 -i venet -j DROP $IPTABLES -I INPUT -s 62.166.203.250 -i venet -j DROP $IPTABLES -I INPUT -s 203.125.118.252 -i venet -j DROP $IPTABLES -I INPUT -s 60.250.38.179 -i venet -j DROP #------------------------------------- ###### forwarding ###### echo 1 > /proc/sys/net/ipv4/ip_forward exit Iptables -L Ausgabe root@pv321:/skripte# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP 0 -- 60-250-38-179.HINET-IP.hinet.net anywhere DROP 0 -- 203.125.118.252 anywhere DROP 0 -- cust203-250.dsl.as47377.net anywhere DROP 0 -- 211.38.137.44 anywhere DROP 0 -- no.rdns-yet.ukservers.com anywhere DROP 0 -- 72.252.208.230 anywhere DROP 0 -- 77.39.19.67 anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Zu kompliziert? Zieht auch die Pyhton Classes von Google rein..fängt an. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 12. April 2010 Teilen Geschrieben 12. April 2010 Für den automatisierten Weg gibt es schon fail2ban, das auch noch weitere Dienste mit "überwachen" kann außer den SSHd. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarioKuschel Geschrieben 12. April 2010 Teilen Geschrieben 12. April 2010 Ja das sieht sehr interessant aus. Danke Lupo Hab das Ding ja au nur gemacht um Pyhton zu lernen Ne super mächtige Scriptsprache, die einfach zu lernen ist Solltet ihr euch bei Gelegenheit mal rauf schaffen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JanK Geschrieben 12. April 2010 Teilen Geschrieben 12. April 2010 Keeping SSH access secure Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.