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

Aus Foxwiki
Meikschwalm (Diskussion | Beiträge)
K Textersetzung - „Kurzbeschreibung“ durch „Beschreibung“
 
(101 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
In diesem Artikel geht es um LPIC prüfungsrelevante Themen zu SSH.
'''topic''' - Beschreibung
 
== Beschreibung ==
==Wichtigste Wissensgebiete==
=== Wissensgebiete ===
 
* OpenSSH-2-Client grundlegend konfigurieren und verwenden
* einen OpenSSH-2-Client grundlegend konfigurieren und verwenden
* Bedeutung von OpenSSH-2-Rechnerschlüsseln verstehen
* 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
== SSH ==
* gpg
=== Server ===
* gpg-agent
; Das Paket ''openssh-server'' installiert die serverseitige Komponente von SSH
* ~/.gnupg/
;  SSH Dienst starten mit [[systemd]]
==SSH Daemon==
Das Paket openssh-server installiert die serverseitige Komponente von SSH.<br>
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==
=== 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.&nbsp;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


===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
Zuerst wird die SSH-Verbindung von einem X-Terminal aus mit der zusätzlichen Option -X (großes X) initiiert.<br>
  $ ssh -X server
 
  # ssh -l willi -X server
 
Auf der Konsole des Remote-Systems führt man die Anwendung aus:
 
user@server:~ $ openoffice


Die grafische Ausgabe und die Bedienung erfolgt lokal am SSH-Client-Rechner.
* Auf der Konsole des Remote-Systems führt man die Anwendung aus
Das hier beschriebene Verfahren wird als X11-Tunnel bezeichnet.
$ libreoffice


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


Als Beispiel, der Zugriff auf einen Terminalserver im entfernten Netzwerk hinter einem SSH-Server. <br>
==== 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


*IP-Adresse des Terminalservers 192.168.50.10<br>
Zunächst wird die SSH-Verbindung initiiert
*Terminalserver lauscht an Port 3389<br>
$ '''ssh 119.117.63.126 -L 4711:192.168.50.10:3389'''
*IP des SSH-Server 119.117.63.126


Zunächst wird die SSH-Verbindung initiiert:
* 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.&nbsp;B.&nbsp;remmina) nutzen nun als Ziel localhost:4711<br>


ssh 119.117.63.126 -L 4711:192.168.50.10:3389
; 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


Option -L leitet Port 4711 an 192.168.50.10 mit Portnummer 3389 weiter.<br>
=== Konfigurationsdateien ===
Verbindungen werden an 192.168.50.10:3389 weitergeleitet.<br>
; /etc/ssh/sshd_config
Terminal-Dienste-Clients (z. B. remmina) nutzen nun als Ziel localhost:4711<br>
* Die Konfigurationsdatei sshd_config dient der Konfiguration von sshd, also den SSH-Server
 
'''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
Die Konfigurationsdatei sshd_config dient der Konfiguration von sshd, also den SSH-Server.<br>
z.B.


  Port 22
  Port 22
Zeile 94: 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
* 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


# sshd verwendet den Standardport 22.
; Hinweis
# Ausschließlich SSH-2-Verbindungen.
: Auf die Authentifizierung mit Schlüsseln und ssh_known_hosts Datei wird später näher eingegangen
# Zugriff auf Schnittstelle des Rechners: 192.168.0.58
# Kein login für root.
# Als Hostkey kommen RSA, ECDSA und Ed25519 in Frage.


'''Hinweis'''<br>
; /etc/ssh/ssh_config
Der Authentifizierung mit Schlüsseln und der Datei ssh_known_hosts wird unter [[SSH Authentifizierung mit Schlüsseln]] ein separater Abschnitt gewidmet, weil sie ausdrücklich als Prüfungsthema genannt sind.
Konfiguration des SSH-Clients
ssh_known_hosts macht nichts anderes, als die Datei ~/.ssh/known_hosts für jeden Benutzer, nur eben zentralisiert.
 
<br>
/etc/ssh/ssh_config
Die Konfigurationsdatei ssh_config dient der clientseitigen Konfiguration von SSH.
 
z.B.
* Clientseitige X11-Weiterleitung oder Passwortauthentifizierung
* Clientseitige X11-Weiterleitung oder Passwortauthentifizierung
* RSA-Authentifizierung aktiv
* RSA-Authentifizierung aktiv
* Standardport für ausgehende Verbindungen festlegen
* Standardport für ausgehende Verbindungen festlegen
<br>
* Die Optionsnamen innerhalb dieser Datei sind ansonsten selbsterklärend oder in der Manpage nachzuschlagen
Die Optionsnamen innerhalb dieser Datei sind ansonsten selbsterklärend. <br>
* Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln
ACHTUNG! Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln.


/etc/hosts.allow und /etc/hosts.deny
; /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


Die Dateien /etc/hosts.allow und /etc/hosts.deny steuern wie die oben beschriebenen Dateien, den Zugriff auf SSH.<br>
; /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


Wichtig für die Prüfung:
Die Datei hosts.allow hat Vorrang vor der Datei hosts.deny.<br>
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.<br>
<noinclude>
Nur root kann sich dann noch am System anmelden.<br>
In dieser Datei kann auch eine Nachricht an Benutzer hinterlassen werden die sich lokal anmelden wollen.


=Quellenangaben=
== 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/


[[Benutzer:Meikschwalm|Meikschwalm]] ([[Benutzer Diskussion:Meikschwalm|Diskussion]]) 11:48, 17. Jul. 2019 (CEST)
==== Links ====
===== Weblinks =====


[[Category:Linux]]
[[Kategorie:Linux/LPIC/102]]
[[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