Het is vaak een goed idee voor maximale veiligheid om alles tegen te houden, en dan selectief sommige dingen door te laten. Iets onbekends wordt dan tegengehouden.
Draai geen daemons, servers en services als je ze niet nodig hebt, zelfs als je denkt dat je ze geblockt hebt.
Het kan geen kwaad veilige dingen te combineren. Je kan beter teveel veiligheid hebben dan te weinig. Gebruik tcp-wrappers, proxies, route verificatie en een pakket filter. Route verificatie is pakketjes blokken die een IP hebben op een verkeerde interface. Als je interne netwerk addressen heeft als 10.1.1.1 en er komt een pakketje vanaf IP 10.1.1.2 in je computer via je externe interface, kan je hem beter tegenhouden. Doe je dat niet, dan denkt je computer dat het een pakketje van je netwerk is, dus van mensen die vertrouwd kunnen worden. Dit kan als volgt ingesteld worden:
# echo 1 > /proc/sys/net/ipv4/conf/ppp0/rp_filter
#
Of voor alle interfaces:
# for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
# echo 1 > $f
# done
#
Debian doet dit standaard al, maar bij sommige routers moet dit uitgezet worden omdat ze pakketjes uit rare richtingen horen te krijgen.
Logging is nuttig om meer informatie te krijgen, maar als je firewall hevig gebruikt wordt kan je log wel eens overvol raken. Dit kan zelfs resulteren tot een DoS situatie. Om dit te voorkomen kan je `limit' gebruiken, zie hierboven.
Rusty raad dringend aan om connectie tracking in te stellen. Het maakt de boel iets langzamer, maar het is erg nuttig om de toegang tot je netwerk te bepalen. Als je connectie tracking niet hebt ingebouwd moet je de module `ip_conntrack.o' laden. Als je ingewikkelde protocolen wilt tracken, dan moet je hulp modules laden, zoals `ip_conntrack_ftp.o'. Hier een voorbeeldje van wat je kan doen met connectie tracking:
# iptables -N no-conns-from-ppp0
# iptables -A no-conns-from-ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A no-conns-from-ppp0 -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A no-conns-from-ppp0 -i ppp0 -m limit -j LOG --log-prefix "Bad packet from ppp0:"
# iptables -A no-conns-from-ppp0 -i ! ppp0 -m limit -j LOG --log-prefix "Bad packet not from ppp0:"
# iptables -A no-conns-from-ppp0 -j DROP
# iptables -A INPUT -j no-conns-from-ppp0
# iptables -A FORWARD -j no-conns-from-ppp0
Een goede firewall bouwen is niet het onderwerp van deze HOWTO. Zie daarvoor de Security HOWTO. Een goede tip is altijd zo min mogelijk door te laten.