OpenSSH (Öffnen Sie die sichere Shell) ist eine Reihe von Anwendungen, die verschlüsselte Kommunikation über ein Netzwerk mit dem ermöglichen Protokoll SSH. Es wurde als kostenlose und offene Alternative zum Programm erstellt Secure Shell, das ist proprietäre Software. « Wikipedia .
Einige Benutzer denken möglicherweise, dass bewährte Methoden nur auf Servern angewendet werden sollten, und dies ist nicht der Fall. Viele GNU / Linux-Distributionen enthalten standardmäßig OpenSSH, und es gibt einige Dinge zu beachten.
Sicherheit
Dies sind die 6 wichtigsten Punkte, die bei der Konfiguration von SSH zu beachten sind:
- Verwenden Sie ein sicheres Passwort.
- Ändern Sie den Standardport von SSH.
- Verwenden Sie immer Version 2 des SSH-Protokolls.
- Deaktivieren Sie den Root-Zugriff.
- Beschränken Sie den Benutzerzugriff.
- Verwenden Sie die Schlüsselauthentifizierung.
- andere Optionen
Ein starkes Passwort
Ein gutes Passwort enthält alphanumerische oder Sonderzeichen, Leerzeichen, Groß- und Kleinbuchstaben usw. Hier drin DesdeLinux Wir haben verschiedene Methoden gezeigt, um gute Passwörter zu generieren. Kann besuchen dieser Artikel y dieser andere.
Ändern Sie den Standardport
Der Standardport von SSH ist 22. Um ihn zu ändern, müssen wir nur die Datei bearbeiten / etc / ssh / sshd_config. Wir suchen nach der Zeile, die sagt:
#Port 22
Wir kommentieren es aus und ändern die 22 gegen eine andere Zahl. Zum Beispiel:
Port 7022
Um die Ports zu kennen, die wir nicht in unserem Computer / Server verwenden, können wir sie im Terminal ausführen:
$ netstat -ntap
Um nun auf unseren Computer oder Server zuzugreifen, müssen wir dies mit der Option -p wie folgt tun:
$ ssh -p 7022 usuario@servidor
Verwenden Sie Protokoll 2
Um sicherzustellen, dass wir Version 2 des SSH-Protokolls verwenden, müssen wir die Datei bearbeiten / etc / ssh / sshd_config und suchen Sie nach der Zeile, die sagt:
# Protokoll 2
Wir kommentieren es aus und starten den SSH-Dienst neu.
Erlaube keinen Zugriff als root
Um zu verhindern, dass der Root-Benutzer über SSH remote zugreifen kann, sehen wir uns die Datei an/ etc / ssh / sshd_config die Linie:
#PermitRootLogin no
und wir kommentieren es aus. Ich denke, es ist klarstellbar, dass wir vorher sicherstellen müssen, dass unser Benutzer über die erforderlichen Berechtigungen verfügt, um administrative Aufgaben auszuführen.
Beschränken Sie den Zugriff durch Benutzer
Es tut auch nicht weh, den Zugriff über SSH nur bestimmten vertrauenswürdigen Benutzern zu erlauben, daher kehren wir zur Datei zurück / etc / ssh / sshd_config und wir fügen die Zeile hinzu:
AllowUsers elav usemoslinux kzkggaara
Wo offensichtlich die Benutzer elav, usemoslinux und kzkggaara diejenigen sind, auf die zugegriffen werden kann.
Verwenden Sie die Schlüsselauthentifizierung
Obwohl diese Methode am meisten empfohlen wird, müssen wir besonders vorsichtig sein, da wir ohne Eingabe des Kennworts auf den Server zugreifen. Dies bedeutet, dass wir in Schwierigkeiten geraten können, wenn ein Benutzer unsere Sitzung betritt oder unser Computer gestohlen wird. Mal sehen, wie es geht.
Als erstes müssen Sie ein Schlüsselpaar (öffentlich und privat) erstellen:
ssh-keygen -t rsa -b 4096
Dann geben wir unseren Schlüssel an den Computer / Server weiter:
ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7
Schließlich müssen wir in der Datei unkommentiert haben / etc / ssh / sshd_config die Linie:
AuthorizedKeysFile .ssh/authorized_keys
andere Optionen
Wir können die Wartezeit, in der sich ein Benutzer erfolgreich beim System anmelden kann, auf 30 Sekunden reduzieren
LoginGraceTime 30
Um SSH-Angriffe durch TCP-Spoofing zu vermeiden und die verschlüsselte Version auf der SSH-Seite maximal 3 Minuten lang aktiv zu lassen, können wir diese 3 Optionen aktivieren.
TCPKeepAlive no ClientAliveInterval 60 ClientAliveCountMax 3
Deaktivieren Sie die Verwendung von Rhosts oder Shosts-Dateien, die aus Sicherheitsgründen nicht verwendet werden dürfen.
IgnoreRhosts ja IgnoreUserKnownHosts ja RhostsAuthentication nein RhostsRSAAuthentication nein
Überprüfen Sie die effektiven Berechtigungen des Benutzers während der Anmeldung.
StrictModes yes
Aktivieren Sie die Trennung von Berechtigungen.
UsePrivilegeSeparation yes
Schlussfolgerungen:
Durch diese Schritte können wir unseren Computern und Servern zusätzliche Sicherheit verleihen, aber wir dürfen niemals vergessen, dass es einen wichtigen Faktor gibt: Was ist zwischen dem Stuhl und der Tastatur?. Deshalb empfehle ich zu lesen dieser Artikel.
Quelle: HowToForge
Ausgezeichneter Beitrag @elav und ich füge einige interessante Dinge hinzu:
AnmeldenGraceTime 30
Dadurch können wir die Wartezeit, in der sich ein Benutzer erfolgreich beim System anmelden kann, auf 30 Sekunden reduzieren
TCPKeepAlive Nr
ClientAliveInterval 60
ClientAliveCountMax 3
Diese drei Optionen sind sehr nützlich, um SSH-Angriffe durch TCP-Spoofing zu vermeiden und die verschlüsselte Version auf der SSH-Seite maximal 3 Minuten lang aktiv zu lassen.
IgnoriereRhosts ja
IgnoreUserKnownHosts ja
RhostsAuthentication No.
RhostsRSAAuthentication No.
Es deaktiviert die Verwendung von Rhosts oder Shosts-Dateien, die aus Sicherheitsgründen nicht verwendet werden dürfen.
StrictModes ja
Diese Option wird verwendet, um die effektiven Berechtigungen des Benutzers während der Anmeldung zu überprüfen.
UsePrivilegeSeparation ja
Aktivieren Sie die Trennung von Berechtigungen.
Nun, in einer Weile werde ich den Beitrag bearbeiten und zum Beitrag hinzufügen 😀
Das Kommentieren, um die Leitung nicht zu ändern, ist überflüssig. Die kommentierten Zeilen zeigen den Standardwert jeder Option (lesen Sie die Erläuterungen am Anfang der Datei selbst). Der Root-Zugriff ist standardmäßig deaktiviert usw. Daher hat das Auskommentieren absolut keine Wirkung.
Ja, aber woher wissen wir zum Beispiel, dass wir nur Version 2 des Protokolls verwenden? Weil wir 1 und 2 gleichzeitig verwenden könnten. Wie in der letzten Zeile angegeben, überschreibt das Kommentieren dieser Option beispielsweise die Standardoption. Wenn wir standardmäßig Version 2 verwenden, gut, wenn nicht, dann verwenden wir JA oder JA 😀
Danke für den Kommentar
Sehr guter Artikel, ich wusste mehrere Dinge, aber eine Sache, die mir nie klar ist, ist die Verwendung von Schlüsseln, wirklich was sie sind und welche Vorteile es hat, wenn ich Schlüssel verwende, kann ich Passwörter verwenden ??? Wenn ja, warum erhöht es die Sicherheit und wenn nicht, wie kann ich von einem anderen PC darauf zugreifen?
Grüße, ich habe Debian 8.1 installiert und kann mit WINSCP keine Verbindung von meinem Windows-PC zu Debian herstellen. Muss ich Protokoll 1 verwenden? jede Hilfe .. danke
Wiedersehen
Dieses Video über openssh könnte Sie interessieren https://m.youtube.com/watch?v=uyMb8uq6L54
Ich möchte hier einige Dinge ausprobieren, einige habe ich bereits dank des Arch-Wikis ausprobiert, andere aufgrund von Faulheit oder Unwissenheit. Ich werde es speichern, wenn ich mein RPi starte