05.02.2013 Aufrufe

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Lage, eventuelle Angriffe von UNIX-Servern aus Rechenzentren festzustellen, <strong>und</strong> den<br />

User zu identifizieren. Hier<strong>für</strong> sind folgende Methoden implementiert:<br />

• finger<br />

• rusers<br />

• identd<br />

Während finger <strong>und</strong> rusers einfach nur UNIX-Befehle sind, erfordert der identd eine<br />

spezielle Anpassung. Der Code befindet sich in der Datei sfidentd.c . Das Programm<br />

verbindet sich mit dem Host, der untersucht werden soll, <strong>und</strong> liefert entsprechend der RFC<br />

1413 Informationen <strong>zurück</strong>.<br />

Erweiterungen des <strong>Firewall</strong>-Dämons<br />

Neue Schlüsselworte<br />

Das Hinzufügen neuer Schlüsselworte zu der "notification" Struktur erfordert Änderungen<br />

im Parser <strong>und</strong> ein paar neue Zeilen in der Funktion "execute_notify" im File sf_daemon.c .<br />

Erweiterung der "counter intelligence"<br />

Diese Erweiterungen sind recht einfach zu implementieren. Eine Änderung in der finger<br />

Funktion (sf_spy.c) ist notwendig. Um einen Eintrag hinzuzufügen, genügt ein einfaches<br />

copy/paste der "rusers" Zeilen <strong>und</strong> eine Anpassung an die Befehle des verwendeten<br />

Programms.<br />

Um weitere Möglichkeiten der Benachrichtigung des Users hinzuzufügen, ist es<br />

notwendig, die Größe des Files fdarray anzupassen (neben Logfile <strong>und</strong> E-Mail), <strong>und</strong> die<br />

num_fd Variable entsprechend anzupassen. Nun muß nur noch ein File - Descriptor<br />

geöffnet werden, der auf den Zielhost zeigt. Alles weitere erfolgt dann automatisch.<br />

Genaue Details befinden sich im Quellcode der finger Funktion (sf_spy.c)<br />

14.27 <strong>Firewall</strong> Konfiguration<br />

Die <strong>Firewall</strong> Konfiguration wird aus dem Konfigurationsfile (/etc/firewall.d/firewall.conf)<br />

ausgelesen, interpretiert <strong>und</strong> direkt in die Datenstrukturen des <strong>Firewall</strong>-Dämons<br />

eingelesen. Das Regelwerk wird über das <strong>Firewall</strong>-Device (/dev/firewall) an den Filter<br />

übergeben. Funktionen, die Regeln hinzufügen, löschen oder modifizieren, sind in der<br />

Datei sf_config.h definiert. Dieser Abschnitt beschreibt die Datenstrukturen im <strong>Firewall</strong>-<br />

Dämon. Die Datentypen sind in sf_global.h <strong>für</strong> den <strong>Firewall</strong>-Dämon <strong>und</strong> den Filter<br />

gemeinsam definiert. Definitionen allein <strong>für</strong> den <strong>Firewall</strong>-Dämon liegen in sf_config.h .<br />

Filter Regeln<br />

Der Parser speichert die Regeln in umgekehrter Reihenfolge in einer linearen Liste, sodaß<br />

dieser <strong>und</strong> der Kernel stets am Kopf der Liste Regeln hinzufügen können. Die ist<br />

insbesondere Notwendig <strong>für</strong> dynamische <strong>Firewall</strong>regeln. Die Zeiger <strong>für</strong> die Struktur der<br />

Variablen zeigt auf den Kopf der Liste. Jede Regel enthält einen Zeiger auf sich selber (ptr<br />

in union rule_id). Dieser Zeiger ist nur im Usermode definiert. Der Filter betrachtet diese ID<br />

als eindeutige Kennzeichnung <strong>für</strong> eine Regel. Hat der Filter eine Regel an den <strong>Firewall</strong>-<br />

Dämon übergeben, so kann der über die ID stets schnell auf die Regel erneut zugreifen,<br />

um dynamische <strong>Firewall</strong>regeln auszulesen, zu ändern o.ä.<br />

Der Parser speichert die Kennzahl <strong>für</strong> den "notification level" in der Struktur level.num.<br />

Diese Levelnummer wird später in einen Zeiger auf die "notification" Struktur<br />

umgewandelt, unter Berücksichtigung der Konvertierungslevel in sf_config.c<br />

(convert_levels). Adressen, die von den Filterregeln benötigt werden, werden in einem<br />

Erstellt von Doc Gonzo - http://kickme.to/plugins

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!