Tenigas' Technik-Blog

  • Git Cheat-Sheet
  • Meine *vimrc*
  • Desktop
  • Linux
  • MacOS
  • Programmieren
  • Server
  • Synology
  • Texteditor

Zugriff auf den Server mittels SSH

Published: Do 06 Oktober 2011
By tenigas

In Server.

tags: Firewall Installation SSH Terminal

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:

Port 22

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:

sudo service ssh restart

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:

sudo vim /etc/motd
Proudly powered by Pelican, which takes great advantage of Python.

The theme is by Smashing Magazine, thanks!