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.
|