Deaktivieren Sie alle Dienste, die Sie nicht unbedingt benötigen!
Deinstallieren Sie alles, was zum Arbeiten auf der Maschine nicht ständig gebraucht wird!
Deinstallieren Sie alle Programme mit bekannten Sicherheitslücken, selbst wenn diese gebraucht werden!
Seien Sie stets über Sicherheitslücken informiert!
Spielen Sie Updates sofort nach Erscheinen ein!
Aktualisieren Sie ständig Ihr System, auch wenn keine Lücke bekannt gegeben wurde. Hersteller gehen oftmals von aktuellen Systemen aus.
Lesen Sie Artikel zu folgenden Themen:
syslog
- tcp-wrapper
- Proxies (z.B. Squid, SOCKS)
- Einbruchserkennungssystemen (Intrusion Detection Systems) beispielsweise Tripwire und Snort
- SSL, IPsec und IPv6
(un)sichere Passwörter
- Verschlüsselung
und kombinieren Sie diese Maßnahmen.
Ein Firewall-Rechner ist ein Firewall-Rechner und nichts als ein Firewall-Rechner!
Eine Firewall kann nur so sicher sein, wie die Sicherheitspolitik, die sie realisiert. Investieren Sie also sehr viel Zeit in die Aufstellung einer für Sie sicheren Politik!
Halten Sie sich an das Konzept:
Alles, was nicht ausdrücklich erlaubt wird, ist verboten.
und setzen Sie eine prohibitive Sicherheitspolitik ein. (Policy = DROP für alle Ketten)!
Sicherheit bedeutet Minimalismus, denn
- jeder Schnipsel Code kann einen Fehler enthalten,
- jedes Programm und jede Funktion kann auch für etwas verwendet werden, für das sie eigentlich nicht gedacht war,
- bei zuviel Komplexität schleichen sich Fehler ein, die man nur sehr schwer findet,
- die umfangreiche Funktionalität muss ständig aktualisiert werden und
- Probleme potenzieren sich anstatt einander aufzuheben. (nach Murphy's Gesetz).
Aktivieren Sie Route Verification. Das bedeutet, dass Pakete, die von einer unerwarteten Schnittstelle kommen, verworfen werden oder anders formuliert: Wenn ein Paket mit einer Quelladresse des internen Netzwerkes an einer externen Schnittstelle ankommt, wird es verworfen.
Für die Schnittstelle ppp0 können Sie es folgendermaßen aktivieren:
root@linux # echo 1 > /proc/sys/net/ipv4/conf/ppp0/rp_filter
|
Oder für alle Netzwerkschnittstellen:
# for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
# echo 1 > $f
# done
|
Verwenden Sie Logging nur mit Limit-Option, ansonsten besteht die Gefahr, dass die Log-Files schnell sehr groß werden und überlaufen.
Wenn Sie Sicherheit der Performance vorziehen, sollten Sie Regeln zur Verbindungsverfolgung (connection tracking) aufstellen. Es ist eingewisser Overhead nicht vermeidbar, da meist alle Verbindungen verfolgt werden, aber ein besser kontrollierter Zugang lässt Sie vielleicht etwas besser schlafen.
Beispiel:
root@linux # iptables -N no-conns-from-ppp0
root@linux # iptables -A no-conns-from-ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
root@linux # iptables -A no-conns-from-ppp0 -m state --state NEW -i ! ppp0 -j ACCEPT
root@linux # iptables -A no-conns-from-ppp0 -i ppp0 -m limit -j LOG --log-prefix "Bad packet from ppp0:"
root@linux # iptables -A no-conns-from-ppp0 -i ! ppp0 -m limit -j LOG --log-prefix "Bad packet not from ppp0:"
root@linux # iptables -A no-conns-from-ppp0 -j DROP
|
root@linux # iptables -A INPUT -j no-conns-from-ppp0
root@linux # iptables -A FORWARD -j no-conns-from-ppp0
|
Nochmals: Agieren Sie sehr minimalistisch, umso weniger Sie erlauben, desto weniger Fehler können sich einschleichen und desto weniger müssen Sie auch aktualisieren.
|