Skip to content Skip to sidebar Skip to footer

Konfiguration einer lokalen Firewall iptables mit ufw

Wenn du ein Linux-System betreibst wirst du zwangsweise über eine Firewall nachdenken. Absoluter Platzhirsch auf allen Linux-Installationen ist iptables. Wenn du dich mit den komplexen Befehlen von iptables nicht beschäftigen willst, dann könnte ufw eine Alternative für dich sein. Hier zeige ich dir die wichtigsten Befehle für die Konfiguration einer lokalen Firewall ufw.

ufw – Uncomplicated ireall

Mittlerweile verwende ich für die Konfiguration von iptables die Software ufw. Die Konfiguration von ufw ist – im Gegensatz zu iptables – sehr übersichtlich und einfach zu bedienen. Die Installation und Grundfunktion von ufw ist einfach und schnell erledigt:

user@hostsystem: apt install ufw
user@hostsystem: ufw allow ssh
user@hostsystem: ufw enable
Command my disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enable on system startup
user@hostsystem: ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere                  
22 (v6)                    ALLOW IN    Anywhere (v6)     

Mit der vorherigen Minimal-Konfiguration ist die Firewall aktiviert und der Port 22 ist für ssh geöffnet. Deine Konfiguration ist dauerhaft gespeichert und wenn du den Server neustartest wird der Dienst automatisch gestartet.

WICHTIG:

  • Sobald du die Firewall aktivierst werden alle deine eingegeben Befehle (sofern sie syntaktisch richtig sind) sofort übernommen und permanent gespeichert.
  • Die Befehle benötigen Superuser-Rechte, heißt: entweder mit sudo ausführen oder als root-Benutzer

Weitere Konfiguration einer lokalen Firewall ufw

Jetzt können verschiedene weitere Dienste/Ports für die Nutzung des Systems freigeschalten werden.

Zugriff erlauben und Zugriff verbieten

Die beiden wichtigsten Befehle sind ufw allow (um den Zugriff zu erlauben) und ufw deny (um den Zugriff zu verbieten), gefolgt von einem Port oder Dienst und weiteren Konfigurationsmöglichkeiten:

user@hostsystem: ufw allow [http,80]/tcp
user@hostsystem: ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
22 (v6)                    ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)

Mit dem Befehl wurde der Dienst http (Standard-Port 80) für die Kommunikation via TCP freigegeben. Genauso können wir den Port auch sperren:

user@hostsystem: ufw deny 80/tcp
user@hostsystem: ufw status

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere                  
80/tcp                     DENY        Anywhere                  
22 (v6)                    ALLOW       Anywhere (v6)             
80/tcp (v6)                DENY        Anywhere (v6)     

ufw Zugriffsregel löschen

Mit der Zeit kommen immer mehr Regeln zusammen – manche sind veraltet und sollen gelöscht werden. ufw delete ist das Kommando um eine nicht weiter benötigte Zugriffsregel (egal ob erlaubt oder verboten) zu löschen. Hier gibt es 2 Möglichkeiten:

Löschen eines Zugriffs mittels Index

Lasse dir hier erst einmal alle Regel anzeigen. In der ersten Spalte siehst du dann die ID der entsprechenden Regel und kannst diese löschen.
ACHTUNG: Die Nummern verschieben sich durch das Löschen von ID’s – heißt: Löschen von unten nach oben.

user@hostsystem: ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere
[ 2] 3306/tcp                   DENY IN     Anywhere
[ 3] 22 (v6)                    ALLOW IN    Anywhere (v6)
[ 4] 3306/tcp (v6)              DENY IN     Anywhere (v6)

user@hostsystem: ufw delete 4
Deleting:
 deny 3306/tcp
Proceed with operation (y|n)? y
Rule deleted (v6)

user@hostsystem: ufw delete 2
Deleting:
 deny 80/tcp
Proceed with operation (y|n)? y
Rule deleted
user@hostsystem: ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere
[ 2] 22 (v6)                    ALLOW IN    Anywhere (v6)

Löschen einer Regel mit Regelkonfiguration

Solltest du eine Regel nicht mehr benötigen, so kannst du diese einfach löschen. Dazu brauchst du einige Informationen: Dienst/Port und die Zugriffsregel (allow/deny)

user@hostsystem: ufw delete deny 3306
Rule deleted
Rule deleted (v6)

Konfiguration eines Zugriffs für einen dedizierten Netzbereich in ufw

Wenn du einen Netzbereich für den Zugriff freigegeben willst, kannst du das mit folgendem Befehl erreichen:

user@hostsystem: ufw allow from 192.168.178.1/24
WARN: Rule changed after normalization
Rule added

Zugriffsregel auf eine bestimmte Adresse einschränken

Manche Dienste dürfen nur von bestimmten Adressen aufgerufen werden, so kann es möglich sein, dass du den Zugriff standardmäßig geschlossen zu halten willst. Allerdings möchtest du, dass nur für eine IP-Adresse den Zugriff gewährt werden soll. Gleiches Prinzip gilt natürlich auch wenn du den Zugriff verbieten willst.

user@hostsystem: ufw allow from 192.168.178.5 (tcp) to any port 3306
Rule added

Fazit: Ich hoffe ich konnte dich dabei unterstützen, deine Firewall zu konfigurieren. Hast du Fragen oder Anregungen? Lass uns gerne darüber diskutieren.


Foto: unsplash-logoGianpaolo La Paglia

Kommentare anzeigenKommentare schließen

Hinterlasse ein Kommentar