Firewall auf Debian installieren und konfigurieren

Bei einer Debian Standard Installation wird Firewall nicht installiert und damit auch nicht konfiguriert. Auch wenn wir ein Server innerhalb eine Firma einsetzen, sollten wir die Firewall installieren und ein paar Regeln setzen. Mit dem Programm Uncomplicated Firewall (UFW) ist das kein großes Problem ein paar Filter zu definieren. UFW besteht aus kleiner Anzahl von unkomplizierten Befehlen und nutzt iptables zur Konfiguration.

Punkt
Wir installieren das Paket ufw und alle abhängige Pakete, dabei ist auch iptables und firewalld

# apt install ufw
Punkt
Im nächsten Schritt werden die Standard Einstellungen eingerichtet. Ganz genau bedeutet es, vom Server nach Außen ist alles erlaubt, von Außen  zum Server ist vorerst alles blockiert.

# ufw default allow outgoing
# ufw default deny incoming
Punkt
Bevor wir die Firewall aktivieren, sollten wir noch bestimmte Ports öffnen, das sind vor allem Ports für bestimmte Dienste, die auf dem Server laufen. Nehmen wir an, dass auf dem Server die Dienste DNS (Port 53), DHCP (Port 67 und Port 68) und Freeradius (Port 1812) laufen. Aus diesem Grund müssen wir die Port für die Dienste öffnen. Außerdem die Administratoren brauchen ein ssh (Post 22) Zugang.

# ufw allow 22
# ufw allow 67
# ufw allow 68
# ufw allow 53
# ufw allow 1812
Punkt
Mit dem folgenden Befehlen können wir die Firewall aktivieren bzw. nach Bedarf die Regeln deaktivieren.

# ufw enable
# ufw disable
Punkt
Status der Firewall. Der Status wird nur angezeigt, wenn die Firewall aktiv ist.

# ufw status verbose

 

In unserem Fall wird die Asugabe so aussehen.

 

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To Action From
-- ------ ----
22 ALLOW IN Anywhere
67 ALLOW IN Anywhere
68 ALLOW IN Anywhere
53 ALLOW IN Anywhere
1812 ALLOW IN Anywhere
22 (v6) ALLOW IN Anywhere (v6)
67 (v6) ALLOW IN Anywhere (v6)
68 (v6) ALLOW IN Anywhere (v6)
53 (v6) ALLOW IN Anywhere (v6)
1812 (v6) ALLOW IN Anywhere (v6)
Punkt
Die Regeln der Firewall können wir erweitern, weitere Ports öffnen oder bestehende Ports wieder schließen. Jeder Regel bekomm eine Nummer zugewiesen, wird eine Regel gelöscht, bekommt möglicherweise die Regel eine andere Nummer zugewiesen.

# ufw status numbered

 

In unserem Fall würde die Ausgabe so aussehen.

 

Status: active
     To                         Action      From
     --                         ------      ----
[ 1] 22                     ALLOW IN    Anywhere
[ 2] 67                     ALLOW IN    Anywhere
[ 3] 68                     ALLOW IN    Anywhere
[ 4] 53                     ALLOW IN    Anywhere
[ 5] 1812                   ALLOW IN    Anywhere
[ 6] 22 (v6)                ALLOW IN    Anywhere (v6)
[ 7] 67 (v6)                ALLOW IN    Anywhere (v6)
[ 8] 68 (v6)                ALLOW IN    Anywhere (v6)
[ 9] 53 (v6)                ALLOW IN    Anywhere (v6)
[10] 1812 (v6)              ALLOW IN    Anywhere (v6)
Punkt
Wir können auch bestimmte Regel mit ufw delete [Regelnummer] löschen. z.B.

# ufw delete 10
# ufw status numbered
# ufw delete 5

 

In unserem Fall würde die Ausgabe so aussehen.

 

Status: active
     To                         Action      From
     --                         ------      ----
[ 1] 22                     ALLOW IN    Anywhere
[ 2] 67                     ALLOW IN    Anywhere
[ 3] 68                     ALLOW IN    Anywhere
[ 4] 53                     ALLOW IN    Anywhere
[ 5] 22 (v6)                ALLOW IN    Anywhere (v6)
[ 6] 67 (v6)                ALLOW IN    Anywhere (v6)
[ 7] 68 (v6)                ALLOW IN    Anywhere (v6)
[ 8] 53 (v6)                ALLOW IN    Anywhere (v6)
Punkt
Sollten wir ein bedarf haben die Regel von Anfang an wieder zu definieren, können wir dir Firewall deaktivieren und die Regeln reseten.

# ufw disable
# ufw reset
Punkt
Bei setzen der Regeln können wir genauer definieren, z.B. wer darf (von welcher IP-Adresse oder Netz) überhaupt auf die Port des Servers zugreifen

 

Die IP-Adresse 172.16.0.250 darf auf den Server in vollem Umfang zugreifen. Für die IP-Adresse sind alle Ports offen

 

# ufw allow from 172.16.0.250

 

Die IP-Adresse 172.16.0.250 darf auf den Server nur auf Port 22 zugreifen.

 

# ufw allow from 172.16.0.250 to any port 22

 

Die IP-Adresse vom Netz 172.16.0.0/22 dürfen auf den Server auf Port 443 zugreifen. Bei anderen Adressen wir die Verbindung abgelehnt.

 

# ufw allow from 172.16.0.0/22 to any port 443

 

Alle Verbindungen von der IP-Adresse 172.16.0.250 werden abgelehnt.

 

# ufw deny from 172.16.0.250


Alle Verbindungen auf Port 80 (http) werden abgelehnt.

 

# ufw deny http

 

Punkt
Die Regeln kann man immer noch weiter verfeinern.

 

Die IP-Adresse 172.16.0.251 darf auf den Server in vollem Umfang zugreifen. Für die IP-Adresse sind alle Ports offen