LPIC102/110.3 Daten durch Kryptografie schützen

Aus Foxwiki

Ausführliche Informationen zur Funktionsweise von SSH werden im Artikel SSH (secure shell) erläutert.
In diesem Artikel geht es nur um LPIC prüfungsrelevante Themen zu SSH.

Wichtigste Wissensgebiete

  • einen OpenSSH-2-Client grundlegend konfigurieren und verwenden
  • die Rolle von OpenSSH-2-Rechnerschlüsseln verstehen
  • GnuPG grundlegend konfigurieren und verwenden
  • GPG verwenden um Dateien zu verschlüsseln, entschlüsseln, signieren und zu überprüfen
  • SSH-Port-Tunnel (auch X11-Tunnel) verstehen

Liste wichtiger Dateien, Verzeichnisse und Anwendungen

  • ssh
  • ssh-keygen
  • ssh-agent
  • ssh-add
  • ~/.ssh/id_rsa und id_rsa.pub
  • ~/.ssh/id_dsa und id_dsa.pub
  • ~/.ssh/id_ecdsa und id_ecdsa.pub
  • ~/.ssh/id_ed25519 und id_ed25519.pub
  • /etc/ssh/ssh_host_rsa_key und ssh_host_rsa_key.pub
  • /etc/ssh/ssh_host_dsa_key und ssh_host_dsa_key.pub
  • /etc/ssh/ssh_host_ecdsa_key und ssh_host_ecdsa_key.pub
  • /etc/ssh/ssh_host_ed25519_key und ssh_host_ed25519_key.pub
  • ~/.ssh/authorized_keys
  • ssh_known_hosts
  • gpg
  • gpg-agent
  • ~/.gnupg/

SSH verwenden

Das Paket openssh-server installiert die serverseitige Komponente von SSH.
Folgende Befehle starten unter systemd den SSH Dienst.

user:~ # systemctl start sshd.service
user:~ # systemctl enable sshd.service

SSH-Client-Verbindung

Um eine Verbindung zwischen zwei Linux-Systemen aufzubauen, startet man ssh und übergibt den Host-Namen bzw. die IP-Adresse.
Anschliessend folgt die Eingabe eines Kennwortes:

user:~ # ssh server
root@server's password:

Möchte man sich nicht mit seinem lokalen Benutzerkonto anmelden, gibt es zwei Wege:

user:~ # ssh -l willi server
user:~ # ssh willi@server

Grafische Anwendungen unter X tunneln

Zuerst wird die SSH-Verbindung von einem X-Terminal aus mit der zusätzlichen Option -X (großes X) initiiert.

user:~ # ssh -l willi -X server

Auf der Konsole des Remote-Systems führt man die Anwendung aus:

willi@server's password: 
willi@server:~ # openoffice

Die grafische Ausgabe und die Bedienung erfolgt lokal am SSH-Client-Rechner.
Das hier beschriebene Verfahren wird als X11-Tunnel bezeichnet.

Weiterleitung anderer Ports durch einen SSH-Tunnel.

Als Beispiel, der Zugriff auf einen Terminalserver im entfernten Netzwerk hinter einem SSH-Server.

IP-Adresse des Terminalservers 192.168.50.10
Terminalserver lauscht an Port 3389
IP des SSH-Server 119.117.63.126

Zunächst wird die SSH-Verbindung initiiert:

archangel:~ # ssh 119.117.63.126 -L 4711:192.168.50.10:3389

Option -L leitet Port 4711 an 192.168.50.10 mit Portnummer 3389 weiter. Verbindungen werden an 192.168.50.10:3389 weitergeleitet. Terminal-Dienste-Clients (z. B. remmina) nutzen nun als Ziel localhost:4711


Hinweis
Auch vom Windows-Computer aus kann mittels PuTTy auf einen Linux-Host zugegriffen werden.
Läuft ein X-Server auf dem Windows-Computer (z. B. Xming oder Cygwin), ist auch das Tunneln von Ports inklusive X11 durchführbar.

Wiki Artikel zu PuTTy
PuTTY - ein freier SSH-Client

SSH-Konfigurationsdateien

/etc/ssh/sshd_config

sshd_config ist die Konfigurationsdatei von sshd, also den SSH-Server. Hier können z. B. folgende Parameter festgelegt werden:

Port 22
Protocol 2
ListenAddress 192.168.0.58
PermitRootLogin no
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

Erklärung:

  1. sshd verwendet den Standardport 22.
  2. Ausschließlich SSH-2-Verbindungen.
  3. Kein login für root.
  4. Zugriff auf Schnittstelle des Rechners: 192.168.0.58
  5. Als Hostkey kommen RSA, ECDSA und Ed25519 in Frage.

Auf Schlüssel wird etwas später näher eingegangen.

/etc/ssh/ssh_config

In der Konfigurationsdatei ssh_config finden Sie die clientseitige Konfiguration von SSH.

Beispiel: Clientseitige X11-Weiterleitung Passwortauthentifizierung RSA-Authentifizierung aktiviert Standardport für ausgehende Verbindungen

Die Optionsnamen innerhalb dieser Datei sind ansonsten selbsterklärend.
ACHTUNG! Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln.