SSH ist das wichtigste Protokoll für die Verbindung zu Linux-Servern und deren Verwaltung. Aus diesem Grund ist es einer der am häufigsten angegriffenen Ports, wenn böswillige Akteure versuchen, sich Zugang zu Ihrem Server zu verschaffen. In diesem Artikel werden wir einige Methoden besprechen, die Sie verwenden können, um Ihre SSH-Verbindung sicherer zu machen.
Hinweis: Je nach dem Produkt, das Sie mit OVHcloud haben, sind einige dieser Schritte möglicherweise bereits durchgeführt worden. Wenn dies der Fall ist, fahren Sie einfach mit dem nächsten Schritt fort. Außerdem gehen die Schritte in diesem Artikel davon aus, dass Sie sich bei Ihrem Server mit SSH-Schlüsseln authentifizieren. Wenn Sie stattdessen ein Passwort verwenden, funktionieren bestimmte Schritte in diesem Artikel nicht.
Voraussetzungen
- Verwendung von SSH-Schlüsseln
- Server unter CentOS 7
Themen
- Erstellen eines neuen Sudo-Benutzers
- Ändern der SSH-Daemon Konfiguration
Erstellen eines neuen Sudo-Benutzers
Es ist immer die beste Praxis, die Authentifizierung von root über SSH zu verbieten, da dies der Benutzername ist, den man am häufigsten zu hacken versucht. Das erste, was wir also tun wollen, um unseren Server zu sichern, ist, einen neuen sudo-Benutzer für SSH zu erstellen. Geben Sie dazu den folgenden Befehl ein und ersetzen Sie den roten Benutzernamen durch einen Benutzernamen Ihrer Wahl:
# adduser username
Als Nächstes legen wir ein Passwort für den Benutzer fest:
# passwd username
Befolgen Sie die Aufforderung zum Erstellen und Bestätigen des Passworts. Jetzt wollen wir unserem neuen Benutzer sudo-Rechte geben, damit wir root werden und Befehle ausführen können, für die administrative Rechte erforderlich sind. Dazu geben wir den folgenden Befehl ein.
# usermod -aG wheel username
Zuletzt wollen wir unseren neuen Benutzer in die Lage versetzen, sich mit dem öffentlichen SSH-Schlüssel zu authentifizieren, den wir bereits dem Root-Benutzer gegeben haben. Wir können einen einfachen rsync-Befehl verwenden, um den öffentlichen Schlüssel in die authorized_keys-Datei unseres neuen Benutzers zu kopieren.
# rsync --archive --chown=username:username ~/.ssh /home/username
Bevor Sie mit dem nächsten Schritt fortfahren, melden Sie sich ab und vergewissern Sie sich, dass Sie sich als neuer Benutzer mit SSH am Server authentifizieren können. Wenn Sie sich nicht als der neue Benutzer anmelden können, können Sie sich immer noch als root anmelden. Vergewissern Sie sich, dass alle Befehle korrekt eingegeben wurden, und versuchen Sie erneut, sich als der neue Benutzer anzumelden.
Änderung der Konfiguration des SSH-Daemons
Da wir SSH-Schlüssel und einen neuen Benutzer für die Authentifizierung an unserem Server verwenden, wollen wir nicht, dass sich jemand mit einem Passwort oder dem Benutzernamen root authentifiziert. Um dies zu erreichen, müssen wir zunächst zur Konfigurationsdatei für den OpenSSH-Daemon navigieren. Dazu öffnen Sie die Datei in einem Texteditor Ihrer Wahl mit folgendem Befehl:
$ sudo vi /etc/ssh/sshd_config
Es gibt drei Änderungen, die wir an dieser Datei vornehmen wollen. Erstens wollen wir den Port ändern, an dem OpenSSH auf Anfragen wartet.
Warnung: Wenn Sie eine aktive Firewall haben, müssen Sie den Datenverkehr über den von Ihnen gewählten Port zulassen, sonst sperren Sie sich selbst von Ihrem Server aus. Wenn Sie sich selbst von Ihrem Server aussperren, können Sie den Zugang über IPMI oder KVM wiederherstellen. Weitere Informationen finden Sie in unserem Artikel Erste Schritte mit IPMI.
Oben in der Datei sehen Sie einen Abschnitt, der standardmäßig wie folgt aussieht:
#Port 22#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::
Ergänzen Sie den Abschnitt „Port“ und wählen Sie eine beliebige gültige Portnummer wie im folgenden Beispiel. In unserem Beispiel verwenden wir Port 12345.
Port 12345#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::
Scrollen Sie nun nach unten zum Abschnitt # Authentication:
der Datei. Sie sehen fünf Optionen, die standardmäßig wie folgt aussehen:
#LoginGraceTime 2m#PermitRootLogin yes
PermitRootLogin yes#StrictModes#MaxAuthTries 6#MaxSessions 10
Hier wollen wir das „yes“ neben „PermitRootLogin“ in „no“ ändern. Es wird wie folgt aussehen:
#LoginGraceTime 2m
#PermitRootLogin yesPermitRootLogin no#StrictModes#MaxAuthTries 6#MaxSessions 10
Nun wollen wir in der sshd_config-Datei ein wenig weiter nach unten scrollen, um unsere letzte Änderung vorzunehmen – die Deaktivierung der Passwort-Authentifizierung. Sie werden einen Abschnitt sehen, der standardmäßig wie folgt aussieht:
# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication yes
Wir wollen das „yes“ neben „PasswordAuthentication“ in ein „no“ ändern. Es sieht dann wie folgt aus:
# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication no
Speichern und beenden Sie die Datei. Abschließend müssen wir OpenSSH neu starten, damit die Änderungen wirksam werden. Geben Sie dazu den folgenden Befehl ein:
$ sudo systemctl restart sshd.service
Lassen Sie uns kurz überprüfen, was wir hier getan haben. Wir haben die Portnummer geändert, die wir zum Abhören von SSH-Anfragen verwenden. Dann haben wir den SSH-Zugang für den Root-Benutzer oder jeden Benutzer, der versucht, sich mit einem Passwort zu authentifizieren, deaktiviert. Wenn wir das richtig gemacht haben, funktioniert der folgende Befehl nicht mehr, um sich beim Server anzumelden.
$ ssh [email protected]
Um sich jetzt anzumelden, müssen wir die Portnummer angeben, die wir für das Abhören von SSH-Anfragen verwenden. Das bedeutet, dass wir von nun an den folgenden Befehl verwenden müssen, wobei wir die Zahl neben „-p“ durch die Portnummer ersetzen, die wir zuvor ausgewählt haben:
$ ssh -p 12345 [email protected]
Überprüfen Sie, ob dieser Befehl funktioniert und der vorherige nicht. Wenn dies der Fall ist, sind Sie bereit, sicher über SSH auf Ihren Server zuzugreifen.
Abschluss
Da so viele bösartige Akteure das Internet nutzen, war es noch nie so wichtig, alle potenziellen Zugangspunkte zu Ihrem Server zu sichern. Wenn Sie diesen Leitfaden befolgen, haben Sie die Sicherheit des häufigsten Zugangspunkts auf Linux-Servern verbessert.