Ich weiß, was es tut, aber ich weiß nicht warum . Welche Angriffe werden verhindert?
Ist es für alle Arten von Authentifizierungsmethoden relevant? (hostbasiert, Passwort, Publickey, keyboard-interaktiv ...)
Ich weiß, was es tut, aber ich weiß nicht warum . Welche Angriffe werden verhindert?
Ist es für alle Arten von Authentifizierungsmethoden relevant? (hostbasiert, Passwort, Publickey, keyboard-interaktiv ...)
Antworten:
Die UseDNS
Option ist meistens unbrauchbar. Wenn die Clientcomputer im Internet verfügbar sind, besteht eine hohe Wahrscheinlichkeit, dass sie über kein Reverse-DNS verfügen, dass sich das Reverse-DNS nicht vorwärts auflöst oder dass das DNS keine anderen Informationen als "Dazu gehört" bereitstellt ISP “, die Ihnen die IP-Adresse bereits mitteilt.
In typischen Konfigurationen wird DNS nur für die Protokollierung verwendet. Es kann zur Authentifizierung verwendet werden, jedoch nur, wenn IgnoreRhosts no
in angegeben sshd_config
. Dies ist für die Kompatibilität mit alten Installationen , die rsh verwendet, wo man sagen kann „der Benutzer namens bob
auf der Maschine genannt darkstar
melden Sie sich an als alice
ohne Anmeldeinformationen zeigen“ (durch das Schreiben darkstar bob
in ~alice/.rhosts
). Dies ist nur dann sicher, wenn Sie allen Computern vertrauen, die möglicherweise eine Verbindung zum SSH-Server herstellen. Mit anderen Worten, dies ist sehr, sehr selten auf sichere Weise verwendbar.
Da die DNS-Suche nur unter besonderen Umständen nützliche Informationen enthält, sollte sie deaktiviert werden. Soweit ich das beurteilen kann, ist der einzige Grund, warum es standardmäßig aktiviert ist, dass es technisch sicherer ist (wenn Sie sich Gedanken über die Authentifizierung und nicht über die Verfügbarkeit machen), obwohl dies nur für eine winzige Anzahl von Umständen gilt.
Ein weiteres Argument zum Deaktivieren dieser Funktion ist, dass jede überflüssige Funktion ein unnötiges Sicherheitsrisiko darstellt .
UseDNS
Nicht einmal nützlich, wenn Sie eine schlüsselbasierte Hostauthentifizierung verwenden, sondern nur, wenn Sie eine hostnamenbasierte Hostauthentifizierung (dh eine extrem schwache Authentifizierung) verwenden.
UseDNS
. Sie authentifizieren einen Benutzer anhand des Schlüssels und den Server anhand des Hostnamens, der einer MAC-Adresse zugewiesen ist.
Ich habe einen Fehlerbericht (alt, aber immer noch aktuell) in Ubuntu darüber hinzugefügt.
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/424371
Ich schlug vor, die Standardeinstellung auf Nein zu ändern und neuere Dokumentation hinzuzufügen:
# UseDNS - Determines whether IP Address to Hostname lookup and comparison is performed
# Default value is No which avoids login delays when the remote client's DNS cannot be resolved
# Value of No implies that the usage of "from=" in authorized_keys will not support DNS host names but only IP addresses.
# Value of Yes supports host names in "from=" for authorized_keys. Additionally if the remote client's IP address does not match the resolved DNS host name (or could not be reverse lookup resolved) then a warning is logged.
Aus der Manpage von sshd_config(5)
:
UseDNS Specifies whether sshd(8) should look up the remote host name and
check that the resolved host name for the remote IP address maps
back to the very same IP address. The default is “yes”.
Wenn Sie dies aktivieren, wird beim Zugriff von einem Ort ohne ordnungsgemäße DNS (vorwärts und rückwärts) eine Warnung in den Protokollen generiert.
Dies verhindert also keinen Angriff, außer dass eine qualifizierte Remoteadresse des Clients erforderlich ist, um keine Warnung zu protokollieren. Eine solche Warnung kann Ihnen beim Auffinden des Angreifers nur dann helfen, wenn dieser PTR-Datensatz einen Sinn ergibt.
bearbeiten: aktualisiert nach Kommentar von Andrey Voitenkov .
from=
Feld vor dem fraglichen autorisierten Schlüssel (falls verwendet) nicht fälschen kann .
Es wird benötigt, wenn Sie die FROM-Option in einer authorized_keys-Datei verwenden und nach Namen und nicht nur nach IPs filtern möchten.
Mit der FROM-Option in einer Zeile einer authorized_keys-Datei können Sie Hosts einschränken, die einen bestimmten Schlüssel verwenden können.
Dies erhöht die Fähigkeit, mehrere Server zu verwalten, die Zugriff aufeinander haben, ohne dass Klone eines Computers die Identität seines Ursprungs annehmen (normalerweise unbeabsichtigt) (übrig gebliebene Crontabs, menschliches Versagen).
Ich möchte hinzufügen, dass ich mich unter CentOS 7 (7.1.1503) und daher unter Red Hat Enterprise Linux 7 nicht mit der Standardeinstellung yes
für anmelden konnteUseDNS
. Nachdem no
ich das Kommentarzeichen entfernt und es auf gesetzt habe , konnte ich mich anmelden. Daher scheint es, dass man tatsächlich den Dienst verweigern kann, wenn DNS nicht richtig funktioniert! In CentOS 6 scheint es die Standardeinstellung zu sein no
und daher kann ich ssh
ohne funktionierendes DNS rein!
Ich möchte hinzufügen, dass ich mit LXC-Containern experimentiert habe und nicht mit physischen Maschinen, falls das einen Unterschied macht!