Ein ssh Server erlaubt den Zugriff auf einen Server vom Internet aus. D.h. ein jeder kann, in der sshd Standardfallkonfiguration, sofern er Userid und Passwort kennt oder errät auf den Server zugreifen. Wenn er dann noch root Rechte erlangt ist der Server schnell unter Kontrolle des Angreifers und wird dann möglichst verdeckt zu diversen Dingen missbraucht (ftp-server, DOS Client, Mail SPAM Schleuder, ...) und der Eigentümer des Servers haftet rechtlich fuer alle Aktionen, die von dem Server ausgehen. Das kann unangenehm bis teuer werden ... Die folgende Seite bechreibt,wie man seie sshd Server Config aendernmuss, um den Server vor Angriffen zu sichern.
 

Deshalb muss sich jeder, der einen Server ins Netz stellt genau überlegen wie er den Zugriff auf den Server sichern will.


Folgende Dinge sind ein MUSS:
  1. root Zugriff per ssh verbieten
  2. Wenn moeglich nur Zugriff mit keys erlauben. Ansonsten sichere Passwoerter benutzen
  3. Zugriffsmoeglichkeiten soweit wie moeglich einschraenken
  4. ssh attacks abwehren
Die sshd_config Parameter sollten folgendermassen sein:
  1. PermitRootLogin no
  2. Protocol 2
  3. AllowGroups users
  4. AllowUsers xxx yyy zzz, xxx, yyy und zzz sind user die aufs System per ssh dürfen
  5. ClientAliveInterval 15
  6. LoginGraceTime 10
  7. PubkeyAuthentication yes
  8. PasswordAuthentication no
  9. MaxAuthTries 3
  10. MaxStartups 1
  11. PrintLastLog yes
  12. KeepAlive no
Hier ist meine sshd_config als Beispiel.
 
Folgende Massnahmen koennen ergriffen werden um ssh Attacks zu unterbinden:
  1. http://denyhosts.sourceforge.net/ installieren. Damit werden alle Ips per iptables geblocked, die ssh attacks versuchen
  2. Port xx wobei xx ein unbenutzer Port ist in sshd_config. Damit laufen alle ScriptKiddies ins Leere.
  3. Eintrag der folgenden Zeilen in die SuSEfirewall2-custom. Damit werden ssh Attacks extrem verzoegert:
    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2 --rttl --name SSH -j LOG --log-prefix SSH_brute_force
    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2 --rttl --name SSH -j DROP

  4. Ein VPN einrichten. Dann ist der ssh Port nicht mehr von aussen zu sehen.
  5. Hosts.allow/.deny sollte benutzt werden können, da tcp_wrappers support normalerweise standmäßig eingebaut ist bei sshd.
Wie kann man prüfen ob tcp_wrappers verfügbar ist?
 
[framp@obelix ~]$ ldd /usr/sbin/sshd | grep 'libwrap.so'
 libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00a7700)
 
 
Wenn etwas mit 'libwrap.so' zurückgegeben wird, funktioniert tcp_wrappers mit  sshd.
 
 

 

Kommentar schreiben

Spam Kommentare sind sinnlos !
Vor der Publizierung wird jeder Beitrag auf Spam geprüft. Leider dauert es deswegen bis ein Kommentar sichtbar wird. Dafür erhält aber kein Subscriber Spam eMails.
Die eMail ist optional und nicht öffentlich sichtbar. Sie ist notwendig um eMail Benachrichtigungen zu Antworten auf Kommentare zu erhalten. Sie wird auch u.U. auch vom Seitenbetreiber genutzt um offline Kontakt aufzunehmen.

Spam comments are useless !
Any comment will be reviewed first and checked for spam. Unfortunately this delays the publishing of comments but will protect subscribers from spam.
eMail is optional and hidden and is required to get update notifications for any comments. In addition your eMail may be used by the website owner to get in contact with you offline.


Kommentare   

0 #1 OP 2011-01-24 10:16
Schöner Artikel!

16 Schritte zum sichereren Service!

Ohne viel Text auf den Punkt eine ToDo-Liste zum immer wieder nacharbeiten!

Danke!
Zitieren