Iptables

Aus

Was ist iptables ?

iptables ist ein System von Tabellen, Regeln und modular ladbaren Mechanismen die dazu dienen den Fluss von TCP/IP-Paketen durch das System zu regeln. Man kann damit z.B. im einfachsten Fall die Pakete einer bestimmten IP-Adresse verwerfen, man kann bestimmte Dienste sperren (z.B. kein FTP) oder auch komplexere Verarbeitungen wie die Zuweisung neuer Adressen und Port-Nummern um eine andere Identität zu simulieren (siehe NAT). Mit iptabels können Schutzmechanismen realisiert werden weshalb viele Linux basierte Router diesen Mechanismus verwenden. Auch unser Diskstation verwendet iptables meist ohne dass man als normaler Anwender sich Gedanken darüber machen muss.

Die zwei iptables der Diskstation

iptables besteht aus Teilen die im Kern des Betriebssystems arbeiten und ggf. als Kern-Modul geladen werden. Diese Module liegen zusammen mit allen anderen Kern-Modulen in /lib/modules. Zusätzlich gibt es noch Teile die im User-Space arbeiten. Applikationen für die Kommandozeile wie

/sbin/iptables
/sbin/iptables-save
/sbin/iptables-restore
/sbin/iptables-multi

und Zusatzfunktionen die bei Bedarf aus Bibliotheken dynamisch gelinkt werden können:

/lib/iptables/libipt_icmp.so
/lib/iptables/libipt_REDIRECT.so
/lib/iptables/libxt_multiport.so
/lib/iptables/libxt_udp.so
/lib/iptables/libxt_tcp.so
/lib/iptables/libxt_state.so
/lib/iptables/libxt_standard.so

Den Teil außerhalb des Kerns gibt es auch als Optware über ipkg ladbar. Er enthält die Applikationen und Bibliotheken die bereits vorhanden sind nochmal ggf. in erweiterten Versionen und bringt neue mit. Die Applikation iptables-xml konvertiert mit iptables-save erstellte Dumps der iptables Regelsätze in das XML-Format.

/opt/bin/iptables-xml

Die Optware Version enthält auch mehr Bibliotheken mit Zusatzfunktionen wie z.B. die Unterstützung von NAT ...

/opt/libexec/xtables/libipt_SNAT.so
/opt/libexec/xtables/libipt_DNAT.so
/opt/libexec/xtables/libipt_MASQUERADE.so

... und neben diverse andere Erweiterungen ...

/opt/libexec/xtables/libipt_icmp.so
/opt/libexec/xtables/libipt_REDIRECT.so
/opt/libexec/xtables/libipt_LOG.so
/opt/libexec/xtables/libipt_SAME.so
/opt/libexec/xtables/libipt_addrtype.so
/opt/libexec/xtables/libipt_MIRROR.so
/opt/libexec/xtables/libipt_REJECT.so
/opt/libexec/xtables/libipt_ah.so
/opt/libexec/xtables/libipt_ECN.so
/opt/libexec/xtables/libipt_ecn.so
/opt/libexec/xtables/libipt_ULOG.so
/opt/libexec/xtables/libipt_TTL.so
/opt/libexec/xtables/libipt_ttl.so
/opt/libexec/xtables/libipt_NETMAP.so
/opt/libexec/xtables/libipt_CLUSTERIP.so
/opt/libexec/xtables/libipt_unclean.so
/opt/libexec/xtables/libipt_realm.so

... auch Bibliotheken für die Unterstützung der Version 6 von TCP/IP.

/opt/libexec/xtables/libip6t_dst.so
/opt/libexec/xtables/libip6t_ah.so
/opt/libexec/xtables/libip6t_LOG.so
/opt/libexec/xtables/libip6t_mh.so
/opt/libexec/xtables/libip6t_eui64.so
/opt/libexec/xtables/libip6t_ipv6header.so
/opt/libexec/xtables/libip6t_icmp6.so
/opt/libexec/xtables/libip6t_HL.so
/opt/libexec/xtables/libip6t_hl.so
/opt/libexec/xtables/libip6t_rt.so
/opt/libexec/xtables/libip6t_hbh.so
/opt/libexec/xtables/libip6t_REJECT.so
/opt/libexec/xtables/libip6t_frag.so

Die Applikationen der Kommandozeile