IPFire Webseite zeitweise auf red freischalten

Ich benutze gerne IPFire, um mal schnell ein Testnetz aufzusetzen. Das red-Interface kommt dann ins vorhandene Gästenetz und das green-Interface stellt das Testnetz dar. Da das Testnetz aber noch keine Computer hat, habe ich nach der Installation keine Oberfläche, um ipfire konfigurieren zu können, da diese standardmäßig nur vom green-Interface aus erreichbar ist. Das kann man aber über einen Einzeiler zeitweise (bis zum nächsten Neustart) ändern, um die Konfiguration über die Management-Oberfläche vornehmen zu können.

Dazu muss man:

  • die IP seines eigenen PCs oder Netzwerkes (hier: 192.168.1.77) und
  • die IP des red-Interfaces der IPFire-Installation (hier: 192.168.0.101) wissen.

Seine eigene IP-Adresse bekommt man über den Befehl ipconfig in einer Kommandozeile unter Windows heraus:

Dann kann man sich mit dem bei der IPFire-Installation vergebenen Root-Kennwort an der Konsole anmelden und einen iptables-Eintrag vornehmen, der die https-Managment-Webseite auf dem red-Interface freischaltet.

warnung Das sollte man natürlich nur bei internen Netzwerken machen! Wer ipfire als Internet-Zugangsrouter verwendet, schaltet das Management damit in das Internet frei!

Erklärung der Parameter:

  • iptables = das Firewall-Programm
  • -A INPUTFW = die Firewall-Kette, in die diese Ausnahme eingetragen wird (werden muss)
  • -s 192.168.1.77/32 = der eine Host (/32) mit der IP 192.168.1.77, der diese Ausnahme nutzen darf (alternativ schaltet man das ganz Sub-Netz frei: -s 192.168.1.0/24)
  • -d 192.168.0.101/32 = die IP-Adresse des red-Interfaces der ipfire-Installation
  • -p tcp -m tcp = es wird das TCP-Protokoll benutzt
  • –dport 444 = der Port, der auf dem red-Interface freigeschaltet wird (standardmäßig verwendet ipfire für das Management per https diesen Port)
  • -j ACCEPT = Datenpakete auf einer Verbindung mit diesen Einschränkungen zulassen.

infoDa diese Konfiguration live vorgenommen und nicht abgespeichert wird, ist diese nach einem Neustart nicht mehr vorhanden! Das ist so gewollt, da die vollständige Konfiguration danach über das Web-Interface erfolgen kann.

logrotate Konfiguration iptables

Diese Konfiguration nutze ich für iptables. Dabei liegen die angelegten Logfiles unter „/var/log/iptables/“. Die Konfiguration des Speicherortes passiert in der iptables-Konfiguration.

Das Verzeichnis für die alten Logs muss manuell angelegt werden.

Zur Überprüfung der Konfiguration sollte man diese testen:

Dann müsste ungefähr folgendes erscheinen:

 

iptables Debug-Modus

Um den Debug-Modus zentral ein- und auszuschalten empfiehlt sich eine Variable:

welche dann später die Chains bestimmt:

So kann man dann (hier am Beispiel der lokalen Kommunikation) einen Parameter bei der iptables-Konfiguration übergeben:

iptables personal firewall

Personal Firewall einrichten

Die angegebenen Werte sind nur Beispiel-Werte und müssen natürlich angepasst werden.

Hier mal eine Beispiel-Konfiguration:

Eigene Logdateien

Log-Präfix einstellen

Damit man die Logs, die iptables erzeugt, vom normalen syslog trennen kann, muss man die Logging-Einträge erst einmal eindeutig kennzeichnen. Dazu am besten eigene Ketten erstellen:

oder die vorhandenen anpassen:

Der entsprechende Präfix ist natürlich frei wählbar.

rsyslogd konfigurieren

Jetzt muss man nur noch eine entsprechende Konfigurations-Datei unter /etc/rsyslog.d/iptables.conf anlegen und folgende Zeilen einfügen:

Damit werden alle Einträge die „FW-ACCEPT: „, „FW-DROP: “ oder „FW-LAST-DROP: “ enthalten in separate Logdateien geschrieben. Man muss sich auch keine Gedanken um das Anlegen der Dateien machen. Das erledigt der RSyslog-Daemon bei dem obligatorischen Neustart von alleine:

Die letzte Zeile mit dem Inhalt „& ~“ bedeutet, dass diese Nachrichten nicht mehr in das Standard-Log geschrieben werden.

In neueren rsyslog-Versionen ist die Tilde „~“ deprecated, weshalb man sie ersetzen sollte. Die neue Schreibweise sieht so aus:

Logs rotieren

Damit die Logdateien nicht irgendwann die Festplatte zulaufen lassen, sollte auch eine entsprechende logrotate-Konfiguration nicht fehlen. Siehe Logrotate/iptables.