Firewall für Anfänger

Aus wiki.archlinux.de

Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


Eine Firewall ist ein Sicherheitskonzept, das es ermöglicht, nur ausgewählte Netzwerkkommunikation zuzulassen; und ist ein wichtiger Teil des Datenschutzes und der Datenintegrität. Häufig wird der Begriff „Firewall“ synonym zu einer einzelnen Schutzanwendung verwendet.

Personal Firewall

Die evtl. von Windows bekannten Personal Firewalls ermöglichen es, entweder nur einzelnen Programmen Zugriff aufs Internet zu gewähren (so genanntes Whitelisting – nur bestimmten Programmen diesen zu verweigern nennt man Blacklisting). Vorteil einer Personal Firewall ist, dass sie oft sehr einfach zu installieren ist, und meist eine grafische Schnittstelle anbietet.

Das größte Problem von Personal Firewalls ist, dass sie in Händen eines unversierten Nutzers oft dazu neigen, mehr Schaden als Nutzen anzurichten. Die ständigen Fragen, wenn ein Systemdienst oder ein Teil eines Programms (Updatefunktionen sind unter Windows oft in einer zweiten Programmdatei), werden lästig, und irgendwann erlaubt der genervte Nutzer jedem Programm Internetzugriff.

Paketfilter

Unter Linux hingegen kommt meist eine Paketfilterfirewall zum Einsatz. Diese analysiert und filtert die Datenpakete der Netzwerkübertragung. Paketfilterfirewalls (üblicher weise wird iptables verwendet) fragt nicht nach. Sie arbeitet einen vorher definierten Regelsatz ab, und entscheidet so, ob Daten übermittelt werden, oder nicht.

Statt dass dem Browser Zugriff auf das Internet gewährt wird, wird Zugriff auf den hierzu üblicher Weise verwendeten Port 80 zugelassen. Auf normalen Systemen reicht es allerdings, statt auch den ausgehenden Datenverkehr zu filtern, nur den am Rechner ankommenden Datenverkehr zu filtern.

Beispiel für ein Desktop–System

Auf einem gewöhnlichen Desktop–System laufen für gewöhnlich keine oder kaum Dienste, die über das Netzwerk erreichbar sein müssen. Das folgende Beispiel–Skript erlaubt lediglich den Zugriff auf SSH und CUPS (Um über das Netzwerk zu drucken).

# Vorhandene Regeln löschen
for table in filter nat mangle
do
	iptables -t $table -F
	iptables -t $table -X
	iptables -t $table -Z
done

# Standardverhalten: Nur ausgehend erlauben
iptables -P INPUT   DROP
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD DROP

Nun folgen die Regeln für eingehende Pakete. Loopback–Traffic und ICMP–Pakete werden generell durchgelassen. Außerdem müssen eingehende Pakete, die zu einer bestehenden Verbindung gehören, erlaubt werden:

# Loopback-Traffic erlauben
iptables -A INPUT -i lo -j ACCEPT

# ICMP-Pakete durchlassen
iptables -A INPUT -p icmp -j ACCEPT

# Eingehende Antworten auf bestehende Verbindungen erlauben
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Zuletzt erlauben wir Zugriff auf die TCP–Ports 22 (SSH) und 631 (CUPS/IPP):

# SSH: tcp/22
iptables -A INPUT -p tcp --dport  22 -j ACCEPT
# CUPS/IPP: tcp/631
iptables -A INPUT -p tcp --dport 631 -j ACCEPT

Um diese Regeln bei jedem Systemstart automatisch zu aktivieren, müssen die Regeln nach /etc/iptables/iptables.rules exportiert werden und der Dienst iptables.service aktiviert werden:

iptables-save > /etc/iptables/iptables.rules
systemctl enable iptables.service

Siehe auch

  • iptables zur Konfiguration des Kerneleigenen Netfilters

Weblinks