So installieren und verwenden Sie die UFW-Firewall unter Linux
Einleitung
UFW, auch bekannt als Uncomplicated Firewall, ist eine Schnittstelle zu iptables und eignet sich besonders gut für hostbasierte Firewalls. UFW bietet eine einfach zu bedienende Oberfläche für Anfänger, die mit Firewall-Konzepten nicht vertraut sind. Es ist das beliebteste Firewall-Tool, das von Ubuntu stammt. Es unterstützt sowohl IPv4 als auch IPv6.
In diesem Tutorial erfahren Sie, wie Sie die UFW-Firewall unter Linux installieren und verwenden.
Anforderungen
- Jede Linux-basierte Distribution, die auf Ihrem System installiert ist
- Einrichtung von Root-Rechten auf Ihrem System
UFW installieren
Ubuntu
Standardmäßig ist UFW in den meisten Ubuntu-basierten Distributionen verfügbar. Wenn es gelöscht wird, können Sie es installieren, indem Sie den folgenden Linux-Befehl ausführen.
apt-get install ufw -y
Debian
Sie können UFW in Debian installieren, indem Sie den folgenden Linux-Befehl ausführen:
apt-get install ufw -y
Centos
Standardmäßig ist UFW im CentOS-Repository nicht verfügbar. Sie müssen also das EPEL-Repository auf Ihrem System installieren. Sie können dies tun, indem Sie den folgenden Linux-Befehl ausführen:
yum install epel-release -y
Sobald das EPEL-Repository installiert ist, können Sie UFW installieren, indem Sie einfach den folgenden Linux-Befehl ausführen:
yum install --enablerepo="epel" ufw -y
Starten Sie nach der Installation von UFW den UFW-Dienst und aktivieren Sie ihn für den Start beim Booten, indem Sie den folgenden Linux-Befehl ausführen.
ufw enable
Überprüfen Sie als Nächstes den Status von UFW mit dem folgenden Linux-Befehl. Die folgende Ausgabe sollte angezeigt werden:
ufw status
Status: active
Sie können die UFW-Firewall auch deaktivieren, indem Sie den folgenden Linux-Befehl ausführen:
ufw disable
Festlegen der UFW-Standardrichtlinie
Standardmäßig ist die UFW-Standardrichtlinie so eingerichtet, dass der gesamte eingehende Datenverkehr blockiert und der gesamte ausgehende Datenverkehr zugelassen wird.
Sie können Ihre eigene Standardrichtlinie mit dem folgenden Linux-Befehl einrichten.
ufw default allow outgoing
ufw default deny incoming
Hinzufügen und Löschen von Firewallregeln
Sie können Regeln für das Zulassen von ein- und ausgehendem Datenverkehr auf zwei Arten hinzufügen: mithilfe der Portnummer oder des Dienstnamens.
Dies ist beispielsweise der Fall, wenn Sie sowohl eingehende als auch ausgehende Verbindungen des HTTP-Dienstes zulassen möchten. Führen Sie dann den folgenden Linux-Befehl mit dem Dienstnamen aus.
ufw allow http
Oder führen Sie den folgenden Befehl mit der Portnummer aus:
ufw allow 80
Wenn Sie Pakete basierend auf TCP oder UDP filtern möchten, führen Sie den folgenden Befehl aus:
ufw allow 80/tcp
ufw allow 21/udp
Sie können den Status der hinzugefügten Regeln mit dem folgenden Linux-Befehl überprüfen.
ufw status verbose
Die folgende Ausgabe sollte angezeigt werden:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
80/tcp ALLOW IN Anywhere
21/udp ALLOW IN Anywhere
80/tcp (v6) ALLOW IN Anywhere (v6)
21/udp (v6) ALLOW IN Anywhere (v6)
Sie können auch jederzeit ein- und ausgehenden Datenverkehr mit den folgenden Befehlen ablehnen:
ufw deny 80
ufw deny 21
Wenn Sie zulässige Regeln für HTTP löschen möchten, stellen Sie der ursprünglichen Regel einfach das Präfix delete voran, wie unten gezeigt:
ufw delete allow http
ufw delete deny 21
Erweiterte UFW-Regeln
Sie können auch eine bestimmte IP-Adresse hinzufügen, um den Zugriff auf alle Dienste zu erlauben oder zu verweigern. Führen Sie den folgenden Befehl aus, um der IP 192.168.0.200 den Zugriff auf alle Dienste auf dem Server zu ermöglichen:
ufw allow from 192.168.0.200
So verweigern Sie der IP 192.168.0.200 den Zugriff auf alle Dienste auf dem Server:
ufw deny from 192.168.0.200
Sie können den Bereich der IP-Adresse in UFW zulassen. Führen Sie den folgenden Befehl aus, um alle Verbindungen von IP 192.168.1.1 bis 192.168.1.254 zuzulassen:
ufw allow from 192.168.1.0/24
Führen Sie den folgenden Linux-Befehl aus, um der IP-Adresse 192.168.1.200 den Zugriff auf Port 80 über TCP zu ermöglichen:
ufw allow from 192.168.1.200 to any port 80 proto tcp
Um den Zugriff auf den TCP- und UDP-Portbereich von 2000 bis 3000 zu ermöglichen, führen Sie den folgenden Linux-Befehl aus:
ufw allow 2000:3000/tcp
ufw allow 2000:3000/udp
Wenn Sie den Zugriff auf Port 22 von IP 192.168.0.4 und 192.168.0.10 blockieren, aber allen anderen IP-Adressen den Zugriff auf Port 22 erlauben möchten, führen Sie den folgenden Befehl aus:
ufw deny from 192.168.0.4 to any port 22
ufw deny from 192.168.0.10 to any port 22
ufw allow from 192.168.0.0/24 to any port 22
Um HTTP-Datenverkehr über die Netzwerkschnittstelle eth0 zuzulassen, führen Sie den folgenden Linux-Befehl aus:
ufw allow in on eth0 to any port 80
Standardmäßig lässt UFW Ping-Anfragen zu. Wenn Sie eine Ping-Anfrage ablehnen möchten, müssen Sie die Datei /etc/ufw/before.rules bearbeiten:
nano /etc/ufw/before.rules
Entfernen Sie die folgenden Zeilen:
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
Speichern Sie die Datei, wenn Sie fertig sind.
Wenn Sie jemals UFW zurücksetzen und alle Ihre Regeln entfernen müssen, können Sie dies über den folgenden Linux-Befehl tun.
ufw reset
Konfigurieren von NAT mit UFW
Wenn Sie die Verbindungen von der externen Schnittstelle zur internen Schnittstelle mit UFW. Dann können Sie dies tun, indem Sie die Dateien /etc/default/ufw und /etc/ufw/before.rules bearbeiten.
Öffnen Sie zunächst die Datei /etc/default/ufw mit dem Nano-Editor:
nano /etc/default/ufw
Ändern Sie die folgende Zeile:
DEFAULT_FORWARD_POLICY="ACCEPT"
Als nächstes müssen Sie auch die IPv4-Weiterleitung zulassen. Sie können dies tun, indem Sie die Datei /etc/ufw/sysctl.conf bearbeiten:
nano /etc/ufw/sysctl.conf
Ändern Sie die folgende Zeile:
net/ipv4/ip_forward=1
Als Nächstes müssen Sie NAT zur Konfigurationsdatei von ufw hinzufügen. Sie können dies tun, indem Sie die Datei /etc/ufw/before.rules bearbeiten:
nano /etc/ufw/before.rules
Fügen Sie die folgenden Zeilen direkt vor den Filterregeln ein:
NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
Forward traffic through eth0 - Change to match you out-interface
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
don't delete the 'COMMIT' line or these nat table rules won't
be processed
COMMIT
Save the file when you are finished. Then restart UFW with the following linux command:
ufw disable
ufw enable
Konfigurieren der Portweiterleitung mit UFW
Wenn Sie Datenverkehr von Public IP weiterleiten möchten, z. B. 150.129.148.155 Port 80 und 443 zu einem anderen internen Server mit der IP-Adresse 192.168.1.120. Dann können Sie dies tun, indem Sie /etc/default/before.rules bearbeiten:
nano /etc/default/before.rules
Ändern Sie die Datei wie unten gezeigt:
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -d 150.129.148.155 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.120:80
-A PREROUTING -i eth0 -d 150.129.148.155 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.120:443
-A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
Starten Sie anschließend UFW mit dem folgenden Befehl neu:
ufw disable
ufw enable
Als nächstes müssen Sie auch die Ports 80 und 443 zulassen. Führen Sie dazu den folgenden Befehl aus:
ufw allow proto tcp from any to 150.129.148.155 port 80
ufw allow proto tcp from any to 150.129.148.155 port 443