Was ist iptables ?
Bearbeiteniptables
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
Bearbeiteniptables
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
Verwendung in der Diskstation
BearbeitenDas Startup-Script
/usr/syno/etc.defaults/rc.d/S01iptables.sh
läd beim Hochfahren der Diskstation abhängig von der Kern-Release die nötigen Kern-Module für iptables
. Danach werden mit
/sbin/iptables-restore </etc/firewall_rules.dump
die in der Datei firewall_rules.dump
gespeicherten Regeln geladen. Da iptables-restore
hier ohne die Option --noflush
aufgerufen wird, werden alle zuvor geladenen Regeln gelöscht. Startup-Scripte die vor diesem Script laufen und Regeln laden sind daher unwirksam. Beim Herunterfahren werden die Regeln mit
/sbin/iptables -F
gelöscht aber nicht vorher mit iptables-save >/etc/firewall_rules.dump
gespeichert. Das bedeutet dass Änderungen an den Regeln die im laufenden Betrieb vorgenommen wurden verloren gehen. Die Datei /etc/firewall_rules.dump
wird sogar beim Herunterfahren in der stop-Regel des Scripts gelöscht. Beim Start wird vor dem laden der Regeln
/usr/syno/bin/firewalltool -dump_rules /etc/firewall /etc/firewall_rules.dump
aufgerufen. Wer eine Dokumentation zu diesem Programm hat bitte in Synology_Toolset einfügen. Der Aufruf von firewalltool --help
liefert leider nur den wenig nützlichen Hinweis auf das Copyright (c) 2003-2010 Synology Inc. All rights reserved.
. Anhand der Verwendung im Startup-Script kann man aber vermuten dass firewalltool
dafür zuständig ist die in /etc/firewall/
hinterlegten Firewall-Regeln beim Start der Diskstation in iptables
-Regeln zu übersetzen die danach mit iptables-restore
zur Ausführung geladen werden.