SSH installieren
Quelle: http://www.tim-bormann.de/tutorial-installation-debian-linux-ssh-server/
Die Installation erfolgt aus dem Debian-Repository:
sudo apt-get update
sudo apt-get install sshd
sudo apt-get install ssh
Schlüssel erstellen
Quelle: http://wiki.hetzner.de/index.php/Sshd
Um die Sicherheit zu erhöhen werden zur Authentifizierung am Server Schlüssel benutzt. Diese können entweder am Client erstellt werden, oder aber auch am Server selbst. In beiden Fällen bleibt am Server nur der öffentliche Schlüssel. Der Private ist immer nur am Client (eben beim Benutzer).
Variante 1: Schlüssel auf Client erstellen
Bei dieser Variante verlässt der private Schlüssel nie den Client -- somit ist diese Variante prinzipiell zu bevorzugen. Das Schlüsselpaar wird mittels ssh-keygen -t rsa erzeugt. Das Passwort sollte dabei zwar wie immer möglichst lang und komplex, gleichzeitig aber noch merkbar sein. Dieses braucht man nämlich bei jedem Login-Vorgang.
Anschließend den öffentlich Schlüssel pubkey auf den Server kopieren. Am Server mit dem Admin-Benutzer eingeloggt führen wir folgende Aktionen durch:
mkdir ~/.ssh
mv pubkey ~/.ssh/authorized_keys
Der Benutzer und der zugehörige Schlüssel sind nun vorbereitet zum Einloggen.
Variante 2: Schlüssel am Server erstellen
Manchmal ist es einfacher das Schlüsselpaar direkt am Server zu erstellen. Z.B. wenn am Client keine SSH-Tools verfügbar sind. Wichtig dabei ist immer, dass hier ein direkter und sicherer Zugriff zum Server besteht, da hier der private Schlüssel von Server zum Client kopiert werden muss.
Die Anlage erfolgt analog Variante 1:
ssh-keygen -t rsa
cd ~/.ssh
mv id_rsa.pub authorized_keys
Zum Unterschied muss hier aber nun der private Schlüssel vom Server auf den Client kopiert werden. Die Kopie am Server sollte danach gelöscht werden.
Zugriffsschutz für Schlüssel am Server
In beiden Fällen sollte der öffentliche Schlüssel am Server vor Zugriffen Dritter geschützt werden:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Konfiguration des SSH-Daemon (Teil 1)
Der SSH-Port 22 wird leider allzugerne von diversen Leuten "getestet". D.h. es finden sich täglich oft tausende Login-Versuche in den Log-Dateien. Um diese Probelm großteils zu entschärfen braucht der SSH-Port nur auf einen anderen, willkürlich ausgewählten Port geändert zu werden.
Dies wird in der Datei sshd_config angepasst:
sudo vim /etc/ssh/sshd_config
Ziemlich zu Beginn steht dort die Zeile:
Die 22 wird nun durch einen zufälligen Port, z.B. 5386 ersetzt. Anschließend wird SSH mittels sudo service ssh restart neugestartet.
[Update] Firewall für SSH-Verbindungen öffnen
[Neu] Mittels ufw
Der gewünschte Port kann ganz einfach geöffnet werden:
sudo ufw allow <Portnummer>/tcp
Mittels iptables init.d-Skript
Als Basis hierzu dient mein Artikel Firewall aufsetzen. Dazu wird das Firewall-Sktipt mittels sudo vim /etc/init.d/firewall editiert und unter # allow input PROTOCOL DST-IP PORT um eine neue Portregel erweitert:
firewall_allow_input TCP $IP_EXTERNAL <Portnummer>
Anschließend muss die Firewall noch neu gestartet werden:
sudo service firewall restart
Client einrichten
für Linux: ssh über Konsole ##
Unter Linux kann eine SSH-Verbindung zum Server direkt über einen Aufruf aus der Kommandozeileaufgebaut werden:
ssh <Benutzer-ID>@<Server> -p <Port> -i <Schlüsseldatei>
Der Einfachheit wegen können die Parameter auch in einer Konfigurationsdatei abgespeichert werden. Die Konfig erstellen wir mittels vim ~/.ssh/config.
Dort fügen wir folgenden Abschnitt ein:
Host <Kurzbezeichnug>
Hostname <Server>
Port <Port>
IdentityFile ~/.ssh/<Schlüsseldatei>
User <Benutzer-ID>
Die Verbindung kann denn einfach mittels ssh <Kurzbezeichnung> aufgebaut werden.
[Entwurf] für Windows: Putty
Quelle: http://meinit.nl/using-your-openssh-private-key-in-putty
Key nach Putty konvertieren
lade puttygen.exe
--> key laden (passwort)
--> speichern
Putty konfigurieren (inkl. key)
Hinweis: SSH-Verbindung über das TOR-Netzwerk herstellen
http://www.10igas.net/tech/ssh-verbindung-mit-putty-uber-das-tor-netzwerk-tunneln/
Verbindung testen
Wie oben beschrieben eine Verbindung zum SSH-Server aufbauen.
Konfiguration des SSH-Daemon (Teil 2)#
War der Test-Login erfolgreich können nun noch zwei Sicherheitsschwachstellen gestopft werden.
Dazu wird an folgenden zwei Stellen in der sshd_config der Wert von yes auf no geändert:
PermitRootLogin yes
PasswordAuthentication yes
Das bedeutet dass sich der root-User nun nicht mehr direkt , sowie kein User mehr mittels Passwort angemeldet werden kann -- nur noch per Schlüssel.
Abschließend noch ein Neustart von SSH:
Optional: Willkommensmeldung
Quelle: http://www.tim-bormann.de/tutorial-installation-debian-linux-ssh-server/
Die Willkommensmeldung beim Login kann wenn gewünscht ebenfalls noch angepasst werden: