Hallo liebe Community,
ich möchte euch hier gerne erklären und zeigen, warum ihr euren SSH Zugang absichern solltet und wie das geht.
Inhaltsverzeichnis:
- Was ist ein SSH Zugang?
- Warum sollte ich den SSH Zugang absichern?
- Wie sichere ich den SSH Zugang ab?
-
Was ist ein SSH Zugang?
SSH (= Secure Shell) wird ein Netzwerkprotokoll, sowie entsprechende Softwares/Programme genannt mit denen man auf sichere Art und Weise eine verschlüsselte Netzwerkverbindung auf ein entferntes Gerät (z.B. den eigenen Server im Rechenzentrum) aufbauen kann.SSH wird oftmals dann verwendet, wenn man nicht immer zu einem entfernen Rechner gehen/fahren möchte, um nur eben ein paar Software Einstellungen/Änderungen vor zu nehmen. Mit Hilfe von SSH kann man bequem von überall aus auf das entsprechende Gerät zugreifen und entsprechende Befehle ausführen. Wenn SSH verfügbar ist, kann man auch gleichzeitig die integrierte "SFTP" Technologie mit verwenden, um Dateien wie bei einem FTP-Server hoch- und runterzuladen.
Für weitere Details zu SSH und SFTP siehe auch hier: Wikipedia | SSH (= Secure Shell)
-
Warum sollte ich den SSH Zugang absichern?
Es gibt so ein paar Spaßvögel - auch Hacker genannt - die meinen, sie müssten fremde Rechner für ihre Angriffe ausnutzen oder einfach nur einen Server kaputt machen. So kann es zum Beispiel sein, dass sie euren Server mit einem Brute-Force Angriff knacken und danach vollen root Zugriff auf eurem Server haben. Sobald sie soweit sind, können sie mit deinem Server alles anfangen, was sie damit möchten: Kaputt machen, Herunterfahren, Brute-Force-/(D)DoS-Angriffe starten, Botnetz aufbauen,...Da man bei den meisten Server-Betreibern seinen Server aufgrund der AGBs selbstständig absichern muss und man nicht nicht zum Opfer einer Straftat eines anderen Fallen möchte, sichert man den Server so gut es geht ab. Hier ist das erste ToDo dann immer die Absicherung für den Zugriff auf den Server. Dritte kommen normalerweise nicht ins Rechenzentrum rein und können sich somit auch nicht physikalisch damit verbinden, daher bietet es sich natürlich an, dass man die Remote-Verbindungen schützt. Unter diesen Verbindungen zählen dann zum Beispiel SSH-Zugänge.
-
Wie sichere ich den SSH Zugang ab?
Um den SSH-Zugang abzusichern, muss man lediglich die Konfiguration des SSH-Servers anpassen, sowie einen Schlüssel für den Benutzer/Administrator auf dem Server speichern. Somit wird dafür gesorgt, dass nur die Leute mit dem auf dem Server gespeicherten Schlüssel einen Zugriff auf den Server haben können. Alle anderen werden automatisch vom Server abgewiesen.Die ganze "Technik" nennt sich auch "SSH-Keys".
Also gut... Passen wir mal die Konfiguration des SSH-Servers an:
Code
Display More# Auf welchem Port lauscht der SSH-Server? (Standard ist TCP 22) Port 22 Protocol 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key UsePrivilegeSeparation yes KeyRegenerationInterval 3600 ServerKeyBits 768 SyslogFacility AUTH LogLevel INFO LoginGraceTime 120 PermitRootLogin no StrictModes no # Für eine zentralisierte Verwaltung kann hier auch ein absoluter Pfad angegeben werden. # Zum Beispiel: /root/.ssh/authorized_keys2 # %h steht für "Home-Verzeichnis" des einzuloggenden Benutzers. Für den Benutzer "sebastian" würde "%h" zum Beispiel "/home/sebastian" sein. AuthorizedKeysFile %h/.ssh/authorized_keys2 IgnoreRhosts yes RhostsRSAAuthentication no HostbasedAuthentication no # Passwort-Eingabe muss erfolgen! Leere Passwörter gelten nicht! PermitEmptyPasswords no ChallengeResponseAuthentication no # Keine Passwort-Authentifizierung - wir wollen SSH-Keys verwenden PasswordAuthentication no X11Forwarding yes X11DisplayOffset 10 PrintMotd no PrintLastLog yes TCPKeepAlive yes AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server UsePAM no
Hinweis: Ich habe zur Übersichtlichkeit alle nicht benötigten Zeilen und Kommentare entfernt.
Sobald die Datei entsprechend angepasst wurde, muss noch ein entsprechender SSH-Key auf dem Server gespeichert werden. Hierzu muss man erstmal einen erstellen. Hierfür gibt es "Putty". Daher müssen wir folgendes herunterladen: putty-0.63-installer.exe
Beachte bitte, dass "0.63" im Namen die Version ist und sich unter Umständen während der Zeit ändern kann. Daher bitte etwas mit denken.
Wenn ihr den Installer gedownloadet und installiert habt, öffnet ihr das Tool/Programm "PuTTYgen". Bei "Parameters" könnt ihr die "Stärke" des Schlüssels definieren. Desto stärker er wird, desto schwerer wird es auch, ihn zu knacken.
Wenn alle Einstellungen passen, drückt ihr auf "Generate" und bewegt eure Maus innerhalb des Fensters von PuTTYgen. Sobald der Vorgang abgeschlossen ist, habt ihr einen Key.
Jetzt müssen wir unseren Key noch speichern. Dazu füllen wir erstmal die Felder entsprechend aus:
QuoteKey comment: Hier trage ich persönlich immer die E-Mail Adresse ein, um später einfacher zu erkennen, wem der Key gehört.
Key passphrase: Hier kannst du dein persönliches Passwort für den Key festlegen. Wenn es leer bleibt, brauchst du beim Verbinden auf deinen Server kein Passwort eingeben - ist nicht ratsam.
Confirm passphrase: "Key passphrase" wiederholt eingeben.Gut... Jetzt kopierst du dir den kompletten Inhalt aus der Text-Box oben raus und speicherst es in die Datei, die in der SSH-Konfiguration (z.B. /home/sebastian/.ssh/authorized_keys2) steht. Das zu kopierende sieht zum Beispiel so aus:
Quotessh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAnpyrzgC1KGgj/hN3mJuy66mHlrDDc2StjpAiZm1ENHB3BBlLT+HVBW45hTqnohEvaj7MomeC7sy7L5jNHJXqeCEDkZU6L0ELcKZLYkCOstQGKtOD98c7buu+3vCUd6rXS9j/ccwBYnnzs624RX/BjMZP+40NMNeNgTGSkcKc0tM+i9R+npsqq1elUHtTU7PA4z+2Q3hB7/Cj29BLOVpTPya7XLa4KZZ5um8ZzX92rizmsTi1PM6x99oWsM0SrIuIqbN2WP3h8fL3DYbCpDqRsBzBP1uWHWGWG1GbID1FL+mbEjlhbU4981UCUjEfpUUq6VjRErkxH+i+vtMnVvxqiw== Key comment
Eventuell musst du hierfür erst noch das ein oder andere Verzeichnis anlegen:Wenn ihr den Text in der Datei gespeichert habt, speichert ihr noch jeweils den Key als "Public" und "Privat" auf eurem PC:
- "Save public key"
- Speicherort auswählen
- Dateinamen festlegen (ich nenne das immer ssh_public_key_key_comment)
- Speichern
- "Save privat key"
- Speicherort auswählen
- Dateinamen festlegen (ich nenne das immer ssh_private_key_key_comment)
- Speichern
Wenn alles erfolgreich erledigt wurde, müssen die Rechte der Dateien auf dem Server noch angepasst werden:Und die neuen Einstellungen für den SSH-Server müssen auch noch neu geladen werden:
Fertig. Jetzt solltet ihr euch mit eurem Key auf den Server verbinden können und alle anderen Verbindungsversuche werden geblockt.
Denke dran, dass du beim PuTTY den SSH-Key explizit angeben musst. Hierzu musst du in folgendes Menü des PuTTYs:
- Connection
- SSH
- Auth
- Privaten Key auswählen: "Private key file for authentification:"
- SSH
Ich hoffe, ich konnte jemanden helfen und wünsche euch viel Erfolg damit!