Online Suche im Handbuch | LITTLE-IDIOT NETWORKING |
Die Firewall besitzt für alle unterstützte Prozessoren denselben Quellcode. Dieser befindet sich in sifi-1.0.tar.gz und muß mit "tar -xzvf sifi-1.0.tar.gz" entpackt werden. Ein Einzelfällen könnte es notwendig sein, "tar" oder "gzip" nachzuinstallieren. Es erscheint ein Verzeichnis sifi-1.0. Hier befinden sich die Quellcodes. Mit "cd sifi-1.0" befindet sich man nun im korrekten Verzeichnis. Es müssen evtl. einige Anpassung in folgenden Files vorgenommen werden:
include/sf_config.h #define SF_TRUSTED_CNT_MAX 20 Hier werden die TRUSTED Hosts begrenzt #define SF_FRIENDS_CNT_MAX 50 Hier werden die FRIENDS Hosts begrenzt #define SF_VAR_CNT_MAX 200 Begrenzung der Zahl der Variablen include/sf_global.h #define SF_ADDRESS_CNT_MAX 340 Hier werden die Zahl der Clients begrenzt #define NUM_PROC_ENTRIES 21 Hier wird die Zahl der PROC-Einträge bestimmt #define SF_TCP_HASH_SIZE 499 Für viele Verbindungen muß die Zahl hochgesetzt werden. Es muß immer ca. Faktor 2 größer sein, als die Zahl der Verbindungen. Damit der HASH Mechanismus funktioniert, muß immer eine Primzahl gewählt werden. include/sf_custom.h.in #define CONF_DIR "/etc/firewall.d/" Pfad der Konfigurationsfiles #define LOG_DIR "/var/log/" Pfad der Logfiles #define RUN_DIR "/var/run/" Pfad der PID und PIPES #define LOG LOG_DIR"firewall" File für Logfiles #define SPY_LOG LOG_DIR"firewall.spy" SPY Logfiles #define REPORT LOG_DIR"firewall.report" Firewall Report #define LOG_WIDTH 132 Breite der Logeinträge #define PID_FILE RUN_DIR"firewall.pid" ProzessID #define IPIPE RUN_DIR"firewall.in" Pipe für Lesen #define OPIPE RUN_DIR"firewall.out" Pipe zum Schreiben #define SFIDENT BIN_PREFIX"/sfident" Pfad zum Identd #define PASSWD CONF_DIR"firewall.passwd" File für Paßworte #define DEFAULT_CONFIG CONF_DIR"firewall.conf" Konfigurationsfile #define GENERATED_CONFIG CONF_DIR"firewall.conf.new" Überarbeites Konfigurationsfile #define DEVICE "/dev/firewall" Firewall - Device #define MAIL "@MAILER@" Sendmailprogramm #define FINGER "@FINGER@" Fingerprogramm #define FINGER_ARG "-pl" Optionen zu Finger #define SPY_USING_RUSERS Remote-User Identifikation #define RUSERS "@RUSERS@" Remote-User #define RUSERS_ARG "-al" Argumente zu Remote-User #define MAX_REPEATS 100 Alle 100 Ereignisse 1 Logeintrag #define MAX_HOLD 2*60 Verzögerungswert für Wiederholungen #define SPY_TIMEOUT 5*60 SPY Einträge alle 5 Minuten #define MAX_CLIENTS 5 Maximale Zahl der gleichzeitigen Clients. Für viele Clients müssen die Zahlen der TCP Verbindungen und der HASH Wert stark vergrößert werden. #define CLIENT_TIMEOUT 300 Wenn der Client hängt...
Zum Aufbau eines Hochleistungs-Firewall, die fragmentierte Pakete entgegennimmt, muß die Zahl der HASH Einträge auf hohe Werte gesetzt werden, z.B. 15383. Warnung: Bei zu hohen Werten und zuwenig Memory werden alle Verbindungen abgebrochen. Die Zahl der Clients ist selber zu bestimmen. Beim Einsatz in schnellen Netzwerken sollte der Timeout heruntergesetzt werden.
Nun sollte ein User firewall und eine Gruppe firewall angelegt werden. In dem File /etc/passwd sollte sich dann folgender Eintrag befinden:
firewall:x:888:888::/dev/null:/bin/false
In der Datei /etc/group sollte folgende Gruppe angelegt werden:
firewall:x:888:
Der aktuelle Kernel muß folgende Optionen zumindest aktiviert haben. Für genaue Erklärungen, welche Optionen im Kernel was bewirken, siehe Kapitel ref id="kerneloptionen">
Hier zu wechselt man in das Verzeichnis /usr/src/linux und startet das Konfigurationsprogramm mit make menuconfig . Falls der Kernel sich in einem anderen Verzeichnis befinden sollte, muß auch die Datei make.options im Verzeichnis sf-1.0 angepaßt werden. Nach der Konfiguration des Kernels muß dieser kompiliert werden: make clean; make dep; make zImage . Nach ein paar Minuten ist der Kernel fertig kompiliert. Mit cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz wird der gerade aktuell Kernel überschrieben. Damit der Bootmanager auch den neuen Kernel erkennt, genügt die Eingabe von "lilo". Beim nächsten Bootvorgang ist der neue Kernel aktiv.
Nun kann die Firewall kompiliert und installiert werden:
Es werden die Files sfc, sfident und sf.o generiert. make install erzeugt das eigendliche Firewall-Device, die Firewall-Pipe und kopiert die Programme an ihren endgültigen Platz in /usr/lib/
Wichtig ist nun das Konfigurationsfile in /etc/firewall.d/firewall.conf. Hier müssen die Beispiele aus dem samples Verzeichnis angepasst und mit cp samples/Beispiel.conf nach /etc/firewall.d/firewall.conf kopiert werden.
Nun muß das Kernelmodul dem Betriebssytem hinzugefügt werden: insmod sf
Die Firewall kann nun gestartet werden: sfc start
Um den Verkehr überwachen zu können, kann man folgende Befehle testen:
tail -f /var/log/firewall
Die Firewall läßt sich so wieder anhalten: sfc stop; rmmod sf
Das Control Panel läßt sich so starten: sfControl
Warnung: Bei geladenem Kernelmodul ist jedes forwarden von Paketen unterbunden (default policy), nach dem Entfernen des Moduls besteht die Möglichkeit, daß die Firewall völlig transparent ist, da Kernel forwarding aktiviert wurde. Empfohlen ist, während der Konfiguration der Firewall das Kabel in Richtung Internet zu ziehen.....
Zur Sicherheit des Firewall Hosts sollte man folgende Dinge beherzigen:
Online Suche im Handbuch | LITTLE-IDIOT NETWORKING |