Beim Konfigurieren einer pfSense aus der Ferne antworte plötzlich das Web-Interface (webConfigurator) nicht mehr. Der Browser meldete nur noch Zeitüberschreitung. Ein Check via Portscan zeigte, das scheinbar der Webserver nicht mehr läuft. Alle anderen Dienste wie z.B. das Routing, OpenVPN-Zugang, DNS, etc. schienen normal zu laufen.

Der Recherche nach, gab oder gibt es wohl auf so mancher Hardware Probleme. Beta- oder Entwicklerversionen sollte man dabei am besten außen vor lassen. In der Tat ist es so, das die betreffende Installation auf vorhandener Kunden-Hardware installiert ist oder mit anderen Worten: Nicht auf unserer üblichen Hardware. Allerdings läuft das so bereits seit einem Jahr und bislang ohne Schwierigkeiten. Also vielleicht einfach nur Pech.

Aber wie kommt man nun wieder an die Administrations-Oberfläche ran?

Direkt über das Konsolen-Menü kann man über den Punkt “11) Restart webConfigurator” als auch “16) Restart PHP-FPM” den Webserver neu starten und mittels “14) Enable Secure Shell (sshd)” den ssh-Zugang aktivieren. Dort kommt man allerdings nur ran, wenn entweder jemand vor Ort ist, Zugang zur Hardware hat und mindestens eine Tastatur angeschlossen ist. Im Blindflug kann man dann wie folgt vorgehen:

  • Enter drücken.
  • “11” und/oder “16” eingeben und Enter drücken. Mit etwas Glück kommt man nun wieder auf das Web-Interface.
  • “14” eingeben und Enter drücken. Nun “y” bzw. “z” (je nach Tastaturbelegung) eingeben und Enter drücken. Dadurch wird der ssh-Zugang aktiviert. Es kann einen Moment dauern, bis der Schlüssel erzeugt ist. Der Zugang ist nur vom LAN aus möglich! Port 22 wird automatisch zur “Anti-Lockout Rule” hinzugefügt.

pfSense - ConsoleBesser ist’s natürlich, wenn ein Monitor angeschlossen ist, damit man Meldungen ablesen kann. Man könnte selbstverständlich auch einfach mal die pfSense neu starten (Menüpunkt “5) Reboot system”) oder kurz den Stecker ziehen. Bei vielen Mitarbeitern vor Ort oder verbundenen VPN-Benutzern hat man dann allerdings ganz schnell viele neue Freunde.

Läuft pfSense auf entsprechender Server-Hardware, das ein BMC mit KVM-over-IP bietet oder eben ein KVM-over-IP-Switch angeschlossen ist, so kann man, sofern es einen Zugang dorthin gibt (z.B. VPN und Browser) von dort aus das Konsolen-Menü erreichen und schauen was los ist.

Das Ende vom Lied

Ein Anruf beim Kunden und der Bitte mal kurz eine USB-Tastatur anzuschließen und wie oben beschrieben vor zu gehen scheiterte im ersten Anlauf daran, das keine Tastatur vor Ort sei. Dazu sei gesagt, das der Kunde neulich erst umgezogen ist und mit Sicherheit die eine oder andere Komponente noch in irgendwelchen Umzugskartons steckt. Der zweite Anlauf mit einer Tastatur die auf die Schnelle vom gegenüberliegenden Supermarkt organisiert wurde klappte ebenfalls nicht, der Grund ist allerdings unklar. Letztlich war ich dann doch ein paar Tage später vor Ort mit einer USB-Tastatur von uns und nach Eingabe von “11” + Enter (im Blindflug, d.h. ohne Monitor) klappte der Zugriff wieder. Nachfolgend wurde dann auch gleich ssh aktiviert als auch gleich erfolgreich getestet und eine Datensicherung erstellt.

Was tun für die Zukunft?

Gute Frage, mir ist das nun erstmalig so passiert, “natürlich” auch noch Nachts, wo man vor Ort niemanden erreicht (Murphys Gesetz lässt Grüßen) und seltsamerweise während ein OpenVPN-Client-Zugang konfiguriert wurde (der Zusammenhang mit dem Webserver fehlt mir allerdings, aber der VPN-Zugang läuft, welch eine Ironie).

Da der Kunde nicht gerade um’s Eck ist, aber vorerst auch nicht viel investiert werden soll, wurde wie bereits erwähnt erstmal SSH aktiviert. Sollte das Problem häufiger auftreten, muss man mal Sehen wie es weitergeht.

Weitere potentielle Optionen (ein paar Überlegungen)

Als weiteren “Plan B” könnte man das “Service Watchdog”-Package installieren. Konfiguriert wird dann unter “Services – Service Watchdog”. Allerdings bietet dieses Paket nicht die Web-Dienste an. Schade. Als weitere Abhilfe könnte man ein Shellscript erstellen und via Cronjob regelmässig ausführen lassen, das “lighttpd” und “php-fpm” überwacht und ggf. neustartet.