LPIC102/110.3 Daten durch Kryptografie schützen: Unterschied zwischen den Versionen
Erscheinungsbild
	
	
K Textersetzung - „:Netzwerksicherheit“ durch „:Netzwerk:Sicherheit“  | 
				K Textersetzung - „z. B. “ durch „beispielsweise “  | 
				||
| (48 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
==SSH   | '''topic''' - Beschreibung  | ||
* Das Paket ''openssh-server'' installiert die serverseitige Komponente von SSH  | == Beschreibung ==  | ||
=== Wissensgebiete ===  | |||
* OpenSSH-2-Client grundlegend konfigurieren und verwenden  | |||
* Bedeutung von OpenSSH-2-Rechnerschlüsseln verstehen  | |||
* GnuPG grundlegend konfigurieren und verwenden  | |||
* GnuPG verwenden um Dateien zu verschlüsseln, entschlüsseln, signieren und zu überprüfen  | |||
* SSH-Port-Tunnel (auch X11-Tunnel) verstehen  | |||
=== Dateien, Verzeichnisse, Anwendungen ===  | |||
==== Anwendungen ====  | |||
* ssh  | |||
* ssh-keygen  | |||
* ssh-agent  | |||
* ssh-add  | |||
==== Dateien ====  | |||
; User  | |||
* ~/.ssh/authorized_keys  | |||
* ~/.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  | |||
; System  | |||
* /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 ==  | |||
=== Server ===  | |||
; Das Paket ''openssh-server'' installiert die serverseitige Komponente von SSH  | |||
;  SSH Dienst starten mit [[systemd]]  | |||
  # systemctl start sshd.service  |   # systemctl start sshd.service  | ||
  # systemctl enable sshd.service  |   # systemctl enable sshd.service  | ||
==  | === Client ===  | ||
* Die Verbidung startet ssh  | * Die Verbidung startet ssh  | ||
* Host-Namen bzw. die IP-Adresse wird angegeben  | * Host-Namen bzw. die IP-Adresse wird angegeben  | ||
* Anschliessend folgt die Eingabe des Kennwortes  | * Anschliessend folgt die Eingabe des Kennwortes  | ||
  $ ssh server  |   $ ssh server  | ||
| Zeile 16: | Zeile 47: | ||
  $ ssh willi@server  |   $ ssh willi@server  | ||
===Grafische Anwendungen unter X tunneln===    | ==== Grafische Anwendungen unter X tunneln ====  | ||
* SSH-Verbindung wird von einem X-Terminal aus mit der zusätzlichen Option -X (großes X) initiiert  | * SSH-Verbindung wird von einem X-Terminal aus mit der zusätzlichen Option -X (großes X) initiiert  | ||
  $ ssh -X server  |   $ ssh -X server  | ||
| Zeile 26: | Zeile 57: | ||
* 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  | * Als Beispiel, der Zugriff auf einen Terminalserver im entfernten Netzwerk hinter einem SSH-Server  | ||
* IP-Adresse des Terminalservers 192.168.50.10  | |||
* IP-Adresse des Terminalservers 192.168.50.10  | * Terminalserver lauscht an Port 3389  | ||
* Terminalserver lauscht an Port 3389  | |||
* IP des SSH-Server 119.117.63.126  | * 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'''  | |||
  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  | * Option -L leitet Port 4711 an 192.168.50.10 mit Portnummer 3389 weiter  | ||
* Verbindungen werden an 192.168.50.10:3389 weitergeleitet  | * Verbindungen werden an 192.168.50.10:3389 weitergeleitet  | ||
* Terminal-Dienste-Clients (  | * Terminal-Dienste-Clients (beispielsweise remmina) nutzen nun als Ziel localhost:4711<br>  | ||
; Hinweis  | |||
: Auch vom Windows-Computer aus kann mittels PuTTy auf einen Linux-Host zugegriffen werden <br>  | |||
Läuft ein X-Server auf dem Windows-Computer (beispielsweise Xming oder Cygwin), ist auch das Tunneln von Ports inklusive X11 durchführbar  | |||
=== Konfigurationsdateien ===  | |||
; /etc/ssh/sshd_config  | |||
* Die Konfigurationsdatei sshd_config dient der Konfiguration von sshd, also den SSH-Server  | * Die Konfigurationsdatei sshd_config dient der Konfiguration von sshd, also den SSH-Server  | ||
| Zeile 60: | Zeile 86: | ||
  HostKey /etc/ssh/ssh_host_ed25519_key  |   HostKey /etc/ssh/ssh_host_ed25519_key  | ||
Erläuterung  | ; Erläuterung  | ||
* sshd verwendet den Standardport 22  | |||
* sshd verwendet den Standardport 22  | * Ausschließlich SSH-2-Verbindungen  | ||
* Ausschließlich SSH-2-Verbindungen  | |||
* Zugriff auf Schnittstelle des Rechners: 192.168.0.58  | * Zugriff auf Schnittstelle des Rechners: 192.168.0.58  | ||
* Kein login für root  | * Kein login für root  | ||
* Als Hostkey kommen RSA, ECDSA und Ed25519 in Frage  | * Als Hostkey kommen RSA, ECDSA und Ed25519 in Frage  | ||
; Hinweis  | |||
: Auf die Authentifizierung mit Schlüsseln und ssh_known_hosts Datei wird später näher eingegangen  | |||
; /etc/ssh/ssh_config  | |||
Konfiguration des SSH-Clients  | |||
* 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  | * Die Optionsnamen innerhalb dieser Datei sind ansonsten selbsterklärend oder in der Manpage nachzuschlagen  | ||
* Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln  | * Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln  | ||
* Die   | ; /etc/hosts.allow und /etc/hosts.deny  | ||
* Die Dateien steuern wie die oben beschriebenen Dateien, den Zugriff auf SSH  | |||
* ''hosts.allow'' hat Vorrang vor der Datei ''hosts.deny  | * ''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  | * 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  | * 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  | * 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  | * In dieser Datei kann auch eine Nachricht an Benutzer hinterlassen werden die sich lokal anmelden wollen  | ||
<noinclude>  | |||
== Anhang ==  | |||
=== Siehe auch ===  | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}  | |||
----  | |||
* [[LPIC102/110.3 SSH Authentifizierung mit Schlüsseln|110.3 SSH Authentifizierung mit Schlüsseln]]  | |||
* [[Putty|PuTTY - ein freier SSH-Client]]  | |||
*   | |||
*   | |||
* ssh_known_hosts  | * ssh_known_hosts  | ||
* gpg  | * gpg  | ||
| Zeile 129: | Zeile 129: | ||
* ~/.gnupg/  | * ~/.gnupg/  | ||
= Links =  | === Links ===  | ||
==  | ==== Weblinks ====  | ||
==   | |||
[[Kategorie:Linux  | [[Kategorie:Linux/LPIC/102]]  | ||
[[Kategorie:  | [[Kategorie:Kryptografie/Anwendung]]  | ||
[[Kategorie:SSH]]  | [[Kategorie:SSH]]  | ||
</noinclude>  | |||
Aktuelle Version vom 28. April 2025, 09:28 Uhr
topic - Beschreibung
Beschreibung
Wissensgebiete
- OpenSSH-2-Client grundlegend konfigurieren und verwenden
 - Bedeutung von OpenSSH-2-Rechnerschlüsseln verstehen
 - GnuPG grundlegend konfigurieren und verwenden
 - GnuPG verwenden um Dateien zu verschlüsseln, entschlüsseln, signieren und zu überprüfen
 - SSH-Port-Tunnel (auch X11-Tunnel) verstehen
 
Dateien, Verzeichnisse, Anwendungen
Anwendungen
- ssh
 - ssh-keygen
 - ssh-agent
 - ssh-add
 
Dateien
- User
 
- ~/.ssh/authorized_keys
 - ~/.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
 
- System
 
- /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
Server
- Das Paket openssh-server installiert die serverseitige Komponente von SSH
 - SSH Dienst starten mit systemd
 
# systemctl start sshd.service # systemctl enable sshd.service
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
 
$ 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 (beispielsweise 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 (beispielsweise Xming oder Cygwin), ist auch das Tunneln von Ports inklusive X11 durchführbar
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
 - Auf die Authentifizierung mit Schlüsseln und ssh_known_hosts Datei wird später näher eingegangen
 
- /etc/ssh/ssh_config
 
Konfiguration des SSH-Clients
- 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
 - Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln
 
- /etc/hosts.allow und /etc/hosts.deny
 
- Die Dateien steuern wie die oben beschriebenen Dateien, den Zugriff auf SSH
 - 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
 
Anhang
Siehe auch
- 110.3 SSH Authentifizierung mit Schlüsseln
 - PuTTY - ein freier SSH-Client
 - ssh_known_hosts
 - gpg
 - gpg-agent
 - ~/.gnupg/