Es ist relativ einfach, mit Hilfe von Paket-Filtern Verbindungen zwischen zwei bestimmten Hosts zu
erlauben oder auch zu verbieten. Da aber die Sicherheitspolitik es meist erforderlich macht, daß
eine genauere Kontrolle ausgeübt wird, werden normalerweise zusätzlich zu den IP-Adressen
zumindest noch die Ports sowie das Transportprotokoll überprüft. Auch kann mit Hilfe des
ACK-Flags untersucht werden, ob es sich um einen Verbindungsaufbau oder die Fortsetzung einer
bestehenden TCP-Verbindung handelt (vgl. Kap. ).
Dies soll an einem kleinen Beispiel verdeutlicht werden. Angenommen, man möchte mail von und
zu einem bestimmten mailserver innerhalb des Firmennetzes von allen externen Hosts aus
erlauben. Jeder andere Verkehr durch den Firewall soll verboten sein. Ein Filter der dies
implementiert könnte wie in Tabelle gezeigt aussehen. Bei den folgenden Beispielen
wurde jeweils auf eine Angabe des protocol-Feldes verzichtet, um die Tabellen nicht zu
unübersichtlich werden zu lassen. Mit Ausnahme der letzten Regel handelt es sich immer um TCP, die
letzte Regel sollte für beliebige Protokolle gelten.
Nr. | Aktion | Source | Port | Dest. | Port | Flags | Bemerkung |
1 | allow | mailserver | * | * | * | * | Der mailserver darf beliebige Pakete versenden |
2 | allow | * | * | mailserver | 25 | * | externe Hosts dürfen nur Verbindungen zum SMTP-Port unseres mailservers aufbauen |
3 | allow | * | * | mailserver | * | ACK | externen Hosts wird die Fortsetzung beliebiger Verbindungen mit dem mailserver gestattet |
4 | block | * | * | * | * | * | Alles andere ist verboten |
Regel 1 dient dazu, daß der mailserver Verbindungen zu externen Rechnern aufbauen kann. Da auf eine Untersuchung des ACK-Flags verzichtet wird, erlaubt diese Regel gleichzeitig die Fortsetzung bereits bestehender Verbindungen. Regel 2 hingegen erlaubt es externen Rechnern, Kontakt zum mailserver aufzunehmen. Der Verbindungsaufbau wird dabei aber auf Verbindungen zum SMTP-Port (Port 25) beschränkt. Um es den externen Rechnern zu ermöglichen, auf von innen initiierte Verbindungen zu antworten, wurde Regel 3 eingefügt. Sie gestattet jedes Paket, daß an einen beliebigen Port des mailservers gerichtet ist, es sei denn, dieses Paket hat das ACK-Flag nicht gesetzt und dient somit also zum Neuaufbau einer Verbindung. Eine Regel in der Art von Regel 4 sollte grundsätzlich den Schluß der Filterregeln bilden, um alle Pakete, die nicht explizit durch die anderen Filterregeln gestattet werden, zu verwerfen. Da die Regeln in der angegebenen Reihenfolge abgearbeitet werden und abgebrochen wird, wenn eine Regel auf das entsprechende Paket angewandt werden konnte, kommt diese Regel nur dann zum Einsatz, wenn keine andere Regel auf das eingetroffene Paket paßt.
Ein nächstes Beispiel (Tabelle ) zeigt, daß es möglich ist, mehrere Rechner zu einer
Gruppe zusammenzufassen, um somit nicht für jeden Rechner eigene Regeln aufstellen zu müssen.
In diesem Beispiel soll die Behandlung der mail analog zum vorherigen Beispiel erfolgen,
während es zusätzlich allen internen Rechnern möglich sein soll, telnet-Verbindungen
zu externen Rechnern aufzubauen.
Nr. | Aktion | Source | Port | Dest. | Port | Flags. | Bemerkung |
1 | allow | mailserver | * | * | * | * | Der mailserver darf beliebige Pakete versenden |
2 | allow | * | * | mailserver | 25 | * | externe Rechner dürfen |
Verbindungen zum mail- | |||||||
Port unseres mailservers aufbauen | |||||||
3 | allow | * | * | {our hosts} | * | ACK | externen Rechnern ist die Fortsetzung bereits bestehender Verbindungen zu allen internen Rechnern erlaubt |
4 | allow | {our hosts} | * | * | 23 | * | interne Rechner dürfen telnet-Verbindungen zu |
beliebigen Rechnern auf- | |||||||
bauen | |||||||
5 | block | * | * | * | * | * | Alles andere ist verboten |
Die Regel 1 und 2 erfüllen in diesem Beispiel die gleichen Aufgaben wie im vorhergehenden. Regel 3 wurde dahingehend abgeändert, daß nun externe Hosts Verbindungen, die von beliebigen internen Rechnern initiiert wurden, fortsetzen können. Dies schließt natürlich insbesondere den mailserver mit ein. Um telnet-Verbindungen von innen nach außen zu erlauben, wurde Regel 4 eingefügt. Sie erlaubt es allen internen Rechnern, Verbindungen zu Port 23 eines beliebigen Rechners aufzubauen. Die Fortsetzung dieser Verbindungen durch den externen Rechner erfolgt dann wiederum mit Hilfe von Regel 3. Hierbei ist allerdings zu beachten, daß man sich nicht darauf verlassen kann, daß auf einem externen Rechner Port 23 für den telnet-server verwendet wird. Dies ist zwar der well-known port für telnet, eine Garantie hierfür besteht aber nicht. Regel 5 sorgt wieder dafür, daß keine Pakete den Filter passieren können, die nicht ausdrücklich dazu berechtigt wurden.
Ebenso wie es möglich ist, Gruppen von Hosts zu bilden, mit deren Hilfe sich einfachere Regeln
aufstellen lassen, kann man ganze Portbereiche zulassen oder ausschließen, ohne für jeden Port
eine eigene Regel verwenden zu müssen. Das in Tabelle dargestellte Beispiel soll
dies verdeutlichen.
Nr. | Aktion | Source | Port | Dest. | Port | Flags | Bemerkung |
1 | allow | * | * | {out hosts} | * | ACK | Externe Hosts dür- |
fen bestehende Verbindungen fortsetz- | |||||||
en | |||||||
2 | allow | {our hosts} | * | * | * | * | Interne Hosts dür- |
fen Verbindungen | |||||||
auch initiieren | |||||||
3 | block | * | * | {our hosts} | 6000-6100 | * | Hier sind die X-Server angesiedelt |
4 | allow | * | * | {our hosts} | ![]() |
* | Verbindungen zu nicht-privilegierten |
Ports sind erlaubt | |||||||
5 | block | * | * | * | * | * | Alles andere ist verboten |
Mit Hilfe von Regel 1 und 2 wird es wieder allen internen Hosts ermöglicht, Verbindungen aufzubauen, auf die alle externen Hosts antworten können. Da die Regeln in der Reihenfolge abgearbeitet werden, in der sie aufgeschrieben wurden, wurde die Regel, die vermutlich am häufigsten zutrifft, an den Anfang gesetzt. Dies führt zu einer Verbesserung der Performance, da weniger Regeln untersucht werden müssen, ist aber auch gefährlich, da gewisse Abhängigkeiten zwischen den Regeln bestehen können, so daß die Reihenfolge nicht unbedingt geändert werden kann. Regel 4 erlaubt es externen Hosts, Verbindungen zu Ports im nicht-privilegierten Bereich aufzubauen. Dies kann zum Beispiel bei FTP-Verbindungen notwendig sein, da hierbei der server einen Datenkanal zum client auf einem nicht-privilegierten Port eröffnet. Da aber auch im nicht-privilegierten Bereich einige wichtige server angesiedelt sein können, werden vor diese Regel noch weitere Regeln gesetzt, die diese Ports ausdrücklich ausschließen. Im Beispiel wurde mit Hilfe der Regel 3 der ganze Bereich ausgeschlossen, in dem X-server angesiedelt sein können. Da die Regeln der Reihe nach abgearbeitet werden, wird Regel 4 gar nicht mehr beachtet, wenn Regel 3 bereits zutrifft. Regel 5 blockt wie üblich alle Pakete ab, auf die keine andere Regel zutrifft.
Weiterhin von Bedeutung ist die Möglichkeit, das Interface festzulegen, auf dem ein Paket von
einem bestimmten Host eintreffen muß. Eine beliebte Angriffsmethode ist es, als Absender eine
Adresse des internen Netzes anzugeben, auch wenn das Paket aus dem externen Netz stammt.
Legt man nun fest, daß Pakete aus dem firmeneigenen Netz nur an einem bestimmten Interface
erscheinen können, so können solche Versuche unterbunden werden (siehe
Abbildung /Tabelle
).
Nr. | Aktion | Source | Port | Dest. | Port | Interface | Bemerkung |
1 | block | {our hosts} | * | * | * | Interface1 | Alle Pakete, die als Absender einen internen Host haben aber auf Interface 1 eintreffen sind verboten |
Die Regel sorgt dafür, daß jedes Paket, dessen Absenderadresse einen Host des internen Netzes bezeichnet, verworfen wird, sofern es an Interface 1, also dem Interface zum externen Netz ankommt.