|
|
| (123 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| '''topic''' kurze Beschreibung
| | #WEITERLEITUNG [[SSH/Hostkey#Fingerabdruck_prüfen]] |
| | |
| == Beschreibung ==
| |
| * Erhöhen Sie die Sicherheit, indem Sie die Identität des Computers überprüfen, mit dem Sie sich mit ssh per Auge und mit SSHFP in DNS verbinden.
| |
| * [http://en.wikipedia.org/wiki/Secure_Shell Mit ssh] können Sie eine Verbindung zu einem Remote-Computer herstellen, wobei die Daten zwischen den beiden Computern verschlüsselt werden.
| |
| * Sie können dann sicher tun: Kommandozeilen-Login, Dateikopie, Tunnel anderer Protokolle (zB: rsync, X11), ...
| |
| * Sie authentifizieren sich entweder durch Eingabe eines Passworts oder [https://www.phcomp.co.uk/Tutorials/Unix-And-Linux/ssh-passwordless-login.html Schlüsselaustausch]
| |
| * Eine große Schwachstelle ist ein [http://en.wikipedia.org/wiki/Man-in-the-middle_attack Man-in-the-Middle-Angriff,] bei dem eine böswillige Snooping-Einheit (Mallory) zwischen Ihnen und dem Remote-Computer den gesamten Datenverkehr abfängt, entschlüsselt und erneut verschlüsselt, bevor er weitergesendet wird.
| |
| * Mallory kann dies schnell genug tun, sodass Sie sich seiner Existenz nicht bewusst sind.
| |
| * Zum Schutz gegen dem Ihr ssh Programm prüft die Fernbedienung des SSH Servers Fingerabdruck mit dem Fingerabdruck vom letzten Mal gespeichert angeschlossen.
| |
| * Wenn sich der Fingerabdruck geändert hat, werden Sie gewarnt und gefragt, ob Sie fortfahren möchten.
| |
| * In [http://en.wikipedia.org/wiki/Openssh openssh] (dem ssh, das auf den meisten Linux-Systemen verwendet wird) wird dieser Fingerabdruck in $HOME/.ssh/known_hosts gespeichert
| |
| * Der Fingerabdruck ist eine Kurzversion des öffentlichen Schlüssels des Servers
| |
| * Es ist für Sie einfacher zu überprüfen als der vollständige Schlüssel.
| |
| * Es ist sehr schwer, einen anderen öffentlichen Schlüssel mit demselben Fingerabdruck zu fälschen.
| |
| | |
| == Installation ==
| |
| == Syntax ==
| |
| === Parameter ===
| |
| === Optionen ===
| |
| === Umgebungsvariablen ===
| |
| === Exit-Status ===
| |
| | |
| == Konfiguration ==
| |
| === Dateien ===
| |
| | |
| == Anwendung ==
| |
| == Sicherheit ==
| |
| == Dokumentation ==
| |
| === RFC ===
| |
| === Man-Pages ===
| |
| === Info-Pages ===
| |
| === Siehe auch ===
| |
| | |
| == Links ==
| |
| === Projekt-Homepage ===
| |
| === Weblinks ===
| |
| === Einzelnachweise ===
| |
| <references />
| |
| | |
| == Testfragen ==
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 1''
| |
| <div class="mw-collapsible-content">'''Antwort1'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 2''
| |
| <div class="mw-collapsible-content">'''Antwort2'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 3''
| |
| <div class="mw-collapsible-content">'''Antwort3'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 4''
| |
| <div class="mw-collapsible-content">'''Antwort4'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 5''
| |
| <div class="mw-collapsible-content">'''Antwort5'''</div>
| |
| </div>
| |
| | |
| [[Kategorie:Entwurf]]
| |
| | |
| = TMP =
| |
| == RECHNERSCHLÜSSEL ÜBERPRÜFEN ==
| |
| Bei der erstmaligen Verbindung zu einem Server wird dem Benutzer ein Fingerabdruck des öffentlichen Schlüssels des Servers angezeigt (außer die Option
| |
| StrictHostKeyChecking wurde deaktiviert). Fingerabdrücke können mittels ssh-keygen(1) ermittelt werden:
| |
| | |
| $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
| |
| | |
| Falls der Fingerabdruck bereits bekannt ist, kann er verglichen und der Schlüssel akzeptiert oder zurückgewiesen werden. Falls nur veraltete (MD5) Fin‐
| |
| gerabdrücke für den Server verfügbar sind, kann die Option -E von ssh-keygen(1) verwandt werden, um den Fingerabdruck-Algorithmus zum Vergleichen her‐
| |
| unterzustufen.
| |
| | |
| Da es schwierig ist, Rechnerschlüssel nur durch Anschauen von Fingerabdruck-Zeichenketten zu vergleichen, wird auch der visuelle Vergleich mittels
| |
| Random Art (ASCII-Visualisierung) unterstützt. Wird die Option VisualHostKey auf “yes” gesetzt, dann wird bei jeder Anmeldung an einem Server eine
| |
| kleine ASCII-Graphik angezeigt, unabhängig davon, ob die Sitzung selbst interaktiv ist oder nicht. Indem der Benutzer das vom Rechner verwandte Muster
| |
| lernt, kann er leicht herausfinden, wenn sich der Rechnerschlüssel geändert hat und ein komplett anderes Muster angezeigt wird. Da diese Muster aber
| |
| nicht eindeutig sind, wird ein Muster, das einem Muster aus der Erinnerung ähnlich sieht, nur eine gute Wahrscheinlichkeit dafür geben, dass der Rech‐
| |
| nerschlüssel unverändert ist, kein garantierter Beweis.
| |
| | |
| Um zusammen mit der zufälligen Kunst die Fingerabdrücke für alle bekannten Rechner anzuzeigen, kann folgender Befehl verwandt werden:
| |
| | |
| $ ssh-keygen -lv -f ~/.ssh/known_hosts
| |
| | |
| Falls ein Fingerabdruck unbekannt ist, ist eine alternative Methode zur Überprüfung verfügbar: Durch DNS-bestätigte SSH-Fingerabdrücke. Ein zusätzli‐
| |
| cher Ressourcendatensatz (RR), SSHFP, wird zu einer Zonendatei hinzugefügt und der verbindende Client ist in der Lage, den Fingerabdruck mit dem ange‐
| |
| botenen zu vergleichen.
| |
| | |
| In diesem Beispiel findet eine Verbindung eines Clients mit einem Server “host.example.com” statt. Die SSHFP-Ressourcendatensätze sollten zuerst zu der
| |
| Zonendatei für host.example.com hinzugefügt werden:
| |
| | |
| $ ssh-keygen -r host.example.com.
| |
| | |
| Die Ausgabezeilen müssen zur der Zonendatei hinzugefügt werden. So überprüfen Sie, ob die Zone auf Fingerabdruckanfragen antwortet:
| |
| | |
| $ dig -t SSHFP host.example.com
| |
| | |
| Schießlich verbindet sich der Client:
| |
| | |
| $ ssh -o "VerifyHostKeyDNS ask" host.example.com
| |
| […]
| |
| Matching host key fingerprint found in DNS.
| |
| Are you sure you want to continue connecting (yes/no)?
| |
| | |
| Lesen Sie die Option VerifyHostKeyDNS in ssh_config(5) für weitere Informationen.
| |
| | |
| SSH-BASIERTE VIRTUELLE PRIVATE NETZWERKE | |
| ssh unterstützt „Virtual Private Network“- (VPN-)Tunneln mittels des tun(4) -Netzwerk-Pseudogerätes. Damit wird es möglich, zwei Netzwerke sicher zu
| |
| verbinden. Die Konfigurationsoption PermitTunnel von sshd_config(5) steuert, ob und falls ja auf welcher Stufe (Layer 2- oder 3-Verkehr) der Server
| |
| dies unterstützt.
| |
| | |
| Das folgende Beispiel würde das Client-Netzwerk 10.0.50.0/24 mit dem fernen Netzwerk 10.0.99.0/24 unter Verwendung einer Punkt-zu-Punkt-Verbindung von
| |
| 10.1.1.1 nach 10.1.1.2 verbinden, vorausgesetzt, dass der auf dem Gateway zu dem fernen Netzwerk laufende SSH-Server, auf 192.168.1.15, dies erlauben
| |
| würde:
| |
| | |
| Auf dem Client:
| |
| | |
| # ssh -f -w 0:1 192.168.1.15 true
| |
| # ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
| |
| # route add 10.0.99.0/24 10.1.1.2
| |
| | |
| Auf dem Server:
| |
| | |
| # ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
| |
| # route add 10.0.50.0/24 10.1.1.1
| |
| | |
| Der Client-Zugriff kann mittels der nachfolgend beschriebenen Datei /root/.ssh/authorized_keys und der Server-Option PermitRootLogin feiner gesteuert
| |
| werden. Der folgende Eintrag würde Verbindungen auf dem tun(4) -Gerät 1 von Benutzer “jane” und auf dem Tun-Gerät 2 von Benutzer “john” erlauben, falls
| |
| PermitRootLogin auf “forced-commands-only” gesetzt ist:
| |
| | |
| tunnel="1",command="sh /etc/netstart tun1" ssh-rsa … jane
| |
| tunnel="2",command="sh /etc/netstart tun2" ssh-rsa … john
| |
| | |
| Da eine SSH-basierte-Installation einen ordentlichen Aufwand verursacht, könnte sie mehr für temporäre Installationen, wie für drahtlose VPNs, geeignet
| |
| sein. Dauerhafte VPNs werden besser durch Werkzeuge wie ipsecctl(8) und isakmpd(8) bereitgestellt.
| |
|
| |
| [[Kategorie:ssh]]
| |