Designfragen

Beim Design sicherheitsrelevanter Algorithmen – also auch einer Firewall – gibt es immer zwei diametral entgegengesetzte Ansätze: Beim ersten versucht man, unerwünschte Ereignisse zu erkennen und auszuschalten, und erlaubt alles andere.

Diese Methode ist nicht nur ziemlich weit verbreitet, sondern auch außerordentlich gefährlich: Vergisst man ein unerwünschtes Ereignis, ist es durch die Voreinstellung erlaubt. Das gilt auch für Angriffe, die man zum Zeitpunkt des Firewall-Designs noch gar nicht kennt, und das sind schließlich die eigentlich gefürchteten! (Bekannte Sicherheitslücken sollte man so möglich ohnehin korrigieren.)

Jede sinnvolle und sichere Sicherheitslösung folgt daher dem zweiten Weg: Ein unbekanntes Ereignis ist immer verboten; ein unbekanntes Paket wird nicht angenommen. Alles, was erlaubt ist, muss explizit definiert werden.

Das bringt einen riesigen Nachteil mit sich: Solange eine neu entwickelte Firewall unvollständig oder fehlerhaft ist, funktioniert der Netzwerkzugriff nicht vernünftig. Jedes neue Anwendungsprogramm, das ein neues Netzwerkprotokoll verwendet, muss in der Firewall erst einmal aktiviert werden. Für diese Mühen erhält man jedoch ein recht zuverlässig abgeschirmtes System.

Bei Linux-Firewalls werden diesen beiden Prinzipien durch Policies umgesetzt. Die im Folgenden vorzustellende Lösung verwendet eine DROP-Policy und verwirft somit alle unbekannten Pakete. Firewall-Regeln definieren wir für alle von uns verwendeten Protokolle so, dass die entsprechenden Pakete durch eine ACCEPT-Regel angenommen werden.

Kernel-Tuning

Eine ganze Reihe von Kernel-Parametern beeinflusst das Verhalten Ihres Linux-Systems im Umgang mit IP-Paketen. Streng genommen gehört das zwar nicht zur Firewall-Funktionalität; trotzdem passt es ganz gut hierher.

Diese Variablen sind über das so genannte sysctl-Interface zugänglich: Besondere Dateien in /proc/sys/net/ipv4 zeigen die aktuelle Konfiguration beziehungsweise erlauben Modifikationen. Zum Auslesen der momentan gültigen Einstellungen lassen Sie sich die Dateien mit cat anzeigen. Neue Werte speichern Sie einfach in der entsprechenden Datei ab. Im Allgemeinen aktivieren Sie ein Feature, indem Sie eine 1 in die entsprechende Datei schreiben; 0 schaltet es wieder aus.

Für uns sind folgende Einstellungen besonders wichtig:

conf/*/accept_source_route regelt den Umgang mit Paketen, deren Routing-Weg vom Absender festgelegt wurde. Diese IP-Option ist im Allgemeinen unerwünscht. (Der * steht für die einzelnen Verzeichnisse unterhalb von /proc/sys/net/ipv4/conf. Sie steuern die verschiedenen Netzwerk-Interfaces Ihres Computers und setzen Voreinstellungen. Soll eine Änderung für alle Interfaces gelten, schreiben Sie sie in alle gleichnamigen Dateien.)

  • conf/*/accept_redirects legt fest, ob Linux fremden Systemen die Änderung der eigenen Routing-Tabellen gestattet.
  • icmp_echo_ignore_broadcasts unterbindet die Reaktion auf pings, die an alle Rechner in einem Netzwerk verschickt werden. Einen Schritt weiter geht icmp_echo_ignore_all, das alle ping-Pakete ignoriert. Natürlich ließe sich ein ähnliches Verhalten erreichen, indem man entsprechende Firewall-Regeln definiert.
  • tcp_syncookies schaltet einen Schutzmechanismus ein, der einen Angriff durch unzählige gefälschte Verbindungsanfragen erschwert. * ip_forward entscheidet, ob der Kernel Pakete an andere Rechner weiterleitet oder nur als Endknoten agiert. Diese Option ist für den Aufbau eines privaten LANs mit Linux als Router wichtig.
  • icmp_ratelimit, tcp_fin_timeout, tcp_max_orphans und tcp_max_syn_backlog sind Beispiele für zusätzliche Schutzmechanismen, die in erster Linie Denial-of-Service-Angriffe erschweren, also einem Angreifer die Erschöpfung unserer Systemressourcen verwehren. Das Tuning dieser Parameter kann auch für große Serversysteme hilfreich sein.

In der Firewall könnte man die Kernel-Parameter beispielsweise mit folgendem Fragment setzen:

for i in /proc/sys/net/ipv4/conf/*/{accept_source_route,accept_redirects,send_redirects}; do
  echo 0 >$i
done
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 >/proc/sys/net/ipv4/ip_forward
echo 1 >/proc/sys/net/ipv4/tcp_syncookies

Die Netfilter-Firewall in Linux 2.4

Die folgenden Erklärungen beziehen sich ausdrücklich auf den so genannten Netfilter aus Linux 2.4. Die Kernel der 2.0- und 2.2-Serien benutzen mit IPFW (ipfwadm beziehungsweise ipchains) einen teilweise deutlich anderen Firewall-Mechanismus.

Eine Netfilter-Firewall kann drei verschiedene Tabellen verwenden: filter enthält die eigentlichen Firewall-Regeln; nat kann Absender und Empfänger von Paketen ändern; mangle erlaubt zusätzliche Modifikationen für Spezialzwecke. Praktisch alle für uns interessanten Regeln gehören in die filter-Tabelle. Da diese voreingestellt ist, werden wir sie nicht jedesmal extra angeben.

Innerhalb jeder Tabelle gibt es verschiedene Chains oder Ketten. Je nachdem, woher ein Paket kommt und wohin es geht, wird nur eine davon darauf angewendet. Abbildung 2 zeigt die Chains der filter-Tabelle, die für ein Einzelplatzsystem relevant sind. (Kasten 3 behandelt die Besonderheiten eines lokalen Netzwerks.)

Abbildung 2: Die Firewall-Chains für ein Einzelplatzsystem

Dabei durchlaufen alle Netzwerkpakete, die für den Linux-Rechner bestimmt sind, die Regeln der INPUT-Chain. IP-Pakete, die ein Programm auf dem Linux-Rechner erzeugt hat, müssen die OUTPUT-Chain passieren.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Nachgeladen
    Dem Linux-Paketfilter Iptables fehlt eine einfache Möglichkeit, die Filterregeln nach einem Systemneustart automatisch zu laden. Die lässt sich aber durchaus nachrüsten – sogar auf mehreren Wegen.
  • Iptables-GUIs im Vergleich
    Mit dem richtigen Werkzeug ist das Einrichten einer Desktop-Firewall keine Kunst. Wo die distributionseigenen Tools schwächeln, helfen clevere Alternativen weiter.
  • Grafische Firewall-Administration mit FWBuilder 2.0
    Linux bringt eine leistungsfähige Firewall mit. Sie manuell zu konfigurieren, bringt jedoch selbst Profis ins Schwitzen. Mit dem grafischen Firewall Builder dagegen behalten Sie sogar komplexe Regelwerke bequem im Griff.
  • Iptables-Grundlagen für Desktop-Nutzer
    Nicht jeder Linux-Desktop braucht eine Firewall. Mit grafischen Werkzeugen lässt sie sich aber bei Bedarf im Handumdrehen einrichten.
  • Sicher und zuverlässig
    Funktioniert Ihr Netzwerk wie gewünscht? Ist es sicher? Mit den passenden Werkzeugen überprüfen Sie jeden Aspekt des Netzes und sichern es mit einfachen Maßnahmen gegen den Großteil möglicher Angriffe ab.
Kommentare

Infos zur Publikation

LU 04/2017: SPEZIAL-DISTRIBUTIONEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

WLAN lässt sich nicht einrichten
Werner Hahn, 21.03.2017 14:16, 0 Antworten
Dell Latitude E6510, Ubuntu 16.4, Kabelbox von Telecolumbus. Nach Anklicken des Doppelpfeiles (o...
"Mit Gwenview importieren" funktioniert seit openSuse 42.2 nicht mehr
Wimpy *, 20.03.2017 13:34, 2 Antworten
Bisher konnte ich von Digitalkamera oder SD-Karte oder USB-Stick Fotos mit Gwenview importieren....
Ich habe eine awk Aufgabe und bekomme es nicht so Recht hin
Dennis Hamacher, 10.03.2017 18:27, 1 Antworten
Ich hoffe Ihr könnt mir dabei helfen oder mir zeigen wie der Befehl richtig geschrieben wird. Ich...
Unter Linux Open Suse Leap 42.1 einen Windows Boot/ ISO USB Stick erstellen...
Tim Koetsier, 07.03.2017 15:26, 1 Antworten
Hallo, weiß jemand wie ich oben genanntes Vorhaben in die Tat umsetzen kann ? Wäre echt dankba...
Druckertreiber installieren OpenSuse42.1
Tim Koetsier, 07.03.2017 15:22, 1 Antworten
hallo, kann mir BITTE jemand helfen ich verzweifel so langsam. Habe einen Super Toner von Canon...