LPIC102/110.3 Daten durch Kryptografie schützen: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
==SSH Daemon== | ==SSH Daemon== | ||
* Das Paket ''openssh-server'' installiert die serverseitige Komponente von SSH | * Das Paket ''openssh-server'' installiert die serverseitige Komponente von SSH | ||
* 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== | ||
* 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 | ||
root@server's password: | root@server's password: | ||
* Zwei Wege um sich mit einem alternativen Benutzerkonto anzumelden | * Zwei Wege um sich mit einem alternativen Benutzerkonto anzumelden | ||
$ ssh -l willi server | $ ssh -l willi server | ||
$ ssh willi@server | $ ssh willi@server | ||
Zeile 18: | Zeile 18: | ||
===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 | ||
* 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 | ||
* Grafische Ausgabe und 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=== | |||
* | * Als Beispiel, der Zugriff auf einen Terminalserver im entfernten Netzwerk hinter einem SSH-Server | ||
* Zunächst wird die SSH-Verbindung initiiert | * IP-Adresse des Terminalservers 192.168.50.10<br> | ||
* Terminalserver lauscht an Port 3389<br> | |||
* 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 (z. B. remmina) nutzen nun als Ziel localhost:4711<br> | * Terminal-Dienste-Clients (z. B. remmina) nutzen nun als Ziel localhost:4711<br> | ||
'''Hinweis'''<br> | '''Hinweis'''<br> | ||
Auch vom Windows-Computer aus kann mittels PuTTy auf einen Linux-Host zugegriffen werden | Auch vom Windows-Computer aus kann mittels PuTTy auf einen Linux-Host zugegriffen werden <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 | 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> | ||
#WEITERLEITUNG [[PuTTY - ein freier SSH-Client]] | #WEITERLEITUNG [[PuTTY - ein freier SSH-Client]] | ||
Zeile 54: | Zeile 54: | ||
''/etc/ssh/sshd_config'' | ''/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 | ||
Port 22 | Port 22 | ||
Zeile 73: | Zeile 73: | ||
'''Hinweis'''<br> | '''Hinweis'''<br> | ||
Auf die Authentifizierung mit Schlüsseln und ssh_known_hosts Datei wird später näher eingegangen | Auf die Authentifizierung mit Schlüsseln und ssh_known_hosts Datei wird später näher eingegangen | ||
<br> | <br> | ||
''/etc/ssh/ssh_config'' | ''/etc/ssh/ssh_config'' | ||
* Die Konfigurationsdatei ssh_config | * Die Konfigurationsdatei ssh_config | ||
* Sie dient der clientseitigen Konfiguration von SSH | * Sie dient der clientseitigen Konfiguration von SSH | ||
z.B. | z.B. | ||
Zeile 86: | Zeile 86: | ||
Standardport für ausgehende Verbindungen festlegen | 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 | ||
<br> | <br> | ||
Zeile 93: | Zeile 93: | ||
''/etc/hosts.allow'' und ''/etc/hosts.deny'' | ''/etc/hosts.allow'' und ''/etc/hosts.deny'' | ||
* Die beiden Dateien steuern wie die oben beschriebenen Dateien, den Zugriff auf SSH | * Die beiden 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 | ||
<br> | <br> | ||
Zeile 101: | Zeile 101: | ||
''/etc/nologin'' | ''/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 | ||
==Wichtigste Wissensgebiete== | ==Wichtigste Wissensgebiete== |
Version vom 1. August 2019, 13: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
- 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
Auf die Authentifizierung mit Schlüsseln und ssh_known_hosts Datei wird später näher eingegangen
/etc/ssh/ssh_config
- Die Konfigurationsdatei ssh_config
- Sie 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
- Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln
/etc/hosts.allow und /etc/hosts.deny
- Die beiden 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
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)