Das Titelthema im ADMIN 04/14 "Vernetzt speichern" sind Netzwerkdateisysteme, etwa Samba 4, verteilter Storage mit Ceph & GlusterFS und der Unix-Klassiker ... (mehr)

Anti-Spoofing

Um zu verhindern, dass ein Angreifer eine interne Adresse nutzt, um aus dem Internet auf bestimmte Systeme zugreifen zu können, benötigen Sie Anti-Spoofing-Maßnahmen. Hierzu gibt es mehrere Ansätze. Eine Möglichkeit, die »iptables« und »ip6tables« bieten, ist die Beschränkung der Regeln auf ein- und ausgehende Interfaces. Damit kann verhindert werden, dass eine interne Absender-Adresse über ein anderes Interface hereinkommt als das LAN-Interface. Eine andere Möglichkeit stellt das explizite Verwerfen von Traffic dar, der aus dem Internet kommt und bestimmte Adressbereiche umfasst, die niemals über das Internet-Interface eingehen dürfen. Die beiden Ansätze schließen sich nicht gegenseitig aus, sondern ergänzen sich eher.

An dieser Stelle können Sie einige Adressbereiche definieren, die verworfen werden sollten, wenn sie über das externe Interface als Absender-Adresse eintreffen. Hierzu zählen insbesondere die Loopback-Adresse »::1« und die Unique Local-Adressen »FC00::/7« Im Ergebnis können Sie folgende Anti-Spoofing-Regeln definieren:

# Antispoofing
ip6tables -A INPUT ! -i lo -s ::1/128 -j DROP
ip6tables -A INPUT -i $WAN_IF -s FC00::/7 -j DROP
ip6tables -A FORWARD -s ::1/128 -j DROP
ip6tables -A FORWARD -i $WAN_IF -s FC00::/7 -j DROP

Wie Sie sehen, wurde die Loopback-Regel mit dem Ausrufezeichen negiert. Die nachfolgende Bedingung darf nicht erfüllt sein, damit die Regel greift. In diesem Fall werden alle Pakete geblockt, die eine Absender-Adresse »::1/128« haben und nicht über die Loopback-Schnittstelle eingehen. Die Unique Local-Adressen könnten im internen Netzbereich, dem LAN, theoretisch vorkommen. Daher grenzen Sie den Filter dafür auf Pakete ein, die über das WAN-Interface eintreffen. Streng genommen müsste man generell auch die ausgehenden Pakete in der OUTPUT-Chain filtern, aber dies ist sekundär, solange die Firewall selbst nicht kompromittiert wurde.

Hinweis: Sie sollten zwischenzeitlich Ihr Firewall-Skript immer einmal abspeichern, zur Ausführung bringen und das Ergebnis überprüfen. Mit »ip6tables -v -L« können Sie das Regelwerk überprüfen (Abbildung 4).

Abbildung 4: Hiermit erlaubt die Firewall lokalen Verkehr, blockiert aber alles andere.

Tunnel-Traffic

Verfügen Sie über eine native IPv6-Anbindung, benötigen die internen Systeme keine Tunnel für IPv6-Kommunikation. In diesem Fall können Sie die bekannten Tunnelpräfixe für 6to4 und Teredo blocken: »2002::/16« und »2001:0::/32« . Dabei ergeben sich folgende Regeln:

# Tunnel-Praefixe blocken
ip6tables -A INPUT -s 2002::/16 -j DROP
ip6tables -A INPUT -s 2001:0::/32 -j DROP
ip6tables -A FORWARD -s 2002::/16 -jDROP
ip6tables -A FORWARD -s 2001:0::/32 -j DROP

Hierbei ist jedoch noch ein wichtiger Punkt zu beachten: IPv6-Pakete, die in IPv4 getunnelt werden, sind zum Teil von außen nicht direkt sichtbar, da ihnen ein IPv4-Header vorangeht. Allerdings enthält das Protocol-Feld des IPv4-Headers den Wert 41, der IPv6-Tunneltraffic anzeigt. Daher können Sie in der Firewall diesen Traffic abfangen, allerdings in der IPv4-Firewall, also mit »iptables« , nicht mit »ip6tables« . Die entsprechende Regel für getunnelten Traffic lautet dort:

# IPv6 in IPv4 blocken
iptables -A INPUT -p 41 -j DROP
iptables -A FORWARD -p 41 -j DROP

Bis jetzt ist die Firewall so eingestellt, dass sie alles Mögliche blockiert. Jetzt soll das Firewall-Regelwerk um den erlaubten Traffic erweitert werden. Hierbei beginnen wir mit der Kommunikation, die für die Administration der Firewall selbst notwendig ist, ergo eingehenden Traffic.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2020