Firewall
Eine Firewall kontrolliert die ein- und ausgehenden Pakete und schützt das lokale Netzwerk gegen Angriffe aus dem Internet durch Filterung der Pakete anhand eines Regelwerks.Basis für die Filterung sind die IP-Adressen, die Ports und das Protokoll (TCP, UDP, ICMP) der ein- und ausgehenden Pakete. Die Firewall kann Pakete akzeptieren (ACCEPT), zurückweisen (REJECT) oder einfach unter den Tisch fallen lassen (DROP).
Die Firewall kann den Inhalt des Pakets nicht unbedingt lesen. Eindeutig ist aber
- Die IP-Adresse des Senders
- Die IP-Adresse des Empfängers
- Den Port des Senders
- Den Port des Absenders
Wenn ein Browser einen Webserver ansteuert, verbindet er sich mit dem Port 80 unter der IP-Adresse des Servers. Um den Einbruch von außen zu verhindern, kann die Firewall prüfen, ob ein Paket als Ziel den Port 80 verwendet und die Ziel-IP-Adresse im lokalen Netzwerk liegt. Ein solches Paket würde also nicht weitergeleitet.
Will dagegen ein Mitarbeiter im Internet surfen, ist der Zielport auch 80, die Zieladresse befindet sich aber außerhalb des lokalen Netzwerks und wird darum nicht blockiert. Die Antwort des Servers wendet sich an die Portnummer des Absenders im lokalen Netzwerk, die nicht 80 ist, da es ein Client ist. Im Absenderport trägt der Server zwar eine 80, aber die wird nicht blockiert. Die Regeln werden mit dem Befehl iptables gesetzt. Es folgt in Form einer Option die Aktion und in weiteren Argumenten, weitere Parameter.
iptables-Regelwerk
Spielen wir durch, dass Pakete an den internen Mailserver mit dem Port 25 erlaubt werden sollen, alles andere aber nicht. Bevor Regeln angelegt werden, sollten alle Regeln gelöscht werden. Dies erreicht der folgende Befehl:iptables -FNun ist alle Kommunikation unterbunden. Der folgende Befehl akzeptiert alle eingehenden Pakete an den Port 25 im lokalen Netzwerk.
iptables -A INPUT -p tcp --dport 25 -j ACCEPTZum Abschluss der Regel werden alle anderen Pakete von außen fallengelassen.
iptables -A INPUT -j DROPMit dem Befehl iptables -L wird die aktuelle Regeltabelle angezeigt.
Umleiten des Ports
Umleiten von HTTP-Standardport auf Port 8080 bzw. HTTPS-standardport 443 auf 8181:iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8181
Sichern der iptables-Regeln
Die erstellten Regeln stehen im Speicher und werden einen Reboot nicht überleben. Darum müssen die Regeln gesichert werden.iptables-save -c > /etc/iptables.rulesSollen die Regeln wieder geladen werden, verwendet man den Befehl iptables-restore:
iptables-restore < /etc/iptables.rulesDamit das automatisch beim Booten geschieht, muss der Befehl in die Startup-Skripte von init.d bzw. systemd eingetragen werden.