@li
Thema:
Firewall-regeln unter dem Kernel 2.4 (iptables)
Inhaltsverzeichnis
Was sind Iptables ? Seite 3
Übersicht über die Module von IP-Tables Seite 4
Grundsätzliche Funktionsweise Seite 5
Die drei Tabellen der Netfilter-Architektur Seite 6
Die Tabelle filter Seite 7
Was wird praktisch mit den Tabellen gemacht ? Seite 8
Aufruf-Konventionen
Liste der Kommandos Seite 9
Generelle, begleitende Optionen
Filteroption
Aktion bei erfolgreicher Maskierung Seite 10
Welche Ziele sind wo erlaubt ? Seite 11
Protokolle Seite 12
ICMP - UDP
TCP (Paketfilter und UDP) Seite 13
Fazit Seite 14
Quellenangabe Seite 17
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.
rpmOb sie schon installiert ist überprüft man einfach mit dem Befehl:rpm -q iptablesWenn 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 Paketrpm -i iptables-1.2.5-1mdk.i586.
rpmund 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 ipund 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 Änderungen an den Port-Nummern oder an den IP-Nummern der Pakete durch.
mangle
In der Tabelle mangle können tiefer greifende Änderungen 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;
Änderungen 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-Änderung)
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-KonventionenDie 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
25
Smtp
80
http
119
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
www.webmasterpro.de
https://lusc.de
https://www.lugs.
ch
https://archiv.tu-chemitz.de
https://mailman.sil.at
https://helpdesk.rus.
uni-stuttgart.de
https://www.Linux-magazin.de
www.pl-forum.de
https://www.
linuxeinsteiger.org
https://wwwbs.informatik.htw-dresden.de
www.netfilter.
org
SONSTIGES
Bundesamt für Sicherheit in der Informationstechnik
"man-Page" von iptables
C’t-HEISE-Knoppix-CD (4/2003)
My E-Mail: Mahur@gmx.de
Anmerkungen: |
| impressum | datenschutz
© Copyright Artikelpedia.com