LPIC102/110.3 Daten durch Kryptografie schützen: Unterschied zwischen den Versionen

Aus Foxwiki
Meikschwalm (Diskussion | Beiträge)
Meikschwalm (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
==SSH Daemon==
==SSH Daemon==
Das Paket openssh-server installiert die serverseitige Komponente von SSH.<br>
* Das Paket openssh-server installiert die serverseitige Komponente von SSH.<br>
Folgende Befehle starten unter systemd den SSH Dienst.
* Folgende Befehle starten unter systemd den SSH Dienst.
  # systemctl start sshd.service
  # systemctl start sshd.service
  # systemctl enable sshd.service
  # systemctl enable sshd.service


==SSH-Client==
==SSH-Client==
Um eine Verbindung zwischen zwei Linux-Systemen aufzubauen, startet man ssh und übergibt den Host-Namen bzw. die IP-Adresse.<br>
* Die Verbidung startet ssh.
Anschliessend folgt die Eingabe eines Kennwortes:
* Host-Namen bzw. die IP-Adresse wird angegeben.
* Anschliessend folgt die Eingabe des Kennwortes.
  $ ssh server
  $ ssh server
  root@server's password:
  root@server's password:


Möchte man sich nicht mit seinem lokalen Benutzerkonto anmelden, gibt es zwei Wege:
* Zwei Wege um sich mit einem alternativen Benutzerkonto anzumelden:
  $ ssh -l willi server
  $ ssh -l willi server
  $ ssh willi@server
  $ ssh willi@server
Zeile 17: Zeile 18:
===Grafische Anwendungen unter X tunneln===  
===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.<br>
* SSH-Verbindung wird von einem X-Terminal aus mit der zusätzlichen Option -X (großes X) initiiert.


  $ ssh -X server
  $ ssh -X server


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


  user@server:~ $ libreoffice
  user@server:~ $ libreoffice


Die grafische Ausgabe und die Bedienung erfolgt lokal am SSH-Client-Rechner.
* Grafische Ausgabe und Bedienung erfolgt lokal am SSH-Client-Rechner.
Das hier beschriebene Verfahren wird als X11-Tunnel bezeichnet.
* Das hier beschriebene Verfahren wird als X11-Tunnel bezeichnet.
 
*
===Weiterleitung anderer Ports durch einen SSH-Tunnel.===
===Weiterleitung anderer Ports durch einen SSH-Tunnel.===


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


*IP-Adresse des Terminalservers 192.168.50.10<br>
*IP-Adresse des Terminalservers 192.168.50.10<br>
Zeile 36: Zeile 37:
*IP des SSH-Server 119.117.63.126
*IP des SSH-Server 119.117.63.126


Zunächst wird die SSH-Verbindung initiiert:
* Zunächst wird die SSH-Verbindung initiiert.


  ssh 119.117.63.126 -L 4711:192.168.50.10:3389
  ssh 119.117.63.126 -L 4711:192.168.50.10:3389
Zeile 48: Zeile 49:
Läuft ein X-Server auf dem Windows-Computer (z. B. Xming oder Cygwin), ist auch das Tunneln von Ports inklusive X11 durchführbar.<br>
Läuft ein X-Server auf dem Windows-Computer (z. B. Xming oder Cygwin), ist auch das Tunneln von Ports inklusive X11 durchführbar.<br>


Wiki Artikel zu PuTTy <br>
#WEITERLEITUNG [[PuTTY - ein freier SSH-Client]]
[[PuTTY - ein freier SSH-Client]]


==SSH-Konfigurationsdateien==
==SSH-Konfigurationsdateien==

Version vom 29. Juli 2019, 20:50 Uhr

SSH Daemon

  • Das Paket openssh-server installiert die serverseitige Komponente von SSH.
  • Folgende Befehle starten unter systemd den SSH Dienst.
# systemctl start sshd.service
# systemctl enable sshd.service

SSH-Client

  • Die Verbidung startet ssh.
  • Host-Namen bzw. die IP-Adresse wird angegeben.
  • Anschliessend folgt die Eingabe des Kennwortes.
$ ssh server
root@server's password:
  • Zwei Wege um sich mit einem alternativen Benutzerkonto anzumelden:
$ ssh -l willi server
$ ssh willi@server

Grafische Anwendungen unter X tunneln

  • SSH-Verbindung wird von einem X-Terminal aus mit der zusätzlichen Option -X (großes X) initiiert.
$ ssh -X server
  • Auf der Konsole des Remote-Systems führt man die Anwendung aus:
user@server:~ $ libreoffice
  • Grafische Ausgabe und 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.
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.

  1. WEITERLEITUNG PuTTY - ein freier SSH-Client

SSH-Konfigurationsdateien

/etc/ssh/sshd_config

Die Konfigurationsdatei sshd_config dient der Konfiguration von sshd, also den SSH-Server.

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

Erläuterung:

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

Hinweis
Der Authentifizierung mit Schlüsseln und ssh_known_hosts Datei, wird unter SSH Authentifizierung mit Schlüsseln ein separater Abschnitt gewidmet, weil sie ausdrücklich als Prüfungsthema genannt sind.

/etc/ssh/ssh_config

Die Konfigurationsdatei ssh_config dient der clientseitigen Konfiguration von SSH.

z.B.

  • Clientseitige X11-Weiterleitung oder Passwortauthentifizierung
  • RSA-Authentifizierung aktiv
  • Standardport für ausgehende Verbindungen festlegen


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

/etc/hosts.allow und /etc/hosts.deny

Die Dateien /etc/hosts.allow und /etc/hosts.deny steuern wie die oben beschriebenen Dateien, den Zugriff auf SSH.

Wichtig für die Prüfung: Die Datei hosts.allow hat Vorrang vor der Datei hosts.deny.
Wird einem Host der Zugriff auf SSH durch hosts.allow gewährt, kann das durch keinen Eintrag in hosts.deny zurückgenommen werden.

/etc/nologin

Mit dem erstellen einer leeren Datei namens /etc/nologin lässt sich der Zugriff auf SSH verhindern.
Nur root kann sich dann noch am System anmelden.
In dieser Datei kann auch eine Nachricht an Benutzer hinterlassen werden die sich lokal anmelden wollen.

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/


#WEITERLEITUNG 110.3 SSH Authentifizierung mit Schlüsseln

Quellenangaben

Meikschwalm (Diskussion) 21:38, 29. Jul. 2019 (CEST)