So konfigurieren Sie die SSH-Linux-Sicherheit

Eines der am häufigsten verwendeten Protokolle auf Sicherheitsebene zum Herstellen von Verbindungen in UNIX-Umgebungen ist das SSH-Protokoll (Secure Shell), das uns eine Reihe von Funktionalitäten und besonderen Eigenschaften zum Schutz von Daten und hergestellten Verbindungen bietet.

SSH ist ein Protokoll, das sich auf die Sicherheit der Kommunikation zwischen zwei Systemen über das Client / Server-Modell konzentriert und dank dem Benutzer eine Remote-Verbindung zu einem Host herstellen können.
Eines der Hauptmerkmale von SSH ist die Verschlüsselung der Verbindungssitzung, wodurch verhindert wird, dass Benutzer unverschlüsselte Passwörter erhalten.

SchutzartenBei Verwendung des SSH-Protokolls haben wir folgende Schutzarten:

  • Sobald die anfängliche Verbindung hergestellt ist, kann der Client überprüfen, ob er sich mit demselben Server verbindet, mit dem er zuvor verbunden war
  • Der Client sendet die Authentifizierungsinformationen über eine 128-Bit-Verschlüsselung an den Server
  • Alle während der Sitzung gesendeten und empfangenen Daten werden mit 128-Bit-Verschlüsselung übertragen, was das Entschlüsseln und Lesen erschwert.
  • Der Client hat die Möglichkeit, X11-Anwendungen vom Server weiterzuleiten. Dies ist eine Technik namens X11-Weiterleitung, die eine sichere Möglichkeit bietet, grafische Anwendungen über ein lokales oder externes Netzwerk zu verwenden.

In Linux-Betriebssystemen finden wir jetzt die SSH-Konfigurationsdatei im Pfad / etc / ssh / ssh_config und dank dieser Datei können alle Sicherheitsmaßnahmen für SSH-Verbindungen durchgeführt werden.

VERGRÖSSERN

Bei macOS-Systemen befindet sich diese Datei im Pfad / private / etc / ssh / ssh_config und diese enthält aus Kompatibilitätsgründen einen symbolischen Link zu / etc / ssh / ssh_config.

Beim Bearbeiten dieser Datei müssen wir Folgendes beachten.

  • Leerzeilen und Zeilen, die mit '#' beginnen, sind Kommentare
  • Jede Zeile beginnt mit einem Schlüsselwort, gefolgt von Argument(en)
  • Konfigurationsoptionen können durch Leerzeichen oder optionale Leerzeichen und ein = Zeichen getrennt werden
  • Argumente können in doppelte Anführungszeichen (") eingeschlossen werden, um Argumente anzugeben, die Leerzeichen enthalten

1. So bearbeiten Sie die Linux-Datei ssh_config


Um diese Datei zu bearbeiten, um die richtigen Werte festzulegen, müssen wir Folgendes mit einem Editor ausführen:
 sudo nano / etc / ssh / ssh_config
Wir werden folgendes sehen:

VERGRÖSSERN

Die Datei ssh_config ist nach Hosts organisiert und dort enthält jeder Host spezifische Einstellungen für diesen bestimmten Host. Dort können wir Platzhalter wie * verwenden, um mehrere Hostnamen mit einer einzigen Anweisung abzugleichen.
Einige der Parameter, die wir in dieser Datei verwenden können, sind:

GastgeberSchränken Sie Anweisungen ein, die nur für Hosts gelten, die einem der nach dem Schlüsselwort angegebenen Muster entsprechen.
SpielBeschränken Sie Anweisungen, dass sie nur auf Hosts angewendet werden, die bestimmte Kriterien erfüllen
AdresseFamilieGibt an, welche Adressfamilie beim Verbinden verwendet werden soll, gültige Argumente sind: any, inet, inet6.
Batch-ModusMit diesem Wert wird die Passwortabfrage deaktiviert, wodurch ein versehentliches Blockieren bei einer Passwortabfrage vermieden wird
BindAddressGibt an, dass die auf dem lokalen Computer angegebene Adresse als Verbindungsquellenadresse verwendet wird.
HerausforderungAntwortAuthentifizierungGibt an, ob die Challenge-Response-Authentifizierung verwendet werden soll. Dies ist in erster Linie eine Legacy-Methode und wurde von KbdInteractiveAuthentication . ersetzt
CheckHostIPWeisen Sie ssh an, zusätzlich die IP-Adresse des Hosts in der Datei "known_hosts" zu überprüfen.
ChiffreBezieht sich auf die Verschlüsselung, die verwendet wird, um die Sitzung in Protokollversion 1 zu verschlüsseln.
ChiffrenGibt die zulässigen Verschlüsselungen für Version 2 des Protokolls in der bevorzugten Reihenfolge an.

Als nächstes sehen wir einige praktische Tipps, um die Sicherheit von SSH-Verbindungen zu Linux zu verbessern und so die beste Zugriffsleistung zu erzielen.

2. So sperren Sie Linux-SSH-Dateien


Der erste Schritt vor dem Bearbeiten der Datei besteht darin, sicherzustellen, dass sowohl die Datei ssh_config als auch die Datei sshd_config den Besitzer und den Benutzer als Root konfiguriert haben, da es sich um den Superbenutzer von Linux handelt und niemand besser als dieser der Besitzer ist.

Dazu führen wir folgendes aus:

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

3. So bestätigen Sie die SSH-Protokollversion 2 Linux


Version 2 von SSH verfügt über einen verbesserten Schlüsselaustauschalgorithmus, der nicht anfällig für die Sicherheitslücke in Version 1 ist, wodurch die allgemeine Sicherheit der Verbindungen verbessert wird. Daher ist es ideal zu bestätigen, dass das neue Protokoll 2 anstelle von Protokoll 1 verwendet wird und dazu müssen wir die folgende Zeile in der ssh_config-Datei bestätigen:
 Protokoll 2

VERGRÖSSERN

Dort können wir das Protokoll auch implizit über Ciphers konfigurieren, wodurch Protocol automatisch auf 2 gesetzt wird, um moderne Ciphers zu verwenden. Dazu validieren wir die folgende Zeile direkt unter der Protocol-Zeile:

 Chiffren aes128-ctr, aes192-ctr, aes256-ctr

4. So deaktivieren Sie leere Passwörter SSH Linux


Es ist wichtig zu überprüfen, dass jedes SSH-Konto beim Anmelden ein Passwort verwenden muss, wobei leere Passwörter blockiert werden, die einen einfachen Zugriff ermöglichen und Sicherheitsrisiken im System verursachen fügt es hinzu, indem Sie das Symbol # platzieren:
 PermitEmptyPasswords nein

VERGRÖSSERN

5. So deaktivieren Sie die SSH-Linux-Root-Anmeldung


Durch das Verhindern der Root-Benutzeranmeldung ist es möglich, bestimmte Konten zu sperren und deren Verwendung im gesamten System zu verbieten. Zu den Optionen für PermitRootLogin gehören "ja", "ohne Passwort", "nur erzwungene Befehle" oder "nicht". Die Vorgabe ist "ja". Um die Root-Anmeldung vollständig zu stoppen, verwenden wir die folgende Zeile:
 PermitRootLogin-Nr

VERGRÖSSERN

6. So legen Sie einen neuen Linux-SSH-Port fest


Standardmäßig ist der für SSH zugewiesene Port 22, damit Angreifer mit Sicherheit wissen, über welchen Port sie für ihre Angriffe zugreifen werden.

Dazu müssen wir die Port-Zeile suchen und die folgende Syntax hinzufügen:

 Port XXXXX

VERGRÖSSERN

7. So beschränken Sie den SSH-Linux-Zugriff


Falls der Zugriff auf den SSH-Server aus mehreren Benutzern besteht, können bestimmte Beschränkungen angewendet werden, indem Gruppen erstellt werden, in denen diese Benutzer enthalten sind, dies ist möglich durch Hinzufügen von Schlüsselwörtern wie:
 AllowUsers (Benutzerzugriff zulassen) AllowGroups (Gruppenzugriff zulassen) DenyUsers (Benutzerzugriff einschränken) DenyGroups (Gruppenzugriff einschränken)
In der Konfigurationsdatei können wir beispielsweise Folgendes ausführen:
 AllowUsers Solvetic-Tests DenyGroups-Test

8. So aktualisieren Sie die SSH-Linux-Kulanzzeit


Standardmäßig beträgt die Zeit, die ein Benutzer ohne Anmeldung inaktiv bleiben kann, zwei Minuten. Um unbefugte Verbindungen zum System zu verhindern, kann diese Zeit in der LoginGraceTime-Zeile bearbeitet werden, um dieses Wetter zu erhöhen oder zu verringern:
 LoginGraceTime 1m

VERGRÖSSERN

9. So erstellen Sie einen SSH-Linux-Alias


Innerhalb der SSH-Konfigurationen ist es möglich, einen Alias ​​anzugeben, der es ermöglicht, sich über einen Port und definierte Benutzer mit einem bestimmten Server zu verbinden, zum Beispiel können wir Folgendes hinzufügen:
 Host dev Hostname dev.solvetic.com Port 3333 Benutzer Solvetic
In diesem speziellen Fall müssen wir wie folgt zugreifen:
 ssh [email protected] -p 3333

10. Authentifizierung mit sicheren Schlüsseln SSH Linux


ssh ist viel sicherer und nützlicher, wenn es mit öffentlichen / privaten Schlüsselpaaren für Authentifizierungszwecke verwendet wird, anstatt Passwörter zu verwenden. Die Datei ssh_config kann mit dem IdentityFile-Schlüssel einen bestimmten Schlüssel für einen bestimmten Host deklarieren, in diesem Fall würden wir Folgendes eingeben:
 Host dev Hostname dev.solvetic.com Port 3333 Benutzer Solvetic IdentityFile ~ / .ssh / dev.solvetic.key
Für diesen Fall wäre die Verbindung wie folgt:
 ssh -i ~ / .ssh / dev.solvetic.key [email protected] -p 3333
Einige zusätzliche Parameter sind:

KompressionDort können wir Werte wie yes oder no verwenden, um die Deaktivierung der Komprimierung für einen Host zu aktivieren.
LogLevelEs erlaubt, den Detailgrad in den Protokollen für den SSH-Client zu definieren, die Optionen sind QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 und DEBUG3.
StrictHostKeyCheckingLegen Sie eine Einstellung für das Hinzufügen von Hosts zur Datei "known_hosts" fest.

Daher haben wir verschiedene Optionen, um die Sicherheit und die SSH-Konnektivität unter Linux zu verbessern.

wave wave wave wave wave