Rufen Sie uns an: +49 341 242 502 10

Ich war hier: SSH

Wiki source for SSH


Show raw source

===== SSH, OpenSSH usw. =====
== sichere, verschlüsselte Verbindungen mit UNIX ==

((1)) Absicherung //step-by-step//
Folgende Vorgaben sollten umgesetzt werden:
1) Kein ROOT-Login von außen
1) nur normaler Benutzer!
1) Aber auch dieser nur mit Zertifikat!
1) bei Bedarf: Zugriff auf bestimmte IP-Adressen begrenzen


((2)) ROOT-Zugang sperren
Grundlegendes Prinzip ist, den ROOT-Zugang per SSH von außen zu blockieren. Nachstehend wird die Vorgehensweise für //debian// behandelt, wo ein ROOT-Konto grundsätzlich existiert und per ##su -## jederzeit aufgerufen werden kann (Thema SUDO wird also nicht behandelt):
%%(perl)
# Benutzer hinzufügen und ihm Möglichkeit der Anmeldung einräumen
adduser [myusername]
# dann Passwörter etc. auch eingeben
----
# Datei "/etc/ssh/sshd_config" bearbeiten:
nano /etc/ssh/sshd_config

# => darin muss folgende Zeile enthalten sein:
PermitRootLogin no
# Server neu starten
systemctl reload sshd
%%
((2)) Anmeldung mit Zertifikaten ermöglichen
Die Anmeldung mit Zertifikat ist zu empfehlen... Auch wenn künftig eine Umstellung auf Teleportiert angestrebt wird, ist grundlegende Sicherheit nur über Zertifikate auch vorübergehend wichtig...
Dafür sind insgesamt folgende Schritte notwendig:

((3)) Einfache Variante (nicht immer möglich)
%%(perl)
# auf dem Client-Rechner (Linux oder Mac)
ssh-keygen
# für höchste Sicherheit auch Passphrase angeben / für komfortable bzw. für Zugriff über Skripte ohne

# Schlüssel auf Server kopieren:
ssh-copy-id [-i pfad/id_rsa.pub] user@server
%%

((3)) Ältere, meist aber zuverlässigere Variante
%%(perl)
# Schlüssel generieren - wie oben (einfache Variante):
ssh-keygen
# (kein Passwort bei Nachfrage eingeben, wenn remote-Zugriff erwünscht)
# komplexere Variante
ssh-keygen -t dsa -b 1024 -f /pfad/dateiname-schlüssel

# über Fernzugriff Schlüssel auf dem zweiten Rechner installieren
ssh name-des-benutzers-auf-dem-entfernten-rechner@ip-des-anderen-rechners mkdir -p .ssh
#... password:
#(hier pwd eingeben, weil dies Login ist)
# dann geht es weiter:
cat /pfad/dateiname-schlüssel.pub | ssh name-des-benutzers-auf-dem-entfernten-rechner@ip-des-anderen-rechners 'cat >> .ssh/authorized_keys'
#... password:##
# (letztes mal pwd eingeben)
%%
Jetzt funktioniert der login folgendermaßen:
##ssh username@ip-des-anderen-rechners##

((2)) Anmeldung mit Passwort verhindern
%%(perl)
# Datei "/etc/ssh/sshd_config" bearbeiten:
nano /etc/ssh/sshd_config
# => darin muss folgende Zeile enthalten sein:
PasswordAuthentication no
ChallengeResponseAuthentication no
# Server neu starten
systemctl reload sshd
%%

((2)) Zugriff auf bestimmte Adressen begrenzen
Der Zugriff kann über die hosts gesteuert werden (deny|allow)
%%(perl)
touch /etc/hosts.{allow,deny}
nano /etc/hosts.deny
# eingeben:
sshd: ALL
-
nano /etc/hosts.allow
sshd: 10.111.0.2


%%
----
**Achtung!** Da im RasPI die o. g. Beschreibung nicht funktionierte, hier einige Hinweise [[https://www.thomas-krenn.com/de/wiki/OpenSSH_Public_Key_Authentifizierung_unter_Ubuntu aus der Beschreibung bei Thomas Krenn]]:
##
ssh-keygen -b 4096
ssh-copy-id -i .ssh/key_rsa.pub user@IP-to-my-Machine##
----