Konfigurieren Sie den Linux OpenSSH-Server

Alle Linux-Benutzer kennen den SSH-Server, da er es der Remote-Verbindung ermöglicht, die Befehlszeile zu erhalten.
Was wir jedoch nicht unbedingt wissen, ist, dass openSSH, so der vollständige Name, eigentlich eine Suite von Tools ist, die verschiedene Möglichkeiten zur Verbindung und Interaktion mit einer Maschine bietet.
Wie jeder Server ist auch der SSH-Server so konfiguriert, dass er genau unseren Anforderungen entspricht. Das werden wir heute sehen.

Contents

Geschichte von OpenSSH

Die “unter 20” haben wahrscheinlich noch nie Software wie telnet, rlogin und andere rcp gekannt … Okay, es gibt immer noch FTP, das jeder kennt.
Diese gute alte Software, die jetzt veraltet ist, erlaubte Verbindungen, Kopieren, Dateiübertragung usw. auf einem Remote-Rechner … aber ohne Sicherheit … Wir erinnern uns an die Verwüstungen von Telnet-Verbindungssniffern …
Um dies zu beheben, hat das OpenBSD-Team die entsprechende Software entwickelt, aber in einer sicheren Version, wie SSH, SCP, SFTP, und gruppiert sie innerhalb der OpenSSH-Suite.

OpenSSH-Suite-Software

ssh

Der SSH-Client, der Verbindungen zu Remote-Computern ermöglicht.
ssh ersetzt vorteilhafterweise den Telnet-Client.

scp

Der scp-Client ersetzt das alte rcp und ermöglicht das Kopieren von Dateien zwischen 2 Maschinen.
Seine Verwendung bleibt vertraulicher als die von sFTP, die mehr Möglichkeiten bietet.

sftp

der sftp-Client, der es Ihnen ermöglicht, eine Baumstruktur auf einem Remote-Rechner auf die gleiche Weise wie ftp zu verwalten.

sshd

Der SSH-Server selbst.

sftp-server

Der vom SSH-Server gestartete sFTP-Server.

ssh-keygen, ssh-agent, ssh-add, ssh-keyscan, ssh-keysign, ssh-copy-id

Die gesamte Suite von Tools zum Generieren und Verwalten von SSH-Schlüsseln.
Wir werden diese Software hier nicht detailliert beschreiben, das ist nicht der Punkt.

Wie funktioniert das SSH-Protokoll?

Welches Programm Sie auch immer verwenden, die grundlegende Bedienung ist immer gleich.
Beim Verbindungsaufbau tauschen Client und Server ihre Verschlüsselungsschlüssel aus, um ihre Identität nachzuweisen. Jeder kennt den Schlüssel des anderen, um ihn zu identifizieren.
Sobald die Identität bewiesen ist, wird die gesamte Kommunikation (eigentlich alle TCP-Frames) zwischen den beiden verschlüsselt und nur diejenigen, die einen Schlüssel haben, können die Informationen entschlüsseln.
Auf diese Weise kann jeder, der die Kommunikation abfängt, diese nicht entschlüsseln, wenn er nicht über den Schlüssel verfügt.

Installieren Sie den SSH-Server

Kurz gesagt… Es gibt nichts zu installieren… Heutzutage ist OpenSSH offensichtlich auf den meisten Linux-Distributionen standardmäßig installiert. Das schließt eine Überprüfung jedoch nicht aus.

 root @ debian: ~ # ssh -V OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1e 11. Februar 2013 

Wir sehen hier unsere Version von OpenSSH, 6.0.p1, sowie die Version der OpenSSL-Bibliothek, die den gesamten kryptografischen Teil und damit die Schlüssel verwaltet.

Konfigurieren Sie Ihren SSH-Server

Hier sind wir endlich!
Wir werden in der Lage sein, unseren SSH-Server so zu konfigurieren, dass er unseren Erwartungen entspricht.

die Konfigurationsdateien befinden sich im Ordner /etc/ssh .

 root @ debian: / etc / ssh # l insgesamt 168 -rw-r - r-- 1 Wurzel Wurzel 136 156 Feb. 8 2013 Module -rw-r - r-- 1 Wurzel Wurzel 1669 Feb. 8 2013 ssh_config -rw-r - r-- 1 root root 2491 23. November 20:19 sshd_config -rw ------- 1 root root 672 22. August 2013 ssh_host_dsa_key -rw-r - r-- 1 root root 601 22. August 2013 ssh_host_dsa_key.pub -rw ------- 1 root root 227 22. August 2013 ssh_host_ecdsa_key -rw-r - r-- 1 root root 173 22. August 2013 ssh_host_ecdsa_key.pub -rw ------- 1 root root 1675 22. August 2013 ssh_host_rsa_key -rw-r - r-- 1 root root 393 22. August 2013 ssh_host_rsa_key.pub root @ debian: / etc / ssh # 

Was uns heute interessieren wird, ist die Datei sshd_config , die unseren Server verwalten wird.
Beachten Sie, dass die Datei ssh_config für die Anpassung Ihres SSH-Clients verantwortlich ist.

Wir werden die Datei bearbeiten sshd_config . Ich empfehle Ihnen, vorsichtshalber vorher eine Kopie anzufertigen. Bei einer schlechten Konfiguration könnten Sie sich die Verbindung entziehen!

Ich präsentiere hier nur die interessanten Optionen zum Ändern.

 Port 22 

Der Standardport für das SSH-Protokoll.
Offensichtlich das erste Angriffsziel für Hacker im Falle eines Angriffs. Es ist eine gute Idee, es auf einen anderen unbenutzten Port zu ändern, wenn Sie es sich leisten können.

 #ListenAddress 0.0.0.0 

Um das Risiko von Eindringlingen immer zu begrenzen, kann es sinnvoll sein, die Verbindungen auf diese oder diese IPs zu beschränken, wenn die Verbindungen immer von derselben Stelle stammen.

 PermitRootLogin ja 

Wenn nur eine Option geändert werden müsste, wäre es diese.
Der Titel ist ziemlich klar, er erlaubt standardmäßig Remote-Verbindungen mit dem Root-Benutzer … Übergeben Sie den Wert an “no”, um dies zu blockieren.
Wenn Sie „nein“ eingeben, müssen Sie sich zuerst mit einem Standardbenutzer anmelden und dann zu Root wechseln.

 PermitEmptyPasswords nein 

Muss bei „nein“ belassen werden.
Wenn Sie durch einen unglaublichen Zufall Benutzer ohne Passwort haben, können diese sich nicht einloggen.

 Subsystem sftp / usr / lib / openssh / sftp-server 

Nur fürs Protokoll, hier werden wir unseren sFTP-Server anpassen.
Dies wird Gegenstand eines weiteren Tutorials sein.

  LogLevel-INFO 

Es ist gut zu wissen, wie viel Datenverkehr bei Verbindungsversuchen vorhanden ist. Ich empfehle Ihnen, diese Ebene zu verlassen, da Sie bei Bedarf die Stämme schälen können.

 PubkeyAuthentifizierung ja 

Ermöglicht den Verbindungsaufbau mittels Identifikation direkt über Schlüssel, ohne dass ein Passwort eingegeben werden muss.
Wenn Sie nicht verstehen, was es ist, können Sie „nein“ setzen ?

 PasswortAuthentifizierung ja 

Ermöglicht die Identifizierung per Passwort. Lassen Sie es auf „ja“, wenn Sie keine Schlüsselidentifikation verwenden.

 AllowUsers Benutzer verweigern Gruppen zulassen Gruppen verweigern 

Diese Zeilen fehlen standardmäßig, Sie können sie hinzufügen.
Ihre Namen sind selbsterklärend, aber nur ein Beispiel, wenn ich nicht möchte, dass sich der Benutzer „foo“ einloggt, füge ich die Zeile hinzu:

 DenyUsers toto 

Und an der Verbindung gibt es das:

 ssh [email protected] [email protected] Passwort: Zugang verweigert, versuche es bitte erneut. 

Das war’s, die Konfiguration ist abgeschlossen, es müssen nur noch die Änderungen übernommen werden

 ssh-Reload-Dienst 

Ein Ratschlag, verlassen Sie nicht Ihre aktive Sitzung, um die Einstellungen zu testen, sondern starten Sie eine neue. Wenn mit Ihrem OpenSSH-Server etwas schief geht, haben Sie immer die Kontrolle über Ihren Server.