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

https://webmin.com/download/

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

alt text

Webmin ist danach erreichbar unter: https://10.139.0.125:10000

Das Anmeldeproblem wurde durch das Aendern des Webmin-Passworts behoben:

alt text

Erlauben Sie Pings nur von einem Client

  • Action to take: Allow
  • From: eigene IP-Adresse, auslesbar mit ip addr show, bei mir 172.17.0.105
  • Protocol: ICMP

alt textalt text

Danach alle anderen Pings blockieren:

alt text Wichtig: Apply Configuration ausfuehren.

alt text

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

alt text

Lassen Sie sich die aktuelle Konfiguration anzeigen

Anzeige in der Shell:

sudo iptables -L -n -v

alt text

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) alt textalt text

Jetzt werden Pings mit mehr als 100 Byte geloggt und danach verworfen.

Test:

ping -s 101 10.139.0.125

alt text

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.

Navigation