SSH/Fingerprint

Aus Foxwiki

topic kurze Beschreibung

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.
  • 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 Schlüsselaustausch
  • Eine große Schwachstelle ist ein 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 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


Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

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.