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
 

Ähnliche Artikel

  • 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.
  • Feuerfest
    Steht dem PC das Tor zum Internet offen, sollte man einen Wächter engagieren, der unerwünschte Gäste draußen hält. Iptables ist solch ein qualifizierter Türsteher.
Kommentare

Infos zur Publikation

title_2014_09

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

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...