knasan

Linux and more

SSH Absichern

Es sollte schon jeden ArchLinux Benutzer aufgefallen sein das tcp_wrapper in Arch nicht mehr verwendet wird. Man ist also gezwungen seine Dienste anders zu schützen.

https://bbs.archlinux.de/viewtopic.php?id=19513&p=1

Um Ports zu erkennen wird netstat im obigen Postig erwähnt. In Arch habe ich nur noch netstat-nat gefunden und die Syntax scheint sich geändert zu haben, deshalb habe ich mir netactview angesehen und dies reichte mir.

pacman -S netactview

Als erstes habe ich mir ssh genauer angesehen. Wenn SSH in seine Default Einstellung verwendet wird, ist es wenig geschützt was man natürlich nicht möchte.

Sehen wir uns also erst einmal ssh in netacview an (im KDE menü → Internet → Net Activity Viewer). Wie man sehen kann (Abbildung 1) wurde ssh mit seinem Standard Port 22 gestartet und ist an keiner Netzwerkkarte bzw. IP-Adresse gebunden. Obwohl dies eher einer Pseudo Sicherheit ist, habe ich mir angewöhnt dies zu tun. Dies funktioniert natürlich nur dann, wenn sichergestellt ist das der Rechner immer die selbe IP bekommt.


Abbildung 1: SSH in netcatview mit seiner Default Einstellung

Natürlich kann man viele Dinge mit netcatview bzw. netstat nicht sehen. Es sagt nichts aus ob sich jeder Verbinden darf oder nur eine Person oder Personengruppen. Ob man einen Schlüssel benötigt oder nicht usw.

  • ListenAddress 192.168.0.1
    ssh nur auf eine bestimmte Schnittstelle binden, falls mehrere Netzwerkkarten Installiert sind und nicht auf allen verfügbar sein soll.
  • PermitRootLogin no
    Versuche so wenige Logins als Root wie möglich zu erlauben. Wenn nun jemand Root werden will, benötigt er zwei Logins. So kann das Root-Passwort nicht so leicht ausgetestet werden.
  • Port 2222oder ListenAddress 192.168.0.1:2222
    Ändern von Listen-Port, so dass ein Eindringling nicht wirklich sicher sein kann, ob ein sshd-Daemon läuft (man sollte aber beachten, dass dies lediglich „Sicherheit durch Verschleierung“ ist).
  • PermitEmptyPasswords no
    Es versteht sich von selbst, das jedes Konto mit einem Passwort zu schützen ist.
  • AllowUsers nutzer1 nutzer2 nutzer1@fqdn
    Erlaube nur bestimmten Nutzern sich via ssh auf der Maschine einzuloggen. nutzer1
    @rechnername
    kann dazu verwendet werden, um einen bestimmten Benutzer zu zwingen, nur von einem bestimmten Rechner aus zuzugreifen, hab ich selbst jedoch noch nicht getestet.
  • AllowGroups wheel admin
    Erlaube nur bestimmten Gruppenmitgliedern sich via ssh auf der Maschine einzuloggen. AllowGroups und AllowUsers haben äquivalente Verfahrensweisen, um den Zugang zu der Maschine zu verwehren.
  • PasswordAuthentication yes
    Es ist allein Ihre Wahl, was Sie hier eintragen. Es ist sicherer, Zugriff nur Nutzern zu erlauben, die ssh-Schlüssel in der
    ~/.ssh/authorized_keys-Datei haben. Wenn Sie dies wollen, setzen Sie es auf „no“.
  • Schalte jedwede Art der Authentifizierung ab, die nicht wirklich benötigt werden, zum Beispiel
    RhostsRSAAuthentication, HostbasedAuthentication, KerberosAuthentication oder RhostsAuthentication. Man sollte sie abschalten, auch wenn sie es standardmäßig bereits sind (siehe dazu man 5 sshd_config).
  • Protocol 2
    Deaktiviere Protokollversion 1, da diese einige Designschwächen hat, die es einfacher machen, Passwörter zu knacken.

Mit diesem Wissen kann man seine SSH-Konfigurationsdatei /etc/ssh/sshd_config anpassen und danach ssh neu starten. Wenn man nun Abbild 2 betrachtet fallen einem die kleinen Veränderungen auf. Und wenn man so wie so von jedem Rechner aus sich verbinden möchte sollte man Root Login verbieten und nur einen Benutzer erlauben. Dann braucht man bis dato noch lange keine Firewall.


Das das ändern des Ports Sinnvoll ist versteht sich fast von selbst. Nach meinen Erfahrungen zu folge wird man weniger bis gar nicht mehr von SkriptKiddies belästigt. Dazu sei gesagt, das der Port 2222 in vielen Anleitungen verwendet wird und daher nicht gewählt werden sollte.

Nun noch ein kleiner Tipp für alle die jetzt nicht immer ssh -p 2222 nutzer1@fqdn eingeben möchte. Es gibt für jeden Benutzer eine Benutzer-Konfiguration. Hierfür legt man einfach in seinem Heimatverzeichnis die Datei .ssh/config an und trägt Host USER PORT im folgenden Schema ein.

Host myhost
user nutzer1
HostName fqdn
Port 2222

Somit verbindet sich ssh immer mit diesen Einstellungen. Besonders elegant ist dies natürlich wenn man auf der anderen Maschine nicht den selben Anmeldenamen hat als wie auf der Maschine auf der man sich Anmelden möchte. Das erspart einem etwas Tipparbeit und man muss sich auch nicht Ports und co Merken.

Sandy

Advertisements

Einzelbeitrag-Navigation

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: