Linux mit der UFW (Uncomplicated FireWall) absichern
Installation
UFW installieren:
apt install ufw
IPv6 bei Bedarf deaktivieren
Editieren der Datei /etc/default/ufw:
nano /etc/default/ufw
Um IPv6 zu deaktivieren, ändern der Zeile IPV6=yes auf IPV6=no:
# /etc/default/ufw
#
# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
IPV6=no
Aufrufen der Hilfe
ufw help
Usage: ufw COMMAND
Commands:
enable enables the firewall
disable disables the firewall
default ARG set default policy
logging LEVEL set logging to LEVEL
allow ARGS add allow rule
deny ARGS add deny rule
reject ARGS add reject rule
limit ARGS add limit rule
delete RULE|NUM delete RULE
insert NUM RULE insert RULE at NUM
route RULE add route RULE
route delete RULE|NUM delete route RULE
route insert NUM RULE insert route RULE at NUM
reload reload firewall
reset reset firewall
status show firewall status
status numbered show firewall status as numbered list of RULES
status verbose show verbose firewall status
show ARG show firewall report
version display version information
Application profile commands:
app list list application profiles
app info PROFILE show information on PROFILE
app update PROFILE update PROFILE
app default ARG set default application policy
Vorgefertigte Profile
Die ufw hat vorgefertigte Profile für verschiedene Dienste:
ufw app list
Available applications:
AIM
Bonjour
CIFS
DNS
Deluge
IMAP
IMAPS
IPP
KTorrent
Kerberos Admin
Kerberos Full
Kerberos KDC
Kerberos Password
LDAP
LDAPS
LPD
MSN
MSN SSL
Mail submission
NFS
OpenSSH
POP3
POP3S
PeopleNearby
SMTP
SSH
Socks
Telnet
Transmission
Transparent Proxy
VNC
WWW
WWW Cache
WWW Full
WWW Secure
XMPP
Yahoo
qBittorrent
svnserve
Die Dienste verwenden die Standardports, so z.B. Port 22 für SSH, Port 80 für WWW oder Port 443 für WWW Secure.
Weitere Informationen bezüglich der Ports finden sich in den Konfigurationsdateien im Verzeichnis /etc/ufw/applications.d:
ls -al /etc/ufw/applications.d
insgesamt 52
drwxr-xr-x 2 root root 4096 Jun 7 13:58 .
drwxr-xr-x 3 root root 4096 Feb 7 2018 ..
-rw-r--r-- 1 root root 145 Nov 18 2017 openssh-server
-rw-r--r-- 1 root root 353 Feb 18 2016 ufw-bittorent
-rw-r--r-- 1 root root 627 Feb 18 2016 ufw-chat
-rw-r--r-- 1 root root 513 Feb 18 2016 ufw-directoryserver
-rw-r--r-- 1 root root 89 Feb 18 2016 ufw-dnsserver
-rw-r--r-- 1 root root 358 Feb 18 2016 ufw-fileserver
-rw-r--r-- 1 root root 212 Feb 18 2016 ufw-loginserver
-rw-r--r-- 1 root root 524 Feb 18 2016 ufw-mailserver
-rw-r--r-- 1 root root 131 Feb 18 2016 ufw-printserver
-rw-r--r-- 1 root root 155 Feb 18 2016 ufw-proxyserver
-rw-r--r-- 1 root root 320 Feb 18 2016 ufw-webserver
cat ufw-webserver
[WWW]
title=Web Server
description=Web server
ports=80/tcp
[WWW Secure]
title=Web Server (HTTPS)
description=Web Server (HTTPS)
ports=443/tcp
[WWW Full]
title=Web Server (HTTP,HTTPS)
description=Web Server (HTTP,HTTPS)
ports=80,443/tcp
[WWW Cache]
title=Web Server (8080)
description=Web Server (8080)
ports=8080/tcp
Die Konfigurationsdateien in diesem Verzeichnis können durch eigene Einträge ergänzt oder es können auch neue Konfigurationsdateien erstellt werden.
Regeln hinzufügen
In diesem Beispiel wird der SSH-Zugang für das lokale Netzwerk (192.168.1.0/24) und ein Webzugriff für jede IP eingerichtet, IPv6 wurde deaktiviert:
ufw allow from 192.168.1.0/24 to any app SSH
ufw allow 'WWW Full'
Die Firewall starten:
ufw enable
Die Durchführung mit ‚y‘ bestätigen:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Status abfragen
ufw status
Status: active
To Action From
-- ------ ----
SSH ALLOW 192.168.1.0/24
WWW Full ALLOW Anywhere
Einen detailierten Status mit Angabe der Ports ausgeben:
ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (SSH) ALLOW IN 192.168.1.0/24
80,443/tcp (WWW Full) ALLOW IN Anywhere
Löschen von Regeln
Ausgabe des Status mit Nummern:
ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] SSH ALLOW IN 192.168.1.0/24
[ 2] WWW Full ALLOW IN Anywhere
Löschen der Regel über die Nummer:
ufw delete 2
Beispiele
Ausgehende Pakete zu 192.168.1.1 blocken:
ufw deny out from any to 192.168.1.1
Eingehende Pakete auf Port 12345 zulassen:
ufw allow to any port 12345
Eingehende UDP Pakete auf Port 54321 zulassen:
ufw allow proto udp to any port 54321
Eine neue Regel an erster Postition einfügen:
ufw prepend allow ...
Eine neue Regel an der Position 2 einfügen:
ufw insert 2 allow ...