Soll ein Platinenserver wie der Raspberry Pi ohne angeschlossene Tastatur und Bildschirm bedient werden, dann bietet das SSH-Protokoll einen Weg dazu. Via SSH können Sie sich auch auf den meisten Cloudservern anmelden. Nach erfolgreicher Anmeldung stehen dann auch alle systemweiten Kommandos zur Verfügung. Nun arbeitet SSH ja als Tunnel durch das Web, ist also schon einmal besser geschützt als eine unverschlüsselte Verbindung zu einem System. Aber dennoch gibt es Optionen, den Zugang noch sicherer zu gestalten.
Die hier vorgestellten Maßnahmen können einzeln oder auch allesamt umgesetzt werden. Wie sicher der Zugang sein muss, bestimmt vor allem die Situation des Serversystems: Ist es über das Internet erreichbar, ist maximale Sicherheit angesagt, im lokalen Netz mag ein root-Verbot oder eine "AllowedUsers"-Anweisung genügen.
Keine Anmeldung für Root
Ein probates Mittel, um Angreifern weniger Möglichkeiten einzuräumen, besteht darin, keine Zugriffe von root via SSH zu erlauben. Diesen Weg gehen häufig auch kommerzielle Anbieter von Cloudservern. Hier ist allerdings genaues Arbeiten gefragt, damit Sie sich nicht selbst vom System aussperren. Diese zusätzliche Absicherung erfolgt in zwei Schritten - zunächst durch das Anlegen eines zusätzlichen Nutzers, der sich dann immer erst root-Recht verschaffen muss, im zweiten Schritt durch Deaktivierung des root-Zugangs via SSH.
Wenn Sie direkt vor dem betreffenden Rechner sitzen, können Sie die Arbeiten auch in der grafischen Oberfläche der Benutzerverwaltung durchführen. Schneller geht es aber in der Konsole. Sie legen zunächst den neuen Nutzer an:
useradd -g users -d /home/sepp -s /bin/bash sepp |
Jetzt weisen Sie dem Nutzer ein starkes Passwort zu. Das geht mit dem Kommando
passwd sepp |
und anschließend legen Sie für diesen Nutzer noch sein Home-Verzeichnis an und geben ihm die Rechte daran:
mkdir /home/sepp |
Anschließend müssen Sie prüfen, ob Sie sich mit diesem Konto via SSH anmelden können. Hat das funktioniert und Sie befinden sich in dem leeren Home-Verzeichnis, versuchen Sie, ein beliebiges Kommando mit dem Zusatz "su" aufzurufen. Hat das funktioniert, schalten Sie den root-Zugriff für SSH ab. Das erledigen Sie in der Datei "/etc/ssh/sshd_config". Darin finden Sie die Zeile "PermitRootLogin". Das verändern Sie zu "no". Um die Änderungen zu übernehmen, starten Sie den SSH-Dienst mit
sudo systemctl restart sshd |
neu.
Um später mit root-Recht zu arbeiten, verwenden Sie nach dem Log-in auf dem System das Kommando su -l.
Verändern Sie den Standardport
Malware-Scripts und Angreifer lieben Standardeinstellungen. Daher empfehlen wir auch stets, nach der Installation eines Dienstes die voreingestellten Passwörter zu ändern. Ähnlich verhält es sich mit Standardzugangswegen.
Um etwa öffentlich erreichbare Raspberry-Server auf Schwachstellen abzuklopfen, werden Angreifer die SSH-Standards nutzen und sich versuchsweise auf Standardport 22 mit dem Nutzer "pi" und Kennwort "raspberry" anmelden. Ungleich schwerer wird es für Angreifer mit geändertem Konto und Kennwort, noch schwerer wird es, wenn Sie den Standardport verändern. Dazu müssen Sie die Konfiguration für SSH ändern. Das können Sie wieder in der bereits genannten Konfigurationsdatei:
sudo nano /etc/ssh/sshd_config |
Suchen Sie darin die Zeile "#Port", entfernen Sie das Kommentarzeichen und tragen Sie statt "22" einen Port Ihrer Wahl ein, zum Beispiel 479. Speichern Sie die Datei und starten Sie den Service mit
sudo systemctl restart sshd |
neu. Wer jetzt versucht, das System von einem anderen Rechner durch die gewohnte Eingabe von "ssh [Konto]@[IP-Adresse]" zu erreichen, wird abgelehnt werden.
Um sich auf dem geänderten Port zu verbinden, muss der Befehl mit
ssh -p 479 [Konto]@[IP-Adresse] |
die exakte Portangabe mitliefern.