Ich habe einen vollständig verschlüsselten Server mit Debian 7 und Dropbear und Busybox eingerichtet, um den LUKS-Container über SSH zu entsperren (wie in diesem Tutorial und in dieser U & L-Antwort beschrieben ).
Wenn ich beim Neustart versuche, SSH an den Server (über das LAN) zu senden, wird leider der Fehler "Verbindung abgelehnt" angezeigt. Ich habe versucht telnet
und nmap
auf den Standardport (22) und beide sagen, der Port ist geschlossen.
Der Server hat eine ufw
Regel, um den gesamten Datenverkehr aus dem LAN zu akzeptieren:
Anywhere ALLOW 192.168.1.0/24
Ich habe versucht , den Port zu ändern , dass dropbear lauscht in /etc/defaults/dropbear
aber ssh
und telnet
noch verweigert Verbindungen sind 1 .
Wie kann ich sicherstellen, dass zu diesem Zeitpunkt des Startvorgangs ein Port geöffnet ist, damit ich eine Verbindung herstellen kann, um den LUKS-Container zu entsperren?
Das Deaktivieren der Firewall macht keinen Unterschied: nmap
Zeigt an, dass alle Ports noch geschlossen sind.
Update 2/14
Ich fügte break=premount
der Kernel-Zeile hinzu und stöberte in den Initramfs herum. dropbear
hat, aber das Netzwerk ist der Autor nicht bis zu diesem Zeitpunkt. Nach dem Beenden wird das Netzwerk gestartet und der Startvorgang fortgesetzt, bis Sie aufgefordert werden, das LUKS-Gerät zu entsperren.
An diesem Punkt wird das Netzwerk ist , und die Host der korrekte IP - Adresse zugewiesen wurde, aber Port 22 ist noch geschlossen.
Die IP-Leitung, die /etc/initramfs-tools/intiramfs.conf
ich verwende, lautet:
export IP=192.168.1.200::192.168.1.1:255.255.255.0::eth0:off
In Übereinstimmung mit den Anweisungen in /usr/share/doc/cryptsetup/README.remote.gz
Ich habe versucht, nur die Geräteoption hinzuzufügen, aber das reicht nicht aus, um das Netzwerk aufzurufen und eine DHCP-Lease zu erhalten.
Update 10.11.14
Karls Antwort war das, was erforderlich war: Das Einrichten /etc/initramfs-tools/conf.d/cryptroot
war der Schlüssel:
target=md1_crypt,source=UUID=8570d12k-ccha-4985-s09f-e43dhed9fa2a
Dieser Leitfaden erwies sich auch als aktueller und relevanter (und erfolgreicher).
quelle
ps
) läuft und den erwarteten Port abhört (vianetstat
)?break=X
Boot-Parameter zu verwenden, um eine früheinitramfs
Shell zu erhalten? Immer wenn ich Probleme mit der Dateisystemverschlüsselung debugge, verwende ichbreak=premount
. Sie können die Situation überprüfen, beheben und mit dem Booten fortfahren.Antworten:
Ich hatte vor einigen Wochen das gleiche Problem (Debian Wheezy 7.6) und nach einigen Tagen der Fehlerbehebung stellte ich fest, dass eine Konfigurationsdatei fehlte, die verhinderte, dass das Cryptroot-Skript auf init-top korrekt ausgeführt wurde, sodass es nicht gestoppt wurde um das Passwort über ssh zu erfragen und den Dropbear am Ende der Sequenz zu töten (init-bottom).
Die Konfigurationsdatei wird aufgerufen
cryptroot
und sollte sich unter befinden./etc/initramfs-tools/conf.d/
Wenn ich mich nicht irre, sollte die Konfigurationsdatei während der Installation automatisch erstellt worden sein (ich habe nur ein Tutorial über diese Konfigurationsdatei gelesen), aber irgendwie nicht (auf einem physischen Server und in getestet) eine VM, dasselbe Betriebssystem und dieselben Versionen)Ich brauchte einige Versuche, um es richtig zu konfigurieren, da ich zu diesem Zeitpunkt nicht die richtige Syntax finden konnte. Meine Cryptroot-Konfigurationsdatei lautet wie folgt:
Sobald die Konfigurationsdatei erstellt wurde, aktualisieren Sie einfach die initramfs und versuchen Sie es erneut:
quelle
cryptroot
Syntax unterscheidet sich von Ihrer, aber Ihre Antwort hat ausgereicht, um mich in die richtige Richtung zu weisen. Ich bin dir zu Dank verpflichtet.Die Betreffzeile ist falsch. Das Problem ist kein geschlossener Port, sondern ein Port, der nicht gebunden war. SSHd hat noch nicht begonnen; Das ist der Grund, warum Sie keine Verbindung herstellen können.
quelle
sshd
: Wie in der Frage angegeben, versuche ich, eine Verbindung zu einer Dropbear-Instanz herzustellen, die standardmäßig auf Port 22 ausgeführt wird.Der Dropbear (SSH-Server) sollte sehr früh während der Startphase gestartet werden - früher als die
init
(rcN.d) -Sequenz- und Firewall-Init-Skripte. noch früher als / gemountet ist (es ist auch verschlüsselt, oder?). Es geht also daruminitramfs
, das Pre- / Userland vom Bootloader für den Kernel zu laden. Das Bild wird (neu) generiertupdate-initramfs -u
aus Inhalten von/etc/initramfs-tools/
, einschließlich Dropbear-Konfiguration in/etc/initramfs-tools/etc/dropbear/
. Um mit der Dropbear-Konfiguration zu spielen, spielen Sie mit dieser.Daher einige Punkte zu überprüfen:
quelle