Sicherheit ssh-Dämon

Hi allerseits,

nachdem kürzlich jemand versucht hat, sich unbefugterweise auf meinem Rechner via ssh einzuloggen mache ich mir nun prinzipielle Gedanken über die Sicherheit dieses Dienstes auf meinem Rechner.
Folgende Situation:

  • Linux-Rechner
  • sshd läuft (Port 22), um ev. von der Arbeit aus auf den Rechner zugreifen zu können
  • root darf nicht einloggen, normaler user darf aber su verwenden.
  • Passwort ist - naja - lang, jedoch kann ich mir bessere vorstellen (aber nicht merken :wink:)

Letztes Wochenende passierte nun folgendes:
Ich saß vor meinem Rechner und sah die Netzwerk-LEDs blinken.
Neugierig geworden befragte ich netstat, das den sshd als „Übeltäter“ identifizierte.
Da ich physisch anwesend war und also ssh nicht brauchte, schaltete ich den Dämon kurzerhand aus. Ein Blick ins Log zeigte, daß offensichtlich jemand (erfolglos) versucht hatte, diverse Usernamen durchzuprobieren - meiner war nicht darunter.

Jeztzt zu meiner Frage:
Ist der ssh-server in dieser Konfiguration ein Sicherheitsrisiko, und wenn ja, was kann man dagegen tun?
Nicht erratbare Usernamen wählen?
SSH auf anderen Port?
Weitere Maßnahmen?

Danke für Eure Meinungen & LG
Stuffi

Letztes Wochenende passierte nun folgendes:
Ich saß vor meinem Rechner und sah die Netzwerk-LEDs blinken.
Neugierig geworden befragte ich netstat, das den sshd als
„Übeltäter“ identifizierte.
Da ich physisch anwesend war und also ssh nicht brauchte,
schaltete ich den Dämon kurzerhand aus. Ein Blick ins Log
zeigte, daß offensichtlich jemand (erfolglos) versucht hatte,
diverse Usernamen durchzuprobieren - meiner war nicht
darunter.

Das ist mehr oder weniger normal, die Verursacher sind normalerweise Zombies, also Rechner von irgendwelchen ignoranten Deppen die sich nicht um die Sicherheit ihrer Rechner kümmern. (Interessanterweise kommen erstaunlich viele Angriffe aus Korea. IMAO sollte man sowieso den kompletten asiatischen Raum mal 'ne Woche vom Internet trennen um zu sehen was passiert.)

Jeztzt zu meiner Frage:
Ist der ssh-server in dieser Konfiguration ein
Sicherheitsrisiko, und wenn ja, was kann man dagegen tun?

Ja, jeder Dienst der Verbindungen von außen annimmt ist ein potentielles Risiko. Dagegen tun kann man ohne die Funktionalität zu beeinträchtigen nicht viel.

Nicht erratbare Usernamen wählen?

Wenn du Paul heisst, dann heisst du Paul. Es hat IMO keinen großen Sinn, die Namen „komplex“ zu machen, dafür ist das Passwort da.

SSH auf anderen Port?

Das sollte helfen, solange keine Portscans verwendet werden um geeignete Ports zu finden.

Weitere Maßnahmen?

  • Zugriffe nur von „bekannt sicheren“ Clients annehmen. Das wird zwar gerne gesagt, ist aber in vielen Fällen total unbrauchbar. Wenn man in einer kontrollierten Umgebung arbeitet, kann man auch gleich telnet benutzen. (Start your flames… NOW!)

  • Kein Zugriff über Passwort sondern nur über Schlüssel. Die sind extrem schwer zu erraten und das wird der dahergelaufene Trojaner auch nicht versuchen. Das setzt allerdings voraus, dass du eine brauchbare Infrastruktur zur Schlüsselvergabe und -verwaltung hast (sprich: Disziplin und 'nen USB-Stick oder ein anderes brauchbares Medium).

Hallo,

  • Zugriffe nur von „bekannt sicheren“ Clients annehmen. Das
    wird zwar gerne gesagt, ist aber in vielen Fällen total
    unbrauchbar.

ACK

Wenn man in einer kontrollierten Umgebung
arbeitet, kann man auch gleich telnet benutzen. (Start your
flames… NOW!)

There is no such thing as a „kontrollierte Umgebung“. Wenn man das dennoch glaubt, sollte man direkt den root-Prompt per Socket verfügbar machen. Sollte mit inetd/xinetd/tcpserver nun wirklich kein Problem sein.

Im Ernst, ist sehe keinen wirklichen Grund, auf SSH zugunsten telnets zu verzichten (okay, meine FritzBox bringt einen telnetd mit aber keinen sshd). „Man sollte“ sich gleich an SSh gewöhnen.

  • Kein Zugriff über Passwort sondern nur über Schlüssel.

ACK.

Sebastian

Wenn man in einer kontrollierten Umgebung
arbeitet, kann man auch gleich telnet benutzen. (Start your
flames… NOW!)

There is no such thing as a „kontrollierte Umgebung“.

Zwei Rechner, Crossover-Kabel oder Nullmodem, keine Verbindung nach außen, auf beiden Rechnern läuft außer telnetd nichts. Das ist es was ich unter einer kontrollierten Umgebung verstehe. Hätte ich vielleicht noch schreiben sollen.

Das ist vollkommen normal und wenn du ein Wörterbuch-Attacken-Sicheres Passwort hast, sollte dies auch ausreichen.

Um das ganze noch sicherer zu machen, google mal nach Port-Knocking

Hallo Stuffi,

nachdem kürzlich jemand versucht hat, sich unbefugterweise auf
meinem Rechner via ssh einzuloggen mache ich mir nun
prinzipielle Gedanken über die Sicherheit dieses Dienstes auf
meinem Rechner.

  • Der einzelne Login-Versuch Schlug fehl, daher kein Grund zur Sorge. Momentan sind keine Remote-Exploits bei den aktuellen sshds bekannt.
  • Ich hab gehört es gibt sshd-Software für Windows, die Standardlogins mit festen, einfachen Passwörtern anlegt. Wahrscheinlich war es ein Wanderer auf diesem Pfad.
  • Bei der Strategie Schlüsselauthentifizierung zu verwenden, ist natürlich abzuwägen, ob das sinnvoll ist (physischer Festplattenzugriff möglich?).
  • Wenn Du sshd nicht brauchst, schalt ihn ab. Wenn Du ihn von außen nicht brauchst, schalt ihn von außen ab.

Gruß,
Markus

Hi,

  • Wenn Du sshd nicht brauchst, schalt ihn ab. Wenn Du ihn von
    außen nicht brauchst, schalt ihn von außen ab.

hat nur den Nachteil das man dann nicht mehr auf den Rechner draufkommt es sein denn vor ort

Gruß,
Markus

Grüße Alex

Nochmals hallo,

zur Zeit wird diskutiert, ob es bei ssh möglich ist, anhand der Differenzzeit von beliebiger Passworteingabe bis Fehlermeldung zwischen gültigen und ungültigen Accountnamen zu unterscheiden. Angeblich soll der Unterschied mit dem bloßen Auge sichtbar sein. Offenbar aber nicht bei jeder Konfiguration (z.B. auf meinen Rechnern nicht). Mehr Infos:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=314645
Wenn es bei Eurem System deutlische Unterschiede gibt, meldet Euch doch mit sshd_config!
Gruß,
Markus