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

Aus Foxwiki
Meikschwalm (Diskussion | Beiträge)
K Textersetzung - „Kurzbeschreibung“ durch „Beschreibung“
 
(174 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Wichtigste Wissensgebiete==
'''topic''' - Beschreibung
 
== Beschreibung ==
* einen OpenSSH-2-Client grundlegend konfigurieren und verwenden
=== Wissensgebiete ===
* die Rolle von OpenSSH-2-Rechnerschlüsseln verstehen
* OpenSSH-2-Client grundlegend konfigurieren und verwenden
* Bedeutung 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==
Die serverseitige Komponente von SSH lässt sich mit dem Paket openssh-server installieren.
Ist systemd zuständig, führen Sie falls nötig die folgenden beiden Kommandos aus um den SSH Dienst zu starten:
user:~ # systemctl start sshd.service
user:~ # systemctl enable sshd.service


'''Hinweis'''<br>
== SSH ==
Zwar unterstützt sshd die Verwendung eines TCP-Wrappers und ist auch von inetd
=== Server ===
bzw. xinetd aus startbar, aber diese Vorgehensweise wird nicht empfohlen.
; Das Paket ''openssh-server'' installiert die serverseitige Komponente von SSH
;  SSH Dienst starten mit [[systemd]]
# systemctl start sshd.service
# systemctl enable sshd.service


==SSH-Client-Verbindung==
=== Client ===
Um eine Verbindung von einem Linux-System zu einem anderen aufzubauen, startet man ssh und übergibt den Host-Namen bzw. die IP-Adresse.
* Die Verbidung startet ssh
Dann wird man zur Eingabe eines Kennwortes aufgefordert:
* Host-Namen bzw.&nbsp;die IP-Adresse wird angegeben
  user:~ # ssh server
* Anschliessend folgt die Eingabe des Kennwortes
  $ ssh server
  root@server's password:
  root@server's password:


Um sich nicht mit dem gleichen Benutzerkonto anmelden zu müssen, das man derzeit lokal verwendet, gibt es zwei Wege einen alternativen Benutzer anzugeben:
* 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===  
==== 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


Zuerst wird die SSH-Verbindung von einem X-Terminal aus initiiert.<br>
* Auf der Konsole des Remote-Systems führt man die Anwendung aus
$ libreoffice


Verbindung zusätzlich mit der Option –X initiieren (großes X).
* Grafische Ausgabe und Bedienung erfolgt lokal am SSH-Client-Rechner
* Das hier beschriebene Verfahren wird als X11-Tunnel bezeichnet


user:~ # ssh -l willi -X server
==== 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


Auf der Konsole des Remote-Systems führt man die Anwendung aus:
Zunächst wird die SSH-Verbindung initiiert
$ '''ssh 119.117.63.126 -L 4711:192.168.50.10:3389'''


willi@server's password:  
* Option -L leitet Port 4711 an 192.168.50.10 mit Portnummer 3389 weiter
willi@server:~ # openoffice
* Verbindungen werden an 192.168.50.10:3389 weitergeleitet
* Terminal-Dienste-Clients (z.&nbsp;B.&nbsp;remmina) nutzen nun als Ziel localhost:4711<br>


Die Anwendung führt das entfernte System aus, die grafische Ausgabe und die Bedienung erfolgt lokal am SSH-Client-Rechner.<br>
; Hinweis
Das hier beschriebene Verfahren wird als X11-Tunnel bezeichnet.
: 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


===Weiterleitung anderer Ports durch einen SSH-Tunnel.===
=== Konfigurationsdateien ===
; /etc/ssh/sshd_config
* Die Konfigurationsdatei sshd_config dient der Konfiguration von sshd, also den SSH-Server


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


IP-Adresse des Terminalservers 192.168.50.10<br>
; Erläuterung
Terminalserver lauscht an Port 3389<br>
* sshd verwendet den Standardport 22
IP des SSH-Server 119.117.63.126
* 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


Zunächst wird die SSH-Verbindung initiiert:
; Hinweis
: Auf die Authentifizierung mit Schlüsseln und ssh_known_hosts Datei wird später näher eingegangen


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


Option -L leitet Port 4711 an 192.168.50.10 mit Portnummer 3389 weiter.
; /etc/hosts.allow und /etc/hosts.deny
Verbindungen werden nun an 192.168.50.10:3389 weitergeleitet.  
* Die Dateien steuern wie die oben beschriebenen Dateien, den Zugriff auf SSH
Terminal-Dienste-Clients (z. B. remmina) nutzen nun als Ziel localhost:4711
* ''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


'''Hinweis'''<br>
Wenn Sie von einem Windows-Computer aus auf einen Linux-Host zugreifen wollen,
kommt das frei verfügbare SSH-Client-Programm putty zum Einsatz.
Das Tunneln von Ports inklusive X11 ist auch mit putty durchführbar.
Voraussetzung hierfür ist, dass auf dem Windows-Computer ein X-Server läuft (z. B. Xming oder Cygwin).
<br>
[[PuTTY - ein freier SSH-Client]]


==SSH-Konfigurationsdateien==


/etc/ssh/sshd_config
<noinclude>
Die Datei sshd_config wird für die Konfiguration von sshd, also den SSH-Server, verwendet.
Hier können z. B. folgende Parameter festgelegt werden:


Port 22
== Anhang ==
Protocol 2
=== Siehe auch ===
ListenAddress 192.168.0.58
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
PermitRootLogin no
----
HostKey /etc/ssh/ssh_host_rsa_key
* [[LPIC102/110.3 SSH Authentifizierung mit Schlüsseln|110.3 SSH Authentifizierung mit Schlüsseln]]
HostKey /etc/ssh/ssh_host_ecdsa_key
* [[Putty|PuTTY - ein freier SSH-Client]]
HostKey /etc/ssh/ssh_host_ed25519_key
* ssh_known_hosts
* gpg
* gpg-agent
* ~/.gnupg/


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


Auf Schlüssel wird etwas später näher eingegangen.
[[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