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

Aus Foxwiki
Meikschwalm (Diskussion | Beiträge)
K Textersetzung - „Kurzbeschreibung“ durch „Beschreibung“
 
(150 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Ausführliche Informationen zur Funktionsweise von SSH werden im Artikel [[SSH (secure shell)]] erläutert.<br>
'''topic''' - Beschreibung
In diesem Artikel geht es nur um LPIC prüfungsrelevante Themen zu SSH.
== Beschreibung ==
 
=== Wissensgebiete ===
==Wichtigste Wissensgebiete==
* OpenSSH-2-Client grundlegend konfigurieren und verwenden
 
* Bedeutung von OpenSSH-2-Rechnerschlüsseln verstehen
* einen OpenSSH-2-Client grundlegend konfigurieren und verwenden
* die Rolle von OpenSSH-2-Rechnerschlüsseln verstehen
* GnuPG grundlegend konfigurieren und verwenden
* GnuPG grundlegend konfigurieren und verwenden
* GPG verwenden um Dateien zu verschlüsseln, entschlüsseln, signieren und zu überprüfen
* GnuPG verwenden um Dateien zu verschlüsseln, entschlüsseln, signieren und zu überprüfen
* SSH-Port-Tunnel (auch X11-Tunnel) verstehen
* SSH-Port-Tunnel (auch X11-Tunnel) verstehen


==Liste wichtiger Dateien, Verzeichnisse und Anwendungen==
=== Dateien, Verzeichnisse, Anwendungen ===
 
==== Anwendungen ====
* ssh
* ssh
* ssh-keygen
* ssh-keygen
* ssh-agent
* ssh-agent
* ssh-add
* ssh-add
==== Dateien ====
; User
* ~/.ssh/authorized_keys
* ~/.ssh/id_rsa und id_rsa.pub
* ~/.ssh/id_rsa und id_rsa.pub
* ~/.ssh/id_dsa und id_dsa.pub
* ~/.ssh/id_dsa und id_dsa.pub
* ~/.ssh/id_ecdsa und id_ecdsa.pub
* ~/.ssh/id_ecdsa und id_ecdsa.pub
* ~/.ssh/id_ed25519 und id_ed25519.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_rsa_key und ssh_host_rsa_key.pub
* /etc/ssh/ssh_host_dsa_key und ssh_host_dsa_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_ecdsa_key und ssh_host_ecdsa_key.pub
* /etc/ssh/ssh_host_ed25519_key und ssh_host_ed25519_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.<br>
Folgende Befehle starten unter systemd den SSH Dienst.
user:~ # systemctl start sshd.service
user:~ # systemctl enable sshd.service


==SSH-Client-Verbindung==
== SSH ==
Um eine Verbindung zwischen zwei Linux-Systemen aufzubauen, startet man ssh und übergibt den Host-Namen bzw. die IP-Adresse.<br>
=== Server ===
Anschliessend folgt die Eingabe eines Kennwortes:
; Das Paket ''openssh-server'' installiert die serverseitige Komponente von SSH
  user:~ # ssh server
;  SSH Dienst starten mit [[systemd]]
# systemctl start sshd.service
# systemctl enable sshd.service
 
=== Client ===
* Die Verbidung startet ssh
* Host-Namen bzw.&nbsp;die IP-Adresse wird angegeben
* Anschliessend folgt die Eingabe des Kennwortes
  $ 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
  user:~ # ssh -l willi server
  $ ssh -l willi server
  user:~ # ssh willi@server
  $ 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.<br>
 
user:~ # ssh -l willi -X server


Auf der Konsole des Remote-Systems führt man die Anwendung aus:
==== 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


willi@server's password:
* Auf der Konsole des Remote-Systems führt man die Anwendung aus
  willi@server:~ # openoffice
  $ libreoffice


Die grafische Ausgabe und die Bedienung erfolgt lokal am SSH-Client-Rechner.<br>
* 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
* IP-Adresse des Terminalservers 192.168.50.10
* Terminalserver lauscht an Port 3389
* IP des SSH-Server 119.117.63.126


Als Beispiel, der Zugriff auf einen Terminalserver im entfernten Netzwerk hinter einem SSH-Server. <br>
Zunächst wird die SSH-Verbindung initiiert
$ '''ssh 119.117.63.126 -L 4711:192.168.50.10:3389'''


IP-Adresse des Terminalservers 192.168.50.10<br>
* Option -L leitet Port 4711 an 192.168.50.10 mit Portnummer 3389 weiter
Terminalserver lauscht an Port 3389<br>
* Verbindungen werden an 192.168.50.10:3389 weitergeleitet
IP des SSH-Server 119.117.63.126
* Terminal-Dienste-Clients (z.&nbsp;B.&nbsp;remmina) nutzen nun als Ziel localhost:4711<br>


Zunächst wird die SSH-Verbindung initiiert:
; 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 (z.&nbsp;B.&nbsp;Xming oder Cygwin), ist auch das Tunneln von Ports inklusive X11 durchführbar


archangel:~ # ssh 119.117.63.126 -L 4711:192.168.50.10:3389
=== Konfigurationsdateien ===
 
; /etc/ssh/sshd_config
Option -L leitet Port 4711 an 192.168.50.10 mit Portnummer 3389 weiter.<br>
* Die Konfigurationsdatei sshd_config dient der Konfiguration von sshd, also den SSH-Server
Verbindungen werden an 192.168.50.10:3389 weitergeleitet.<br>
Terminal-Dienste-Clients (z. B. remmina) nutzen nun als Ziel localhost:4711<br>
 
 
'''Hinweis'''<br>
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.<br>
 
Wiki Artikel zu PuTTy <br>
[[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
  Port 22
Zeile 97: Zeile 86:
  HostKey /etc/ssh/ssh_host_ed25519_key
  HostKey /etc/ssh/ssh_host_ed25519_key


Erklärung:
; Erläuterung
# sshd verwendet den Standardport 22.
* sshd verwendet den Standardport 22
# Ausschließlich SSH-2-Verbindungen.
* Ausschließlich SSH-2-Verbindungen
# Kein login für root.
* Zugriff auf Schnittstelle des Rechners: 192.168.0.58
# Zugriff auf Schnittstelle des Rechners: 192.168.0.58
* 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 beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln


Auf Schlüssel wird etwas später näher eingegangen.
; /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/ssh/ssh_config
; /etc/nologin
In der Konfigurationsdatei ssh_config finden Sie die clientseitige Konfiguration von
* Mit dem erstellen einer leeren Datei namens /etc/nologin lässt sich der Zugriff auf SSH verhindern
SSH.  
* 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
 
 
 
<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
* gpg
* gpg-agent
* ~/.gnupg/


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


Die Optionsnamen innerhalb dieser Datei sind ansonsten selbsterklärend. <br>
[[Kategorie:Linux/LPIC/102]]
ACHTUNG! Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln.
[[Kategorie:Kryptografie/Anwendung]]
[[Kategorie:SSH]]
</noinclude>

Aktuelle Version vom 19. Oktober 2024, 13:35 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 (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

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


Links

Weblinks