Firewall und Application Gateway
Firewall iptables
Beschreiben Sie die Funktion von Paketfiltern (allgemein) und iptables (speziell)
Ein Paketfilter kontrolliert den Netzwerkverkehr anhand von Regeln auf Paketebene (z. B. Quelle, Ziel, Protokoll und Port). Je nach definierter Richtlinie werden Pakete erlaubt, verworfen oder protokolliert. Dadurch kann unerwünschter Verkehr blockiert und der Zugriff auf Dienste gezielt eingeschränkt werden.
iptables ist unter Linux ein Werkzeug zur Konfiguration der Netfilter-Firewall im Kernel. Regeln werden in Ketten (z. B. INPUT, OUTPUT, FORWARD) organisiert und der Reihe nach ausgewertet. Typische Aktionen sind ACCEPT, DROP, REJECT oder LOG. Damit lassen sich Host-Firewalls aufbauen, um nur bestimmte Clients, Protokolle oder Paketgrößen zuzulassen.
Installieren Sie webmin. (Konfigurieren Sie die Firewall, dass nur ein PC auf webmin zugreifen kann)
sudo apt update
curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sudo sh webmin-setup-repo.sh
sudo apt-get install webmin --install-recommends

Webmin ist danach erreichbar unter: https://10.139.0.125:10000
Das Anmeldeproblem wurde durch das Aendern des Webmin-Passworts behoben:

Erlauben Sie Pings nur von einem Client
- Action to take: Allow
- From: eigene IP-Adresse, auslesbar mit
ip addr show, bei mir172.17.0.105 - Protocol: ICMP


Danach alle anderen Pings blockieren:
Wichtig: Apply Configuration ausfuehren.

Jetzt werden externe Pings geblockt, aber die eigenen Pings funktionieren weiterhin:

Lassen Sie sich die aktuelle Konfiguration anzeigen
Anzeige in der Shell:
sudo iptables -L -n -v

Loggen Sie diese Pakete (Prefix Possible DoS Attack!) und verwerfen Sie sie danach:
mehr als 10 Pings pro Minute
In Webmin war die gewünschte Regel in dieser Form nicht direkt umsetzbar. Daher wurde sie per iptables in der Shell ergänzt:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 10/minute --limit-burst 10 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j LOG --log-prefix "Possible DoS Attack! "
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
Ergebnis: Bis zu 10 Echo-Requests pro Minute werden akzeptiert, darüber hinaus werden sie mit Prefix Possible DoS Attack! geloggt und verworfen.
Pings mit mehr als 100 Byte Größe
- Create Rule
- Action to take: Log and Drop
- From: Any
- extra options: Packet length größer als 100 Byte (
-m length --length 101:65535)

Jetzt werden Pings mit mehr als 100 Byte geloggt und danach verworfen.
Test:
ping -s 101 10.139.0.125

Relevante Logs anzeigen:
sudo tail -f /var/log/syslog | grep "Possible DoS Attack"
Ergebnis
Die Firewall-Regeln wurden erfolgreich umgesetzt und getestet:
- Zugriff auf Webmin ist auf den gewünschten Client eingeschränkt.
- ICMP ist nur für den erlaubten Client möglich.
- Auffällige ICMP-Pakete (zu hohe Rate bzw. zu große Paketgröße) werden geloggt und verworfen.
Damit wurde die Angriffsfläche reduziert und eine bessere Nachvollziehbarkeit durch Logging erreicht.