Zunächst mal vielen Dank an alle, die mir durch ihre Beiträge geholfen haben!
Hier ein kurzes Update für die Leser dieses Threds.
Ich habe nun iptables zum Laufen gebracht (incl. conntrack) und bislang keine Abstürze der FB7270 (FW67 + akt. freetz trunk) zu verzeichnen.
Die Hürde für den Windows verwöhnten war, dass man jedes Modul im Linux händisch laden muss (bzw. persistent über die debug.cfg). Tut man es nicht, funktionieren viele Kommandos enfach nicht oder bringen komische Fehlermeldungen.
Hier meine
debug.cfg für den interessierten Leser:
Code:
# # # FIREWALL STARTEN
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_filter
modprobe ipt_LOG
modprobe xt_state
modprobe x_tables
modprobe ip_nat
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_TCPMSS
modprobe ipt_iprange
modprobe ipt_layer7
modprobe ipt_tos
modprobe ipt_ttl
modprobe iptable_mangle
modprobe iptable_nat
modprobe iptable_raw
modprobe x_tables
modprobe xt_CLASSIFY
modprobe xt_MARK
modprobe xt_NFQUEUE
modprobe xt_NOTRACK
modprobe xt_comment
modprobe xt_conntrack
modprobe xt_esp
modprobe xt_helper
modprobe xt_length
modprobe xt_limit
modprobe xt_mac
modprobe xt_mark
modprobe xt_multiport
modprobe xt_pkttype
modprobe xt_quota
modprobe xt_realm
modprobe xt_state
modprobe xt_tcpmss
modprobe xt_tcpudp
modprobe ip_conntrack_h323
modprobe ip_nat_h323
# modprobe ip_conntrack_irc
# modprobe ip_conntrack_pptp
# modprobe ip_conntrack_tftp
# modprobe ip_nat_h323
# modprobe ip_nat_irc
# modprobe ip_nat_pptp
# modprobe ip_nat_tftp
# modprobe ipt_TOS
# modprobe xt_statistic
# modprobe xt_string
# # # FIREWALL RULES
iptables -N CANDO
iptables -A CANDO -p tcp -s 192.168.0.0/24 -m multiport --dport 20,21,22,25,80,110,443,465,995,5060 -j ACCEPT
iptables -A CANDO -p udp -s 192.168.0.0/24 -m multiport --dport 53,67,68,80,123,5060 -j ACCEPT
iptables -A CANDO -p icmp -s 192.168.0.0/24 -j ACCEPT
iptables -A CANDO -m state --state RELATED,ESTABLISHED -j ACCEPT
# ... Trusted HOSTS START
# ... Trusted HOSTS END
iptables -A CANDO -j LOG --log-prefix "DENY-LAN-ACCESS "
iptables -A CANDO -j DROP # PARANOIA ROUTER
# # # Rules for Fritz Device
iptables -A INPUT -p udp -s 0.0.0.0 -d 255.255.255.255 --sport 68 --dport 67 -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # LOCALHOST
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT # LAN
iptables -A INPUT -s 169.254.1.1/24 -i lan -j ACCEPT # EMERGENCY LAN
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 5060 -j ACCEPT # VoIP
iptables -A INPUT -p udp --dport 5060 -j ACCEPT # VoIP
iptables -A INPUT -j LOG --log-prefix "DENY-FRITZ-ACCESS "
iptables -A INPUT -j DROP # PARANOIA FB IN
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 224.0.0.1/24 -j ACCEPT
iptables -A OUTPUT -d 239.255.255.250 -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dport 53,123,5060 -j ACCEPT # DNS, TIME, VoIP
iptables -A OUTPUT -p tcp -dport 5060 -j ACCEPT # VoIP
iptables -A OUTPUT -p tcp -dport 80 -d 63.208.196.0/24 -j ACCEPT # DynDNS
# iptables -A OUTPUT -d ###.###.###.### -j ACCEPT # TRUSTED e-Mail OUT HOST
# iptables -A OUTPUT -d ###.###.###.### -j ACCEPT # TRUSTED LOG HOST
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -j LOG --log-prefix "WARNING-CALL-HOME "
iptables -A OUTPUT -j DROP # PARANOIA FB OUT
# # # Rules for FORWARD
iptables -A FORWARD -j CANDO
iptables -A FORWARD -j LOG --log-prefix "DENY-FWD-ACCESS " # FALLS WAS DANEBEN GEHT
# # # COPY CONFIG
cat /var/flash/ar7.cfg > /var/tmp/ar7.cfg
cat /var/flash/debug.cfg > /var/tmp/debug.cfg
#
Ziel der Einstellungen sollte sein, nur ausgehenden Verkehr stateful zu erlauben (HTTP, HTTPS, SMTP, SSH, FTP, DNS, NTP, POP3, IMAP)
Zusätzlich habe ich DHCP offen + VoIP in der Config, aber noch nicht bis zum Ende durchdacht.
Eingehender Verkehr aus dem Internet wird bis auf VoIP geblockt.
LAN Zugriff auf die FB (192.168.0.0/24; 169.254.1.1/24) sowie LOCALHOST und Broadcast im LAN für UpnP und DHCP wird von und zur FB erlaubt.
Außerdem wird der FB erlaubt sich die Zeit per NTP zu holen, DNS Anfragen zu senden, sich bei DynDNS zu registrieren, SMTP Mails zum Mail Server zu versenden und VoIP Verbindungen aufzubauen. Alle anderen Aktivitäten sind geblockt und werden protokolliert.
Leider geht der Syslog nicht vernünftig, dafür lasse ich eine ssh Console laufen und mit putty die Ausgaben in eine Datei schreiben. Ich habe dann zwar keinen Zeitstempel der Ausgaben, kann aber trotzdem leicht nachvollziehen, welche Anfragen verworfen werden und entsprechend nachbessern.
Wenn man noch eine elegante Log-Möglichkeit finden könnte, dann wär die Sache Perfekt.
(Zusätzlich läuft bei mir noch die AVM-Firewall mit dem dsld mit einem passenden Regelwerk und loinput/highoutput default deny.)
Zum Ausprobieren neuer Regeln verwende ich die console, und editiere die
/var/tmp/debug.cfg, die ich dann mit
cat /var/tmp/debug.cfg > /var/flash/debug.cfg scharf stelle.
Was mir noch fehlt, sind noch ein paar Regeln gegen DoS Atacken etc. und eine DMZ / VPN Konfiguration, die ich als nächstes angehen werde.
Zur Erhöhung der Sicherheit müssten an der FB noch ein paar Modifikationen der Interfaces vorgenommen und die Regeln angepasst werden. (LAN Zugriff auf FB wird mal, wenn alles funktioniert, aus Sicherheitsgründen auf die Ports für HTTP (80+81+443), FTP (20+21), Telnet, SSH (22) und vielleicht noch SAMBA beschränkt. Die Interfaces lan:0 mit 169.254.1.1/16 und dsl mit 169.254.2.1/16 liegen im selben Segment 169.254.0.0/16, was einen ungerouteten Traffic untereinander ermöglicht, und die FB Firmware z.B. für DNS Lookup und NTP nutzt... Eigendlich sollte man lan:0 entfernen, eine route von lan nach dsl und umgekehrt schalten und den traffic über ein regelwerk steuern - ich weiss aber noch nicht, welche Probleme das mit der AVM Firmware/flash- und recovery tools etc. nach sich ziehen könnte).
Also noch mals Danke für die Hilfe!