So passen Sie die SSH-Einstellungen für maximale Sicherheit an

Die SSH-Konfigurationsdatei auf Ihrem Unix-System steuert den Betrieb der sicheren Shell. Es kann verwendet werden, um die Verwendung des Befehls ssh zu vereinfachen, bestimmte vom Benutzer gewünschte Funktionen zu konfigurieren oder die Sicherheit gegen mögliche Angriffe zu erhöhen. Obwohl relativ einfache Aktionen, wie das Ändern des SSH-Ports auf Ihren Geräten, häufig eine große Anzahl von SSH-Kaltanrufen auf Ihrem Computer eliminieren können, kann die SSH-Konfigurationsdatei viel mehr.

Index

    Wo ist die SSH-Konfigurationsdatei?

    Auf Linux-Systemen finden Sie Ihre systemweite ssh-Konfigurationsdatei unter "/ etc / ssh / ssh / ssh_config".

    Auf macOS-Systemen befindet sich dieselbe Datei in "/ private / etc / ssh / ssh_config", die aus Kompatibilitätsgründen symbolisch mit "/ etc / ssh / ssh_config" verknüpft ist.

    Eine zweite benutzerspezifische ssh_config-Datei befindet sich in "~ / .ssh / ssh_config" (das Symbol "~" steht für das Ausgangsverzeichnis). Diese Datei ersetzt die systemweite Konfigurationsdatei, sodass Sie benutzerspezifische Optionen konfigurieren können, ohne die Systemeinstellungen zu ändern. Systeme enthalten nicht immer eine "~ / .ssh / ssh_config" -Datei, sie kann jedoch einfach erstellt werden.

    Im Folgenden wird diese Konfigurationsdatei aus Gründen der Übersichtlichkeit und Einfachheit als "ssh_config" bezeichnet.

    verbunden So aktivieren Sie kennwortlose SSH-Anmeldungen unter Linux

    Bearbeiten der ssh_config

    Um die Datei ssh_config zu bearbeiten, öffnen Sie ein Terminalfenster und bearbeiten Sie die Datei mit Ihrem bevorzugten Texteditor. Wir werden in dieser Demo Nano verwenden, aber Sie können stattdessen vi oder emacs verwenden.

    sudo nano /etc/ssh/ssh_config

    Dadurch wird eine Datei mit Dutzenden von kommentierten Zeilen geöffnet, in denen die Funktionsweise der Datei erläutert wird. Dies ist jedoch keine vollständige Erklärung.

    Was ist die Datei ssh_config und was macht ssh_config?

    Die Datei ssh_config wird verwendet, um zu steuern, wie die sichere Shell, besser bekannt als der Befehl ssh terminal, auf Ihrem System funktioniert. Die Datei ssh_config wird von Hosts organisiert. Jeder Host enthält spezifische Einstellungen für diesen Host. Platzhalterzeichen wie * können verwendet werden, um mehrere Hostnamen mit einer einzigen Deklaration abzugleichen.

    Optionen werden mit einem Schlüssel / Definition-Paar deklariert. Es sind viele Schlüssel verfügbar. Eine ausführliche Erläuterung der Funktionalität der einzelnen Schlüssel finden Sie in der Manpage ssh_config .

    Stärkung der SSH-Konfiguration

    Sperren von Dateien: Stellen Sie vor dem Bearbeiten der Datei sicher, dass für die Dateien ssh_config und sshd_config Eigentümer und Benutzer auf root festgelegt sind. In den meisten Fällen möchten Sie auch anderen Personen als root Berechtigungen verweigern.

    sudo chown root: root / etc / ssh / sshd_config
    sudo chmod og-rwx / etc / ssh / sshd_config

    Bestätigen Sie das SSH-Protokoll 2

    Stellen Sie sicher, dass Sie das neue, moderne Protokoll 2 anstelle von Protokoll 1 verwenden. Das alte Protokoll arbeitet mit einer schwächeren Integritätsprüfung und ist im Allgemeinen weniger sicher.

    Verwenden Sie in Ihrer ssh_config Folgendes, um das Protokoll explizit festzulegen:

    Protocolo 2

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> »>>>>>> >> >>>>>>>>>.

    Sie können Ihr Protokoll auch implizit mithilfe von Chiffren festlegen, wodurch das Protokoll automatisch auf 2 gesetzt wird, um moderne Chiffren zu verwenden.

    Abbildungen aes128-ctr, aes192-ctr, aes256-ctr

    Leeres Passwort deaktivieren

    Stellen Sie sicher, dass jedes SSH-Konto beim Anmelden ein Kennwort verwendet, indem Sie leere Kennwörter blockieren.

    PermitEmptyPasswords no> PermitEmptyPasswords

    Deaktivieren Sie die Root-Anmeldung

    Root sollte für die meisten Linux-Anwendungen selten verwendet werden. Durch das Verhindern des Root-Zugriffs können Sie Konten speziell für die erforderlichen Zwecke sperren und die systemweite Verwendung untersagen. Dies ist auch ein Konto, das angegriffen wird. Zu den PermitRootLogin-Optionen gehören "Ja", "Kein Passwort", "Nur erzwungene Befehle" oder "Nein". Der Standardwert ist "Ja". Klicken Sie auf die Zeile unten, um die Root-Anmeldung vollständig zu beenden.

    PermitRootLogin-Nr

    Ändern Sie die Portnummer

    Sie können die Portnummer von 22 (Standard) ändern, um die Verbindungen zum Server an diesem Port einzuschränken. Dies schränkt die meisten Benutzer ein, die ein Skript verwenden, um auf diesen Port zuzugreifen oder diesen Port manuell anzugreifen. Dies schränkt jedoch nicht diejenigen ein, die offene Türen scannen und angreifen, was offen ist. Außerdem müssen Sie sicherstellen, dass jeder, der über diesen Port zugreift, die neue Nummer kennt und dass die neue Portnummer von jedem Client oder jeder Software verwendet wird.

    Ändern Sie zum Festlegen des Ports den ssh-Hauptdämon in "/ etc / ssh / sshd_config". Sie müssen eine neue Zeile hinzufügen, die den Port gemäß der XXXXX-Portsyntax angibt.

    Eingeschränkter Zugang

    Wenn sich mehrere Personen bei Ihrem Server anmelden, möchten Sie möglicherweise die SSH-Nutzung vollständig einschränken. In diesen Fällen können Sie sowohl Benutzer als auch Gruppen zulassen und ablehnen. Dazu müssen Sie einen der folgenden Schlüssel verwenden, gefolgt von den Werten, die Sie zulassen oder ablehnen möchten: DenyUsers, AllowUsers, DenyGroups und AllowGroups. Dies wird in dieser Reihenfolge ausgeführt. Selbst wenn Sie zulassen, dass ein Benutzer im Abschnitt "Benutzer verweigern" gefunden wird, wird er abgelehnt.

    Erlaube Benutzern Ramesh John Jason
    AllowGroups sysadmin dba
    Verweigern Sie Apache CVS-Benutzer Jane
    DenyGroups-Entwickler qa>

    Aktualisieren Sie die LoginGraceTime

    Standardmäßig beträgt die Zeit, die eine Person benötigt, um ohne Anmeldung inaktiv zu bleiben, zwei Minuten. Wenn Sie dies einschränken, können Sie nicht autorisierte Verbindungen verhindern. Ein typischer Tipp ist eine Minute oder weniger. Stellen Sie die Zeit mit LoginGraceTime ein.

    LoginGraceTime 1m

    Anpassen der SSH-Einstellungen

    Erstellen Sie Aliase

    Die ssh-Befehlszeilenoptionen können über einen Alias ​​in ssh_config angegeben werden. Mit dem folgenden Alias ​​kann der Benutzer mit den angegebenen Optionen eine Verbindung zum Entwicklungsserver herstellen, indem er einfach ssh dev in die Befehlszeile eingibt.

    Host-Entwicklung
    Hostname dev.example.com
    Port 22222
    Benutzer Foobar

    Dies führt beim Ausführen den folgenden Befehl aus:

    ssh [email protected] -p 22222

    Beachten Sie, dass der SSH-Port in 22222 geändert wurde, um Kaltanrufe zu vermeiden. Ansonsten handelt es sich um eine sehr einfache SSH-Verbindung, die der Einfachheit halber um viele Zeichen gekürzt wird.

    Authentifizierung mit sicheren Schlüsselpaaren

    ssh ist sicherer und bequemer, wenn es mit öffentlichen / privaten Schlüsselpaaren zur Authentifizierung verwendet wird, als mit Kennwörtern. Die Datei ssh_config kann mithilfe des IdentityFile-Schlüssels einen bestimmten Schlüssel für einen bestimmten Host deklarieren.

    Host-Entwicklung
    Hostname dev.example.com
    Port 22222
    Benutzer Foobar
    IdentityFile ~ / .ssh / dev.example.key

    Wie in den vorherigen Beispielen wird dieser ssh-Befehl mit ssh dev ausgeführt, indem der folgende entsprechende Befehl in der Befehlszeile ausgeführt wird:

    ssh -i ~/.ssh/dev.example.key [email protected] -p 22222

    Andere ssh-Optionen einstellen

    Die folgenden ssh-Optionen sind einige der gebräuchlichsten Schlüssel in den ssh_config-Dateien.

    Komprimierung: Dieser Schlüssel akzeptiert "Ja" oder "Nein" als Argumente und wird verwendet, um die Deaktivierung der Komprimierung für einen Host zu aktivieren. Dies ist normalerweise nicht erforderlich, es sei denn, die Verbindung ist unglaublich langsam.

    LogLevel: Legen Sie den Grad der Ausführlichkeit in den clientseitigen ssh-Protokollen fest. Von den wenigsten bis zu den detailliertesten sind die Optionen RUHIG, FATAL, FEHLER, INFO, VERBOSE, DEBUG1, DEBUG2 und DEBUG3.

    StrictHostKeyChecking: Legen Sie eine Voreinstellung für das Hinzufügen von Hosts zu den bekannten Hosts fest. "Ja" fügt niemals bekannte Hosts hinzu. Das "Nein" wird immer an bekannte Hosts angehängt. "Ask", die Standardoption, fragt den Benutzer, bevor er sie zur Datei "unknown_hosts" hinzufügt. Das "Ja" bietet die beste Sicherheit gegen Trojaner-Angriffe, kann jedoch bei einer schlecht verwalteten Datei "unknown_hosts" ärgerlich sein. Das "Nein" ist am wenigsten sicher, kann jedoch die Verbindung zu einer großen Anzahl temporärer Hosts weniger schmerzhaft machen.

    UserKnownHostsFile - Gibt den Pfad zu einer benutzerspezifischen Datei "unknown_hosts" an.

    Verbindungsweiterleitung

    ssh wird häufig zum Weiterleiten von Verbindungen verwendet, um eine lokale Verbindung zu einem Tunnel über eine Remoteverbindung zu ermöglichen. Die folgenden Optionen können zum Konfigurieren der Verbindungsweiterleitung verwendet werden.

    LocalForward: Definieren Sie eine Verbindung zum Weiterleiten des Datenverkehrs von einem lokalen Port an einen Remotecomputer. Dadurch wird die Verbindung im Remote-Netzwerk hergestellt.

    RemoteForward - Definiert einen Remote-Port, der von einem lokalen Port extrahiert werden soll. Dies ist die Umkehrung der vorherigen Option.

    DynamicForward - Konfigurieren Sie einen lokalen Port für die Verwendung mit einem dynamischen Weiterleitungsprotokoll.

    Fazit

    Die meisten Optionen von ssh_config sind vorhanden, um bequemere Möglichkeiten zum Ausführen bestimmter Aufgaben mit dem Befehl ssh bereitzustellen. Auf diese Weise können komplexe Aliase und Verknüpfungen eingerichtet werden, die zur Erhöhung der Sicherheit beitragen, indem die sichereren Teile von ssh einfacher zu verwenden sind.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    Go up

    Diese Website verwendet Cookies, um Ihnen ein besseres Erlebnis beim Surfen auf der Website zu bieten. Lesen Sie mehr über Cookies