{Tutorial} Eigener Webserver Teil 1: SSH absichern
Ich habe meiner Website couchpirat.de vor kurzem einen eigenen Root-Server gegönnt. Der Umzug auf den neuen Server allerdings noch einige Zeit dauern, denn es liegt noch viel Arbeit vor mir.
Wie jeder, der sich bereits mal mit einem Root- oder vServer beschäftigt hat, weiß, ist vor dem Bezug der neuen Webspace-Heimat eine Menge Konfigurationsarbeit nötig.
Da ich selbst beim einrichten des Servers über ein paar Fallstricke gestolpert bin und mir im Internet alle wichtigen Informationen mühsam zusammensuchen musste, wollte ich mal ein paar Videos für meinen YouTube-Channel erstellen und zeigen, wie man Schritt für Schritt einen fertig konfigurierten Webserver erreicht und dazu alle relevanten Informationen gebündelt an einer Stelle, hier auf meinem Blog, findet.
Wie oft die einzelnen Folgen erscheinen werden, kann ich noch sehr schwer abschätzen, da ja doch sehr viel Arbeit hinter den Videos steckt. Aber ich bemühe mich um eine gewisse Regelmäßigkeit.
Absicherung SSH-Zugang
Im ersten Teil dieser Reihe kümmern wir uns um einen der wichtigsten Punkte in Sache Server-Sicherheit überhaupt, den SSH-Zugang.
Der User “root” soll sich zukünftig nicht mehr per SSH einloggen dürfen. Dafür wird ein eigener User erstellt, dem lediglich mit einem RSA-Schlüssel Zugang zum Server gewährt wird.
Bitte sehr euch dazu auch das eigens dafür erstellte Video auf meinem Kanal oder am Ende dieser Seite an (und lasst bitte auch ein Abo da 😉 ), denn diese Seite hier ist eher zur Unterstützung gedacht, um alles noch einmal chronologisch nachvollziehen zu können.
Hier wird übrigens das Serversystem Debian 9 Stretch verwendet. Die Anleitung kann natürlich auch auf Ubuntu oder andere Derivate angewendet werden. Je nach System können die Conf-Files ein wenig anders sein.
Eingesetzte Software
Die von mir verwendete Software:
- Betriebssystem: Debian 9 Stretch
- Terminalsoftware: MobaXterm Professional
- SFTP-Software: Filezilla
Einzelschritte
Neue Gruppe für die Nutzer des SSH-Zugangs anlegen
addgroup sshusers
Einen neuen Nutzer anlegen. Am besten einen kryptischen Namen mit Buchstaben und Zahlen verwenden. Ich verwende dafür 8 Zeichen mit Zahlen, Groß- und Kleinbuchstaben.
Für das Passwort gilt natürlich das gleiche, allerdings verwende ich da immer 15 Zeichen. Am besten natürlich einen Passwortgenerator und einen Passwort Manager verwenden.
adduser b38EYoX8 –force-badname
Passwort: ij8SQJz554Xh52T
Der User muss nun noch in die neu erstellte Gruppe integriert werden.
usermod -aG sshusers b38EYoX8
Jetzt zum neuen User werden
su b38EYoX8
In das Stammverzeichnis des Users wechseln
cd
Im Stammverzeichnis das Verzeichnis .ssh anlegen
mkdir .ssh
In das Verzeichnis .ssh wechseln
cd .ssh
RSA-Keypaar erstellen
ssh-keygen -b 4096
Passwort: w4UtuzQq5z6as4o
id_rsa.pub zu authorized_keys hinzufügen
cat id_rsa.pub >> authorized_keys
Chmod 600 auf authorized_keys -> Eigentümer der Datei kann lesen und schreiben
chmod 600 authorized_keys
Prüfen ob der Schlüssel auch in authorized_keys eingetragen wurde
cat authorized_keys
Zurück in das Stammverzeichnis
cd ..
Chmod 700 auf .ssh -> Eigentümer der Datei kann lesen, schreiben und ausführen
chmod 700 .ssh
Achtung! Schlüssel-File des Servers downloaden mit Filezilla oder WinSCP!
Einstellungen als SFTP, d.h. Zugang über SSH
Für die nächsten Schritte brauchen wir wieder ROOT-Rechte
exit
Bearbeiten der Datei sshd_config
nano /etc/ssh/sshd_config
Folgende Daten sollten in der Datei angepasst werden.
Port 44432
DenyUsers root
DenyGroups root
AllowUsers b38EYoX8
AllowGroups sshusers
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
UsePAM no
X11Forwarding no
SSH neu starten
systemctl restart ssh
Erfolgskontrolle mit Putty oder MobaXterm.
Wenn erfolgreich, dann unbedingt die Dateien id_rsa und id_rsa.pub aus dem Userverzeichnis .ssh löschen!
Meine letzten Worte
Damit wäre der SSH-Zugang abgesichert und man braucht sich im Regelfall keine Gedanken mehr über ungebetene Gäste auf dem eigenen System zu machen.
Grundsätzlich sei auch hier gesagt, das schwächste Glied in der Kette ist der Administrator. Bitte denkt an folgende Punkte, wenn ihr euer System einrichtet.
- Jedes erstellte Passwort ist einmalig
- Ausschließlich sichere Passwörter verwenden (Klein- und Großbuchstaben, Zahlen, Sonderzeichen, min 15 Zeichen lang)
- System immer Updaten!
- Passwörter und Key-File unbedingt sicher verwahren.
Ich hoffe, euch hat das Video und diese Übersicht geholfen und wir sehen uns im zweiten Teil. Darin geht es dann um die UFW (Uncomplicated Firewall). Bis dahin, Arrr…
MIchael, der Couchpirat
Übersicht der Webserver-Reihe
- Teil 1: SSH-Zugang absichern
- Teil 2: Uncomplicated Firewall
- Teil 3: Fail2Ban (coming soon)
- Teil 4: Apticron und LAMP