REFERAT-MenüDeutschGeographieGeschichteChemieBiographienElektronik
 EnglischEpochenFranzösischBiologieInformatikItalienisch
 KunstLateinLiteraturMathematikMusikPhilosophie
 PhysikPolitikPsychologieRechtSonstigeSpanisch
 SportTechnikWirtschaftWirtschaftskunde  



Firewall-regeln unter dem Kernel


Thema:

Firewall-regeln unter dem Kernel 2.4 (iptables)








Was sind iptables ?


Bei 'iptables' handelt es sich um einen Paketfilter.

Und zwar um einen Paketfilter unter der Linux- Kernel - Version 2.4.

Bei einem Paketfilter handelt es sich um eine Software zur Überwachung von eingehenden und ausgehenden Paketen.

Dabei wird anhand

  • des Paket - Headers,
  • der IP - Adresse
  • des Protokolls
  • des Ports

vom Senders bzw. vom Empfängers entschieden was mit dem Paket passieren soll.

Es kann akzeptiert werden oder auch verworfen werden (ACCEPT oder DROOPEN).

Dies wird in Form von Regeln in die jeweiligen Tabellen eingetragen (Dazu später mehr).


In Linux sind seit der 1.1 Kernel - Version Paketfilter enthalten.

Die erste Version (basierend auf 'ipfw' von BSD) wurde 1994 portiert.

Diese Version wurde dann weiter entwickelt und mit Hilfe des Tools 'ipfwadm' im Kernel 2.0 verwendet.

Ab dem Kernel 2.2 kam 'ipchains' zum Einsatz und Mitte 1999 mit der neu überarbeiteten Kernel - Version 2.4 das Tool 'iptables'.


Iptables besteht aus 2 Komponenten :

  • den Kernel Modulen
  • den Userspace-Kommandos

Wenn man Iptables verwenden will muss man die Userspace-Kommandos installieren. Bei Mandrake, RedHat, SuSE und anderen Verwandten Linux-Distributionen liegt diese Software meistens als rpm-Paket vor.

z.B bei Mandrake bei einem erst ab i586-kompatiblen Rechner:

iptables-1.2.5-1mdk.i586.rpm

Ob sie schon installiert ist überprüft man einfach mit dem Befehl:

rpm -q iptables

Wenn das nicht der Fall sein sollte, einfach installieren

Man wechsle also am besten zuerst in das Verzeichnis wo sich das rpm-Paket befindet (Wichtig: Als Root ).In unserem Falle z.B ins Verzeichnis

/mnt/nfs/mdk-82/i586/Mandrake/RPMS/ 

Und installiert das Programm Paket

rpm -i iptables-1.2.5-1mdk.i586.rpm

und dazu muss man noch das Modul 'ip_tables' laden,

wenn es denn noch nicht geladen ist.


Überprüfen kann man das mit dem Befehl:

lsmod | grep -i ip

und falls es dann nötig ist, kann man das Modul mit folgendem Befehl laden:

insmod ip_tables


Wenn es dann zu Fehlermeldungen kommt muss man den Kernel neu konfigurieren.

Und sollte man einen Rechner als Firewall einsetzen wollen dann,

muss IP-Forwarding aktiviert sein.

Dies macht man (als Root) mit dem Befehl:

echo1> /proc/sys/net/ipv4/ip_forward



Iptables enthält auch ein Kompatibilitäts-Modul für ipchains

(Name des Moduls: ipchains)

und auch eins für ipfwadm (Name des Moduls: ipfwadm).

Diese Module schließen sich aber gegenseitig aus. Das zuerst geladene Modul 'gewinnt'. Bei  SuSE 7.2 zum Beispiel wird in einem Initialisierungs-Skript das Kernel-Modul 'ipchains' geladen. Dann funktioniert 'iptables' nicht.




Übersicht über die Standard-Module von IP-Tables

Modul

Beschreibung

Modul

Beschreibung

iptable_nat

Implementiert die Tabelle nat

iptable_mangle

implementiert Tabelle mangle

iptable_filter

Implementiert die Tabelle filter

ipt_unclean

noch nicht getestet (experimental)

ipt_tos

Filter für type of service

ipt_state

Filter für Verbindungsstatus

ipt_owner

Filter auf erzeugenden Nutzer (lokal)

ipt_multiport

Filter für mehrere Ports auf einmal

ipt_mark

Filter auf MARK-Symbole von Paketen

ipt_mac

MAC-Filter

ipt_limit

Begrenzerfilter

ipt_TOS

type of service setzen

ipt_REJECT

Zurückweisen von Paketen

ipt_REDIRECT

transparentes Umleiten von Paketen

ipt_MIRROR

paket mirroring (source, destination)

ipt_ MASQUERADE

Masquerading

ipt_MARK

packet marking

ipt_LOG

packet logging (Target LOG)

ipfwadm

ipfwadm Kompatibilitaets-modul

ipchains

ipchains Kompatibilitaets-modul

ip_queueing

packet queueing (Weiterreichen an Userspace)

ip_nat_ftp

NAT-Support für FTP

ip_contrack_ftp

dasselbe für FTP

ip_conntrack

Verbindungsverfolgung (connection tracking)



Diese so genannten Kernel-Module befinden sich in den Verzeichnissen :

/lib/modules/2.4.*/kernel/net/ipv4/netfilter/

/lib/modules/2.4.*/kernel/net/ipv6/netfilter/


Bei der C't-HEISE-Knoppix-Version (4/2003) z.B in den Verzeichnissen:

/lib/modules/2.4.20-xfs/kernel/net/ipv4/netfilter/

/lib/modules/2.4.20-xfs/kernel/net/ipv6/netfilter/


Grundsätzliche Funktionsweise


Am Weg den ein Datenpaket durch den Kernel macht, möchte ich die Funktion verständlicher machen.




INPUT

Alle Pakete die an einen lokalen Prozess gerichteten sind landen hier.

OUTPUT

Alle Pakete die von einem lokalen Prozess ausgehen sind laufen hier durch.

PREROUTING

Kurz bevor eine Routing-Entscheidung getroffen wird, müssen die Pakete hier durch (Erstes Paket).

FORWARD

Hier müssen alle zu routenden Pakete durch.

POSTROUTING

Alle zu routenden Pakete laufen nach dem Routing hier durch.


In diesen Chains sind entsprechende Regeln einzutragen, um bestimmte Zwecke zu erreichen bzw. bestimmte Schutzvorrichtungen aufzubauen.

Man kann aber noch benutzerdefinierte Chains hinzufügen.



Die drei Tabellen(tables) in der Netfilter-Architektur


In IPtables gibt es drei Arten von Tabellen:

  • filter
  • nat
  • mangle

Diese 'tables' haben den Zweck, die verschiedenen Arten der Paketbehandlung auf Module zu verteilen und nur die Module zu laden, die grade bzw. für die gestellte Anforderung benötigt werden.

Jeder dieser Tabellen erthält eigene Regeln.


filter

Die Standard-Tabelle ist filter, die immer dann verwendet wird, wenn keine andere Tabelle ausdrücklich angegeben wird, deswegen schauen wir sie uns auf der nächsten Seite genauer an.

Diese Tabelle besteht aus den Chains (Ketten): INPUT, FORWARD, OUTPUT.

Man kann aber noch (wie gesagt) benutzerdefinierte Chains hinzufügen.


nat

Die Tabelle nat dient der Network Adress Translation bzw. dem Port-Forwarding.

Sie besteht aus den chains: PREROUTING, OUTPUT und POSTROUTING.

Diese Chains werden für jedes erste Paket einer neuen Verbindung aufgerufen und führen Anderungen an den Port-Nummern oder an den IP-Nummern der Pakete durch.


mangle

In der Tabelle mangle können tiefer greifende Anderungen an den Paketen vorgenommen werden. Die Pakete können markiert werden oder eine TOS (Type of Service Bits) Manipulation kann vorgenommen werden.

Diese Tabelle besteht aus den Chains: PREROUTING und OUTPUT.


Diese Tabellen gibt es nur wenn Regeln in diesen Tabellen angelegt worden sind.

Das bedeutet, dass die Effizienz eines solchen Paketfilters eventl. sehr hoch sein kann.

Denn wenn man nur einfache Filterfunktionen nutzt, müssen die nicht vorhandenen Tabellen gar nicht erst geladen und durchlaufen werden. Das spart halt Zeit.

Ex muss aber sehr auf den Zusammenhang zwischen Tabellen und Ketten (tables/Chains) geachtet werden. Um darüber Überblick zu schaffen habe ich diesem Thema eine Seite gewidmet, später mehr dazu.
Die Tabelle filter






Wenn ein Paket eine Kette erreicht, wir diese Kette untersucht und das Schicksal des Paketes bestimmt. Wenn die Kette besagt dass das Paket zu verwerfen ist ,wird es verworfen (gelöscht). Wenn die Kette es akzeptiert wird das Paket weitergeleitet.

Jede Kette besteht aus Regeln, in den Regeln ist festgelegt was mit den jeweiligen Paketen passieren soll. Diese Regeln werden solange untersucht bis die Regel die auf das Paket zutrifft gefunden ist. Wenn keine Regel gefunden wird, wird der Kernel sich die Policy der Kette ansehen und entscheiden was passieren soll.

In diesem Fall sollte das Paket verworfen werden (Die Policy sollte so gesetzt sein).


1.Der Kernel sieht sich die Zieladresse des eingehenden Paketes an (Routing).

2.Wenn das Paket für diesen Rechner bestimmt ist, kommt es in die INPUT-Kette.

Danach bekommt der wartende Prozess das Paket .

3.Wenn aber das Paket für eine anderes Interface gedacht ist geht direkt zur  

FORWARD- Kette.

Wenn es dort akzeptiert wird, kann es weiter geleitet werden

(IP-Forwarding muss aktiviert sein).Wenn nicht werden die Pakete einfach verworfen.

4.Pakete die von diesem Rechner verschickt werden sollen, kommen direkt in die

OUTPUT-Kette. Falls diese Pakete dann akzeptiert werden, können sie zu anderen

Schnittstellen weitergeleitet werden.

Was wird praktisch mit den Tables/Chains gemacht ?

Nochmal auf ein Blick:


Table/Chain


filter/INPUT

hier landen alle Pakete, die an einen lokalen Prozess gerichtet sind. Damit lassen sich Zugriffe auf lokale Prozesse hier perfekt regulieren, z.B.:

  • Zugriff auf einen lokal laufenden Server nur aus bestimmten Netzen
  • Nur Pakete durchlassen, die zu einer bestehenden Verbindung gehören

filter/OUTPUT

hier gehen alle Pakete durch, die von einem lokalen Prozess erzeugt wurden. Damit lassen sich lokale Prozesse nach außen schützen, z.B.:

  • keine ausgehenden 'verdächtigen' Verbindungen am Server (Schutz eines Servers vor Daten-Klau)
  • keine 'losen' Pakete nach draußen -- nur gültige Verbindungen

filter/FORWARD

durch diese Chain gehen alle Pakete durch, die durch diese Maschine geroutet werden. Hiermit lassen sich also alle Rechner in jeweils dem Zielnetz des Routing schützen, z.B.:

  • kein UDP nach außen, außer DNS
  • keine öffnenden Verbindungen nach innen
  • Pakete, die zu keiner Verbindung gehören, werden gefiltert

nat/PREROUTING

Wenn Adress-Übersetzungen durchgeführt werden, müssen alle Pakete vor dem Routing hier durch.

Hier lassen sich von zu routende Pakete verändern:

  • die Ziel-IP-Adresse
  • der Ziel-Port

nat/OUTPUT

vom lokalen Rechner stammende Pakete

gehen hier durch;

Anderungen genauso wie bei nat/PREROUTING.

nat/POSTROUTING

Hier gehen nochmals alle Pakete, die geroutet worden sind, durch (auch lokal erzeugte Pakete). Hier werden Angaben über die Herkunft eines Paketes verändert,wie:

  • Quell-IP-Adresse
  • Masquerading
    (Sonderform von Quell-IP-Anderung)

mangle/PREROUTING

mangle/OUTPUT

ähnlich den 'nat' Chains, nur mit dem Unterschied,

dass hier spezielle Paket-Parameter geändert werden können, wie:

  • die TTL (Time to live)

Aufruf-Konventionen

Die Kommandos werden in Groß-Buchstaben geschrieben.        z.B. -A

Die Ziele werden mit großen Wörtern geschrieben                       z.B. ACCEPT

Die Chains auch aus einen Wort in groß.    z.B. INPUT

Tabellen werden aus einen Wort in klein geschrieben.   z.B. filter

Und Optionen werden in Klein-Buchstaben dargestellt z.B. -t

 




Kommandos


-A

<Chain-Name>

<regel >

Eine Regel an das ENDE einer Chain/Tabelle anfügen

-D

<Chain-Name>

<regel >

Eine Regel aus einer Chain/Tabelle löschen

-C

<Chain-Name>

<regel >

Ein Paket testen mit bestimmten Bedingungen auf eine Chain/Tabelle

-R

<Chain-Name>

<Nr> <regel >

Ersetzen einer Regel durch eine neue Regeln

-I

<Chain-Name>

<Nr> <regel >

Eine Regel am ANFANG einer Tabelle/Chain einfügen

-L

<Chain-Name>]


Die Regeln einer Tabelle/Chain auflisten


-F


<Chain-Name>]


Alle Regeln einer Tabelle/Chain löschen.

Wenn keine Chain angegeben wird ,werden alle Chains geleert.

-Z

<Chain-Name>]


Stellt Paket- und Bytezähler einer Chain auf Null

-N

<Chain-Name>


Erstellt eine benutzerdefinierte Chain

-X

<Chain-Name>


Löscht eine benutzerdefinierte Chain

-P

<Chain-Name>

<Ziel>

Legt die Policy einer Chain fest

-E

<Chain-Name>

<Neuer Chain-Name>

Benennt eine Chain um





Bedeutet Negation.

Der Nachfolgende Parameter darf nicht mit den Daten eines Paketes übereinstimmen

Begleitende Optionen


-t

<Tabellen-Name>

Auswahl einer der 3Tabellen.

Es wird dabei das angegebene 'Tabellen-Modul' geladen

(iptable_<Tabellen-Name>)

-v


Gibt 'mehr' aus

-n


Gibt die Auflistung numerisch aus.

-x


Sorgt für eine exakte Zahlenangabe (Anstatt Kilo, Mega, Giga)

-h


Gibt Hilfe-Meldungen und Optionen aus

-m

<Modul-Name>

Stellt zusätzliche Optionen bereit,

die sich im angegebenen Modul befinden.

Modul-Name wird ohne 'ipt_' und ohne Datei-Endung angegeben.

Filteroptionen


-p


<Protokoll>

Bestimmt ein Protokoll

-s


<Adresse>  [/<Maske>]

Gibt die Quell-IP Adresse an (& z.B.+ /8)

-d


<Adresse>  [/<Maske>]

Gibt die Ziel-IP Adresse an    (& z.B.+ 255.0.0.0)

-i


<interface>

Analysiert die Schnittstelle durch die das Paket gekommen ist

-o


<interface>

Spezifiziert  die Schnittstelle durch die das Paket gehen wird


-f


Mit der Option -f  kann eine Regel erstellt werden, die auf zweite oder weitere Fragmente zutrifft

] = Optional

< > = Einzusetzender Inhalt



Aktion bei erfolgreicher Maskierung (Ziele)


Wenn die vorher bestimmten Regel erfüllt worden sind dann gibt es die Möglichkeit bestimmte ,vorher festgelegte, Aktionen durchzuführen.

Diese Aktionen werden auch als Ziele bezeichnet.


Mit dem Parameter ' -j ' bestimmt man was als Aktion durch zuführen ist.

Fehlt aber dieser Parameter dann hat die Regel keine Auswirkung.


Es gibt folgende Ziele:

-j

ACCEPT

Akzeptiert das Paket

-j

DROP

Verwirft das Paket.



-j



QUEUE

Hängt das Paket an die Reihe der Benutzerprozesse.

Es werden hierfür aber benötigt: ein 'queue-Händler' und eine Anwendung, die die Pakete empfängt und weiterverarbeitet.

Die maximale Länge beträgt 1024.

Wenn die Queue voll oder es keine Anwendung gibt wird das Paket verworfen.

-j

RETURN

Das Paket wird zum Ende 'durchgereicht', ohne dazwischen liegende Regeln zu beachten und wird weiterverarbeitet.


Und als Module verwirklichte Ziele:

-j

LOG

Daten des Paketes in die System-Log eintragen.

Z.B. TCP Sequencenummer, IP Optionen, TCP.

Regeln werden sonst ganz normal weiter fortsetzen.

-j

MARK

Das Paket mit einer optional anzugebenden Zahl markiere..

-j

MASQUERADE

Hier bekommen geroutete Pakete als Absender-Adresse die Ip-Adresse & einen beliebigen Port des ausgehenden Interfaces.

So lassen sich bei Wählverbindungen mehrere PC's über einen Router an eine Verbindung koppeln.

-j

REJECT

Man schickt dem Sender eine ICMP-Fehlermeldung.

('port unreachable')

-j

TCPMSS

Enthält Optionen, die Datenmenge pro Paket zu beschränken.

-j

TOS

Mit diesem Ziel lässt sich das 8bit große Type of Service Feld des IP-Headers setzen.

-j

MIRROR

Mirror vertauscht die Quelle und das Ziel.

So 'scannt' ein Angreifer sich selbst.

-j

REDIRECT

Sorgt dafür, dass Pakete an den lokalen Rechner zugestellt werden. So lassen sich z.B. Pakete an 'Phantasie-Ziele' abfangen und lokal behandeln.





-j





SNAT

(Source-NAT)

NAT ist für die Maskierung der internen IP-Adressen verantwortlich. Man unterscheidet zwischen zwei Fällen von NAT:


Bei SNAT wird die Quell-Adresse und eventuell der Port eines Paketes und von den nachfolgenden Paketen verändert.

Masquerading ist ein besonderer Fall von SNAT.

SNAT findet immer nach dem Routing statt und sollte nur bei festen IP-Nummern verwendet werden

-j

DNAT

(Destination-NAT)

Bei DNAT wird die Zieladresse eines Paketes und von den nachfolgenden Paketen verändert und muss vor dem Routing stattfinden.



Welche Ziele sind wo erlaubt ?


Damit noch mal klar ist welche Ziele in welchen Chains erlaubt und auch sinnvoll sind bzw. welche Tabellen noch mal welche Chains beinhalten. Habe ich, wie vorhin angekündigt, diese 3 Faktoren in Form von einer Tabelle unter einen Hut gebracht. Da bei IPtables halt sehr genau darauf geachtet werden muss, welche Ziele- Kombinationen überhaupt möglich sind. Und welche nicht.



Table      






Chains  

INPUT

PREROUTING

FORWARD

POSTROUTING

OUTPUT

filter

ACCEPT

DROP

QUEUE

RETURN

LOG

REJECT

MIRROR


ACCEPT

DROP

QUEUE

RETURN

LOG

REJECT

MIRROR


ACCEPT

DROP

QUEUE

RETURN

LOG

REJECT


nat


ACCEPT

MIRROR

DNAT

REDIRECT


ACCEPT

SNAT

MASQUERADE

ACCEPT

DNAT

REDIRECT

mangle


ACCEPT

MARK

TOS



ACCEPT

MARK

TOS


ICMP - Internet Control Message Protocol


Mit ICMP lässt sich das Verhalten von TCP- und UDP- Verbindungen beeinflussen.

Es dient dazu, Hosts günstigere Routen zu einem Ziel bekannt zugeben, über Routing-Probleme zu informieren oder Verbindungen wegen Problemen im Datennetz abzubrechen.


Viele ICMP Nachrichten, die einen Host erreichen sind nur für eine bestimmte Verbindung wichtig oder durch ein bestimmtest Paket ausgelöst. So sollte eine Redirect- oder Destination Unreachable-Nachricht sich bloß auf eine bestimmte Verbindung beziehen. Aber es nutzen leider alle ICMP- Implementierungen diese Info nicht. Wenn solche Nachrichten empfangen werden, wirken sie auf alle Verbindungen zwischen den beteiligten Hosts. Wenn ihr Hostals Antwort auf ein Paket zum Host PING.CO.AT ein Destination Unreachable erhält, weil dieses eine Paket PING.CO.AT nicht erreichen konnte, dann werden alle Verbindungen zu PING.CO.AT abgebrochen.

Ein Router sollten niemals einer Redirect Message glauben,

da es dadurch einem Angreifer möglich ist, den Verkehr zu sich selbst umzuleiten


UDP - User Datagram Protocol


UDP stellt Applikationen die Datagram-Dienste von IP direkt zur Verfügung. Die Paketzustellung erfolgt ungesichert: verlorene, duplizierte oder in der Reihenfolge vertauschte Pakete werden gar nicht erkannt, und auch die Erkennung von Übertragungsfehlern ist optional und eine Fehlerkorrektur nicht vorhanden.


UDP ist ungünstig, wenn es für umfangreiche Übertragungen genutzt wird. Da dem Protokoll eine Flusskontrolle fehlt, kann es das Netz lahm legen, indem es Router und Hosts mit Paketen überflutet. Durch diese Überflutungen steigen die Paketverluste im Netz sehr an.


UDP-Pakete sind viel leichter zu fälschen als TCP-Pakete, weil es weder Quittungs- noch Laufnummern gibt. Mann muss deswegen sehr vorsichtig sein, wenn man die Quelladresse solcher Pakete verwendet. Die Applikationen selbst müssen geeignete Sicherheitsvorkehrungen treffen.


Paketfilter und UDP

Es ist schwierig TCP-Verbindungen zu filtern. Es ist beinahe unmöglich, UDP-Pakete ohne Funktionalitätsverluste zu filtern. Dies liegt an dem grundsätzlichen Unterschied zwischen TCP und UDP: TCP ist verbindungsorientiert und merkt sich daher Zusammenhang, während UDP paketorientiert ist, und daher die Datagramme unabhängig voneinander betrachtet werden. Bei TCP erlaubt uns das ACK-Bit die Unterscheidung zwischen eingehenden und abgehenden Verbindungen. Doch bei UDP fehlt uns solches "Auswahlkriterium".


TCP - Transmission Control Protocol


TCP stellt gesicherte virtuelle Verbindungen bereit. Verlorene oder 'verstümmelte' Pakete werden noch mal übertragen und die Pakete in der gleichen Reihenfolge abgeliefert, in der sie gesendet wurden.


Die Reihenfolge der Pakete wird durch die Laufnummer bestimmt. Jedes übermittelte Byte wird gezählt. Alle TCP-Pakete, außer dem allerersten einer Sitzung, enthalten eine Quittungsnummer, was die Laufnummer des letzten in Folge korrekt empfangenen Byte zurückgibt. Die Startlaufnummer (initial sequence number) wird zeitabhängig zufällig bestimmt. Das sich die Startlaufnummer für neue Verbindungen ständig ändert, ist es TCP möglich, alte Pakete aus vorangegangenen Inkarnationen derselben virtuellen Verbindung zu erkennen.

Jede TCP-Nachricht enthält den 4-Tupel


<Quellsystem, Quellport, Zielsystem, Zielport>


Durch diese Kombination aus Quell- und Zielsystem und jeweiligen Port-Nummern wird sie eindeutig einer bestimmten virtuellen Verbindung zugeordnet.

Es ist nicht nur erlaubt, sondern durchaus üblich, mehrere verschiedene Verbindungen über die gleiche lokale Port-Nummer abzuwickeln. Solange sich Zielsystem oder Zielport dieser Verbindungen unterscheiden, gibt es keine Probleme.

Server-Prozesse, die einen Dienst über TCP anbieten,"lauschen" auf bestimmten Port-Nummern. Das nennt man TCP-listen. Über eine Übereinkunft haben die Server-Ports niedrige Nummern. Diese Übereinkunft wird allerdings nicht immer eingehalten, was zu Sicherheitsproblemen führen kann.

Die Port-Nummern der Standarddienste werden als bekannt vorausgesetzt.

Ein Port im Listen-Modus stellt im eigentlich eine halboffene Verbindung dar:

Nur Quellsystem und Quellport sind bekannt. Geht ein Paket mit einer Verbindungsanfrage ein, so werden die fehlenden Einträge ergänzt. Der Server-Prozess kann vom Betriebssystem dupliziert werden, so dass weitere Anfragen auf den selben Port auch behandelt werden können.


Port

Dienst


Smtp


http


nntp


Die meisten TCP Versionen für UNIX Systeme stellen sicher, dass nur der root Port-Nummern unterhalb von 1024 nutzen kann. Dies sind die privilegierten Ports. Fremde System sollen der Echtheit von Informationen, die sie von diesen Ports erhalten, vertrauen können. Diese Einschränkung ist allerdings nur eine Konvention, deren Einhaltung von der Protokollspezifikation nicht verlangt wird. Die Konsequenz ist klar: Sie können privilegierten Ports nur dann trauen, wenn sie absolut sicher sind, dass das Quellsystem die Konvention einhält und korrekt verwaltet  wird.


Die schon erwähnten Laufnummern haben auch einen gewissen Sicherheitseffekt:

Eine Verbindung kommt erst dann zustande, wenn beide Seiten jeweils den Empfang der Startlaufnummern quittiert haben.


Fazit


Vorteile

  • Hohe Sicherheit
  • Erweiterbar durch Module
  • Kompatible zu den älteren Versionen
  • Sog. Stateful inspection nun möglich (im Gegensatz zu den Vorgängern)
  • Arbeit auf Module verteilt
  • kostenlos

Nachteile

'Kleine' Fehler könnten schon fatale Folgen haben



Iptables ist im großen und ganzen eine ganz nützliche Angelegenheit.Nicht nur, dass es kostenlos ist , Nein ist auch noch verdammt sicher.Zwar sollte man eine gewisse fachliche Kompetenz mit bringen aber wo muss man das nicht?Und wer sich schon mit den älteren Versionen z.B. ipchains auseinandergesetz hat kann sieauch weiterhin einsetzen Dank den Kompatibilitätsmodulen .Überhaupt die Sache mit den Modulen ist eine ganz praktische Geschichte.Da es dadurch sehr leicht ist 'iptables' zu erweitern. Und dadurch auch Zeit gespart werden kann. Da die Pakete nicht alle Tabellen bzw. Chains durch laufen müssen.Aber leider können kleine Aufmerksamkeitsfehler für große Schäden sorgen. Das System sollte schottendicht sein, sonst bringen die besten Regeln und Filteroptionen auch nicht viel.
Quellenangabe


INTERNET




SONSTIGES

  • Bundesamt für Sicherheit in der Informationstechnik
  • 'man-Page' von iptables
  • C't-HEISE-Knoppix-CD (4/2003)






Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen