PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie sicher ist SSH



Thovan
19.06.05, 13:02
Hy,

ich konfiguriere gerade den Webserver eines Kumpels - per SSH
jetzt stellt sich für mich die Frage: Wie sicher ist das?

Gibt es eine Möglichkeit, die Sicherheit zu erhöhen?

steve-e
19.06.05, 13:22
Kommt natürlich auf die Konfiguration von SSH. Könntest deine Konfig ja mal zeigen.
Mir reicht SSH von der Sicherheit her und mir fällt auch spontan nichts daran ein, was direkt unsicher sein sollte (von Fehlkonfiguration mal abgesehen). Wenn du ganz paranoid bist kannst ja noch nen VPN-Tunnel drumpacken :ugly:

Tomek
19.06.05, 13:53
Ich würde sagen, dass die Sicherheit von SSH in erster Linie von der Komplexitäts des Passworts abhängt, falls man nicht mit Schlüsseln arbeitet.

phoenix22
19.06.05, 14:02
Ein nettes Spielzeug um SSH gegen Brute Force Attacken abzusichern ist auch noch http://www.pettingers.org/code/SSHBlack.html

Thovan
20.06.05, 07:30
Kommt natürlich auf die Konfiguration von SSH. Könntest deine Konfig ja mal zeigen.

Nun, ich denke mal, dass der Rechner mit Standard-Config läuft und damit nicht sehr sicher sein dürfte.
Leider komme ich von hier (Arbeit) nicht an den Server ran, da unsere Firewall den Port blockt (so soll es ja auch sein :)

Gibt es eine denn Möglichkeit, dass der SSH-Dienst nur Verbindungen von bestimmten IPs zulässt?

chrisi1698
20.06.05, 07:43
erstens solltest du root-login verbieten / nur bestimmte user/gruppen erlauben. zu deiner frage, ich glaub sshd arbeitet mit dem tcp wrapper zusammen. stichworte /etc/hosts.allow /etc/hosts.deny ;)

eine kleine example-config von mir (bitte um verbesserungsvorschlaege ;)


#/etc/ssh/sshd_config
# OpenSSHd main configuration
Port 22

Protocol 2

SyslogFacility AUTHPRIV
Subsystem sftp /usr/libexec/ssh/sftp-server

PrintMotd yes
Banner /etc/ssh/banner.txt


IgnoreRhosts yes
IgnoreUserKnownHosts no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes

StrictModes yes
PermitRootLogin no
PermitEmptyPasswords no
AllowGroups users webusers

MaxAuthTries 3
LoginGraceTime 50
KeepAlive yes
ClientAliveInterval 100
ClientAliveCountMax 10


lg, chrisi

Thovan
20.06.05, 07:49
Danke schonmal!


erstens solltest du root-login verbieten / nur bestimmte user/gruppen erlauben.

Nicht gut!
Der Webserver steht irgendwo im nirgendwo, d.h. es handelt sich um einen gemieteten Rootserver - für dessen Administration braucht man nunmal root oder einen User mit root-Rechten.

Hast Du da evtl. auch eine Lösung?

Ich frage auch deshalb, weil ich mir selbst einen Rootserver mieten werde, vorher aber gerne die größten Mängel absichern will!

chrisi1698
20.06.05, 07:54
*grins*
nur weil du das login verbietest, heisst das nicht, dass du dann nicht als normal-user auf root umloggen kanst ;)

also du verbietest root-login, loggst dich als normal-user ein und machst dann `su -` dazu musst du das PW von 2 leuten kennen... und eine user ID... weil root gibts ja immer. senkt das BF-risiko schon ziemlich...

ausserdem wuerd ich sagen, du verbietest ausser ein oder 2 usern (dir und dem freund fuer den du den server managst) das ssh-einloggen. bzw ich hab meinen webusern als login-shell /bin/rssh gegeben, damit nur sftp, aber kein ssh moeglich ist. http://www.pizzashack.org/rssh/index.shtml

hope it helps ;)

Thovan
20.06.05, 08:27
*grins*
nur weil du das login verbietest, heisst das nicht, dass du dann nicht als normal-user auf root umloggen kanst ;)

Ok, soweit habe ich zu einem Montag-Morgen noch nicht gedacht!




also du verbietest root-login, loggst dich als normal-user ein und machst dann `su -` dazu musst du das PW von 2 leuten kennen... und eine user ID... weil root gibts ja immer. senkt das BF-risiko schon ziemlich...

ausserdem wuerd ich sagen, du verbietest ausser ein oder 2 usern (dir und dem freund fuer den du den server managst) das ssh-einloggen. bzw ich hab meinen webusern als login-shell /bin/rssh gegeben, damit nur sftp, aber kein ssh moeglich ist. http://www.pizzashack.org/rssh/index.shtml


Das verbieten mache ich über die oben genannten dateien /etc/hosts.allow und /etc/hosts.deny???

Ich glaube soviele System-User gibt es gar nicht, aber Danke für den weiterführenden Hinweis!

chrisi1698
20.06.05, 08:50
nope, ueber hosts.{allow|deny} kannst du IP's zulassen/verbieten.
lies dir dazu am besten
% man hosts_access
durch

user/gruppen verbietest du so, wie ichs in der beispielconf schon geschrieben hab

PermitRootLogin no
PermitEmptyPasswords no
AllowGroups users webusers
vice versa dazu gibts AllowUsers / DenyUsers, steht aber alles in `% man sshd` :)

lg und noch nen schoenen montagmorgen ;)

steve-e
20.06.05, 14:10
Hier mal ein paar Links, die ich dir empfehlen kann.
Ich mache es zurzeit so, dass ich nur einem bestimmten User den Zugang über SSH gewährt habe. Dieser kann sich nur über einen Schlüssel mit dazugehöriger Passphrase authorisieren.


http://www.debianhowto.de/de/howtos/woody/ssh?s=ssh&DokuWiki=b39638cfb8fc7cff5f9ce089c948c6f6
http://www.linuxsecurity.com/docs/harden-doc/html/securing-debian-howto/ch-sec-services.en.html#s5.1
http://www.jfranken.de/homepages/johannes/vortraege/ssh1.de.html

linuxhanz
20.06.05, 15:00
*Keyexchange beim ersten Verbinden beobachten
(weiss nicht ob das noch so aktuell ist)
*nie an fremden Kisten ssh/scp nutzen
*Timeout setzen, falls du mal vergisst dich auzuloggen
*AllowTCPForwarding ist glaube ich im Normalen Betrieb
nicht noetig
* Mal ueber die Login Zeit nachdenken (*)
* ggf. noch das Banner im Binary abstellen, aber das ist
nur Kosmetic


gruss LH


edit: Achso, DenyUsers * solte nie gesetzt sein, weil das *Ding*
keine ACL's kann , oder sagen wir mal so, wenn das drin steht, egal
an welcher Stelle wird es benutzt. bzw. DenyGroup...

*http://www.usenix.org/events/sec01/song.html

BloodyBullet
20.06.05, 15:59
Angemerkt sei noch, dass der Nutzer je nach Distribution in der Gruppe 'wheel' sein muss, um zu su'en.

MfG