Unprivilegierten User einrichten
Ein wichtiges Sicherheitskonzept besagt, dass root sich nicht direkt über SSH anmelden darf. Das dürfen nur ausgewählte normale User, die sich dann – falls berechtigt – mit sudo Privilegien verschaffen können. Das setzt voraus, dass es solche Nutzer gibt, also müssen sie angelegt werden.
Zur Anlage eines Nutzers dient der Befehl adduser. Dieser Befehl legt standardmäßig einen User sowie eine Gruppe gleichen Namens an, richtet das Home-Verzeichnis des Users ein, kopiert Dateien aus /etc/skel dorthin und ein Passwort vergeben. Dabei werden eine User-ID (UID) und eine Group-ID (GID) vergeben. In einer kompletten Neuinstallation wird man mit den Standardeinstellungen arbeiten können. Wenn man von einer bestehenden Installation umzieht, ist es womöglich eine gute Idee UID und GID von dort zu übernehmen.
Zusätzlich wird eine Gruppe sshusers angelegt, der neue User in die Gruppe sowie in die Gruppe sudo (enthält die Benutzer, die mit sudo root werden dürfen) eingefügt.
# adduser qno
# addgroup sshusers
# adduser qno sshusers
#adduser qno sudo
Im Homeverzeichnis des neuen Users wird das Unterverzeichnis .ssh angelegt und /root/.ssh/authorized_keys dorthin verschoben. Verzeichnis und alle enthaltenen Dateien werden mit chown auf den neuen User übertragen, mit chmod alle Rechte für Gruppe und andere entzogen.
Hetzner trägt automatisch die Adresse $NETWORK::2 für unsere Netzwerkkarte ein. In der Datei /etc/netplan/01-netcfg.yaml können wir weitere Adressen aus unserem /64 zuweisen, die wir im DNS-Robot mit Namen versehen können. So kann www.qno.de und ssh.qno.de auf verschiedenen Adressen liegen. Achtung: DNS-Änderungen brauchen einige Zeit, bis sie überall verfügbar sind; man hat sich schnell mal temporär ausgesperrt. Änderungen in netplan können mit netplan try getestet werden, bevor man sie fest übernimmt.
Es gibt eine Menge Anleitungen zum zusätzlichen Absichern von SSH, die meisten schreiben voneinander ab. Ich bin dem Guide von Mozilla gefolgt. Wichtig ist die Auswahl der verschiedenen Schlüssel-Algorithmen, das Aussperren von Root und das Verbot anderer Authentifizierungen als PublicKey. Außerdem hat es sich bewährt, den Port vom Standard 22 auf einen unbenutzten nicht-privilegierten Port (>1024) zu verlegen.