Im letzten Beitrag zur Konfiguration unseres Strato-Servers
Strato-V-Server mit Opensuse 12.3 – II
hatten wir uns ein wenig mit dem SSH-Zugang befasst und als erste Maßnahme den SSH-Port verschoben. Wir hatten gleichzeitig aber festgestellt, dass das keine ausreichend sichere Lösung ist. Einer der Gründe war u.a. der, dass “root” immer noch Zugang zu dem Server hat. Dies ist ein Sicherheitsrisiko, das wir im nächsten Schritt ausschalten wollen. Es ist ja auch gar nicht erforderlich, sich direkt als root auf dem Server einzuloggen. Vielmehr sollte der Zugang über einen unprivilogierten User vorgenommen werden. Von dessen Account wechselt man dann auf der Shell zum Root-Account.
Anlegen eines normalen, unpriviligierten Users
Bevor wir den direkten root-Zugang beenden können, müssen wir erst einen normalen User anlegen. Den User nenne ich nachfolgend der Einfachheit halber “xtarjax”. Generell gilt auch hier, dass man einen Namen wählen sollte der nicht leicht zu erraten ist.
Die Erzeugung des user-Accounts nehmen wir z.B. mittels “yast >> Sicherheit und Benutzer >> User- und Gruppenverwaltung” vor. Oder wir checken auf der Shell per “useradd -D” kurz die Standardeinstellungen für die Useranlage und benutzen dann das Shell-Kommando
hxxxxxxx:~# useradd -m xtarjax
Das Passwort für den User setzen wir mit
hxxxxxxx:~# passwd xtarjax
“passwd” checkt das zu verwendende Passwort nach vorgegebenen Kriterien. Mit einem weiteren “passwd -S xtarjax” fragen wir dann den Zustand des angelegten Users ab. Ich gehe auf Details der Useranlage nicht weiter ein. Wir prüfen noch, dass unter “/home” das Homeverzeichnis “/home/xtarjax” angelegt wurde.
Nun weiß ich, dass einige Leute gerne mit der grafischen Version “yast2” von YaST arbeiten. Ich rate bei der Arbeit auf einem Remoteserver aus drei Gründen davon ab:
- Es birgt Sicherheitsrisiken (auch wenn man das X-Protokoll unter ssh tunnelt).
- Es erhöht den Datentransfer zwischen Server und Client doch beträchtlich und die Antwortzeiten sind nicht berauschend.
- Es ist überflüssig, weil das ASCII yast für die Shell praktisch alle erforderlichen Möglichkeiten bietet.
Wenn man temporär doch mit grafischer Unterstützung arbeiten will, gilt:
Man muss SSH so konfigurieren, dass X-Forwarding erlaubt wird. Standardmäßig ist das abgeschaltet. Man muss dazu in der Datei “/etc/ssh/sshd-config” folgenden Eintrag von “no” auf “yes” ändern.
X11Forwarding yes
Dies macht man am besten mit “vi” oder “emacs”. Danach
hxxxxxxx:~# rcsshd restart
oder
hxxxxxxx:~# systemctl restart sshd.service
ausführen und testen, dass ein Einloggen vom eigenen Client-System aus mittels
mylinux:~ # ssh -X root@xxxxxxx.stratoserver.net -p nnnnn
unter dem im letzten Beitrag definierten Port funktioniert. Danach kann man
hxxxxxxx:~# yast2 &
ausprobieren und die Antwortzeiten für seine Internetverbindung bzw. die 100MBit Anbindung des Stratoservers testen. Berauschend ist das nicht – aber es funktioniert zur Not. Wie gesagt: Ich rate vom Einsatz grafischer Tools ab. Will oder muss man zwischenzeitlich mit X11-Forwarding arbeiten, sollte man es danach durch Setzen von “X11Forwarding no” in der “sshd_config” wieder rückgängig machen.
Abschalten des ssh-Zugangs für root
Wir schalten nun den SSH-Zugang für den priviligierten User “root” in 2 Schritten ab. Zunächst editieren wir die Datei “/etc/ssh/sshd_config” und fügen folgende Zeile ein – z.B. nach dem Statement “Port 6XXXXX”:
Port 6XXXX
AllowUsers xtarjax root
Dann starten wir den ssh-Service neu mittels
hxxxxxxx:~# rcsshd restart
Wir loggen uns aus dem Strato-server aus und versuchen einen Login per
mylinux:~ # ssh xtarjax@xxxxxxx.stratoserver.net -p nnnnn
Dies sollte anstandslos gelingen. Ist das sichergestellt wechseln wir zum root-Account mittels
mylinux:~ #su –
und editieren als root dann erneut “/etc/ssh/sshd_config”. Dort entfernen wir root aus der Liste der AllowedUsers und fügen ein Zusatzstatement ein – bzw. editieren die im File ggf. auskommentierte Zeile in folgender Form
Port 6xxxx
AllowUsers xtarjax
…
…
PermitRootLogin no
Danach starten wir den ssh Service erneut und beten, dass wir über den normalen User reinkommen. Dann machen wir den Gegencheck und versuchen
mylinux:~ # ssh root@xxxxxxx.stratoserver.net -p nnnnn
Das sollte zum Scheitern verurteilt sein. Interessanterweise wird das Passwort mit zwischenzeitlicher Zeitverzögerung 3 mal abgefragt – – auch bei Eingabe des korrekten Passwords. Danach erfolgt ein zwischenzeitlicher Abbruch des Zugangsversuchs.
Mit diesem Schritt haben wir unsere Grundsicherheit wieder etwas erhöht. Root hat keinen direkten Serverzugang per SSH mehr. Im nächsten Beitrag stellen wir den SSH-Zugang zusätzlich auf ein schlüssel- bzw. zertifikats-basiertes Zugangsverfahren um:
Strato-V-Server mit Opensuse 12.3 – IV – SSH Key Authentication