New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Netfilter/iptables - Wikipedia

Netfilter/iptables

aus Wikipedia, der freien Enzyklopädie

iptables
Entwickler: Netfilter-Projekt-Team
Aktuelle Version: 1.3.7
(4. Dezember 2006)
Betriebssystem: Linux
Kategorie: Firewall
Lizenz: GPL
Deutschsprachig: nein
Website: iptables.org

Netfilter ist eine Software innerhalb des Linux-Kernels, die es erlaubt, Netzwerkpakete abzufangen und zu manipulieren. Es bildet damit das Herzstück einer Firewall auf Basis von Linux.

Iptables ist das dazugehörige Dienstprogramm zur Konfiguration von Netfilter.

Die beiden Begriffe Netfilter und Iptables werden oft austauschbar für die Summe aus den Kernel- und den Userspace-Bestandteilen verwendet.

Das Netfilter/Iptables-Gespann kann die wesentlichen Protokolle des Internets aus der Vermittlungsschicht, der Transportschicht und teilweise auch aus der Anwendungsschicht verarbeiten (siehe Internet-Protokoll-Familie). Für die darunterliegende Netzzugangsschicht gibt es dagegen Programme wie ebtables (Ethernet-Bridge Tables).

Zu den Funktionen gehören:

Der Kernel-Anteil, also Netfilter im engerem Sinne, ist in eine Vielzahl von Kernel-Modulen aufgeteilt, so dass sich einzelne Bausteine und Netfilter insgesamt leicht ein- und ausschalten lassen.

Netfilter und Iptables gehören zum Lieferumfang aller neueren Linux-Distributionen und sind der Standard für Firewalls unter Linux. Es wird vom netfilter.org-Projekt unterstützt und weiterentwickelt. Die Software unterliegt, wie der Linux-Kernel insgesamt auch, der GNU General Public License, ist also freie Software.


Inhaltsverzeichnis

[Bearbeiten] Geschichte

Linux besitzt seit der Version 1.0 einen Paketfilter. Dieser stammte zunächst von BSD ab und wurde in der Linuxversion 2.0 unter dem Namen ipfwadm erweitert. Rusty Russell überarbeite den Paketfilter nochmals und stellte diesen als ipchains zur Verfügung, welcher in der Linuxversion 2.2 integriert wurde. Gegen 1999 wurde der Kernel und damit auch ipchains komplett überarbeitet. Aus ipchains ging dann iptables hervor, welches seit Kernel 2.4 zum "Lieferumfang" gehört. Iptables wird vom Netfilter-Projekt-Team gepflegt und weiter entwickelt. Dieses Team wurde durch eine kleine Gruppe von Entwicklern, die sich selbst das Coreteam nennen, 1999 ins Leben gerufen. Iptables ist seit 2000 unter der GNU General Public License (GPL) verfügbar.

[Bearbeiten] Aufbau

Diagramm zur Reihenfolge der Behandlung von IP-Paketen
Diagramm zur Reihenfolge der Behandlung von IP-Paketen

[Bearbeiten] Tabellen (tables)

Die iptables-Architektur gruppiert die Regeln für die Verarbeitung von Netzwerk-Paketen gemäß ihrer Funktion in drei Tabellen:

Diese Tabellen enthalten Ketten (engl. chains) von Verarbeitungsregeln, bestehend aus Mustern (engl. patterns), die bestimmen auf welche Pakete die Regel angewendet wird und Ziele (engl. targets), die festlegen, was mit den Paketen passiert. Anders gesagt bestimmen Chains also wo geprüft wird, Pattern welche Pakete betroffen sind und Targets was mit ihnen geschieht. Die Filterregeln werden dabei außer bei Ausnahmen stets sequentiell bis zum ersten Treffer abgearbeitet.

[Bearbeiten] Ketten (chains)

Iptables hat fünf fest vorgegebene Ketten (built-in chains) im Kernel eingebaut:

  • PREROUTING: Unmittelbar, bevor eine Routing-Entscheidung getroffen wird, müssen die Pakete hier durch (nur nat und mangle).
  • INPUT: Hier landen alle Pakete, die an einen lokalen Prozess gerichtet sind (nur filter und mangle).
  • OUTPUT: Hier laufen alle Pakete durch, die von einem lokalen Prozess stammen.
  • FORWARD: für alle zu routenden Pakete, also Pakete die für andere Rechner bestimmt sind (nur filter und mangle).
  • POSTROUTING: Alle Pakete, lokale und solche die geroutet werden, laufen hier durch (nur nat und mangle).

Zusätzlich lassen sich noch eigene Ketten definieren.

[Bearbeiten] Ziele (targets)

Jede Kette kann Regeln enthalten. Jede Regel besteht dabei aus einer Filterspezifikation und aus einem Ziel (target). Das Ziel gibt letztendlich an, was mit einem Paket passiert. Ein Ziel kann eine benutzerdefinierte Kette, ein Standardziel oder ein erweitertes Ziel sein. Für die fest vorgegebenen Ketten kann man eine Policy definieren, die angewandt wird, wenn keine der Regeln greift. Eine Policy ist immer ein Standardziel. Default ist ACCEPT.

Folgende Standardziele gibt es:

  • ACCEPT: Das Paket wird akzeptiert.
  • DROP: Das Paket wird ohne Rückmeldung an den Sender verworfen.
  • QUEUE: Das Paket wird in eine Queue im Userspace geschickt, sodass es von einem Benutzerprogramm bearbeitet werden kann. Wird die Queue von keinem Programm gelesen, hat dies denselben Effekt wie DROP.
  • RETURN: In benutzerdefinierten Ketten angewendet, wird die Abarbeitung dieser Kette abgebrochen und mit der nächsten Regel der vorhergehenden (aufrufenden) Kette fortgeführt. Bei den fest vorgegebenen Ketten greift die Policy der Kette.

Daneben gibt es zahlreiche erweiterte Ziele. Die wichtigsten sind:

  • LOG: Das Paket wird mit ausgewählten Informationen im Syslog aufgezeichnet und anschließend weiter durch die Kette geleitet.
  • REJECT: Das Paket wird verworfen und der Sender darüber informiert (mittels ICMP-Nachricht oder RST-Paket bei TCP-Verbindungen)

Folgende Ketten sind nur in der nat-Tabelle gültig:

  • DNAT und SNAT (nur PREROUTING und OUTPUT bzw. POSTROUTING) stehen für Destination NAT bzw. Source NAT. Dabei wird die Ziel- bzw. die Quell-Adresse des Paketes durch eine angegebene Adresse ersetzt.
  • MASQUERADE (nur POSTROUTING) ist eine Spezialform von Source NAT. Die Quell-Adresse des Paketes wird dabei durch die IP-Adresse der Schnittstelle ersetzt, auf welcher es den Rechner (in diesem Fall Masquerading-Router genannt) verlassen wird.
  • REDIRECT (nur PREROUTING und OUTPUT) leitet das Paket zum lokalen Rechner um; wird Beispielsweise für transparente Proxyserver benötigt.

Bei DNAT, SNAT und MASQUERADE merkt sich Netfilter die Adressübersetzung - daher connection tracking - und wendet sie auf alle nachfolgenden Pakete derselben Verbindung (in beide Richtungen) ebenfalls an.

[Bearbeiten] Muster (patterns)

Muster machen einen Großteil der Regeln aus, da sie die Bedingungen enthalten, auf die Pakete hin geprüft werden. Diese können sowohl auf OSI-Schicht 3 stattfinden, als auch darunter (z.B. das Filtern von MAC-Adressen per --mac-source) oder darüber (z.B. bestimmte Protokolle herausfiltern mit --tcp, --udp oder --icmp). Neben generischen Mustern enthält iptables viele spezialisierte Matches, die über dynamisch geladene Erweiterungen zur Verfügung stehen und mit dem Schalter -m oder --match geladen werden.

[Bearbeiten] Erweiterungen

Die Iptables-Organisation ist zusätzlich für die Projekte Patch-o-matic (kurz POM) und Patch-o-matic-ng (ng = "next generation") verantwortlich, welche experimentelle Funktionen erproben und dessen Erkenntnisse evtl. in zukünftige Iptables-Versionen mit einfließen. Die Erweiterungen fügen neue Module hinzu, indem mit einem Skript der Quellcode von Iptables der Netfilter-Teil des Kernels verändert wird. Damit die Änderungen übernommen werden, müssen beide Komponenten nach dem Patchen neu kompiliert werden und der Rechner (oder die virtuelle Maschine) neugestartet werden.
Siehe auch: http://www.netfilter.org/projects/patch-o-matic/index.html und http://www.netfilter.org/projects/patch-o-matic/pom-base.html.

[Bearbeiten] Frontends / Alternativen

Zu iptables gibt es zahlreiche Frontends, die von einfachen Shell-Scripts bis hin zu komplexen grafischen Oberflächen die Verwaltung des Firewall-Regelwerkes übernehmen. Zur leichteren Verwaltung lassen sich Frontends einsetzen (z.B. IPCop, Shorewall, Webmin oder die Programme, die in den Weblinks gelistet sind).

Andere Betriebssysteme sind mit anderen Firewall-Systemen ausgestattet; pf gibt es für alle BSD-Derivate, IPFilter (ipf) für alle Unix-Derivate (inkl. Linux, wobei es nicht auf netfilter aufbaut) und zusätzlich nutzt FreeBSD bzw. Mac OS X ipfw. Um mit Linux den Netzwerkverkehr auf Anwendungsebene zu filtern sind andere Programme wie TuxGuardian nötig.

[Bearbeiten] Siehe auch

[Bearbeiten] Literatur

  • Gregor N. Purdy: Linux iptables - kurz & gut. O'Reilly, Dezember 2004, ISBN 3897215063
  • Gregor N. Purdy: Linux iptables Pocket Reference. O'Reilly Media, August 2004, englisch, ISBN 0596005695
  • Ralf Spenneberg: Linux-Firewalls mit iptables & Co., m. CD-ROM. Addison-Wesley, München, Februar 2006, ISBN 3827321360 (Hier kapitelweise als PDF verfügbar [1])

[Bearbeiten] Weblinks

b:
Wikibooks
Wikibooks: Linux-Kompendium: Linux-Firewall mit IP-Tables – Lern- und Lehrmaterialien

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu