UFW verstehen und einrichten
Vorwort
Mir geht es nicht darum UFW bis ins Detail abzubilden, vielmehr ein Nachschlagewerk zu erstellen in dem man bei Bedenken schnell und übersichtlich suchen kann.
Konfiguration
Nachfolgende Commands erlauben beispielhaft SSH Traffic auf Port 22 via TCP.
sudo ufw allow ssh comment 'SSH Server'
sudo ufw allow 22/tcp comment 'SSH Server'
UFW Defaults
Standardmäßig allen eingehenden Traffic blockieren
sudo ufw default deny incoming
HINWEIS: UFW starten, bitte stellt sicher, dass ihr euch nicht selbst aussperrt, SSH Zugang sollte als Regel bereits angelegt sein!
sudo ufw enable
IP's sperren
Mit nachstehendem Command kann eine IP, aber auch ein ganzes Subnet gesperrt werden:
sudo ufw deny from 123.123.123.123 comment 'Reason for single IP'
sudo ufw deny from 123.0.0.0/8 comment 'Reason for Subnet'
IP's erlauben
Mit nachstehendem Command kann eine IP oder ein Subnet zum Zugriff berechtigt werden:
sudo ufw allow from 123.123.123.123 comment 'Reason for single IP'
sudo ufw allow from 123.0.0.0/8 comment 'Reason for Subnet'
Portranges erlauben
Natürlich ist es auch möglich eine Reihe an Ports auf einmal zu öffnen, wenn es eine Anwendung erfordert:
Ports 8000 bis 9000 mit TCP erlauben
sudo ufw allow 8000:9000/tcp comment 'Application XY'
Ports 8000 bis 9000 mit UDP erlauben
sudo ufw allow 8000:9000/udp comment 'Application XY'
Status der UFW ausgeben Der Output könnte dann wie folgt aussehen:
sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
51820/udp ALLOW Anywhere
80,443/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
51820/udp (v6) ALLOW Anywhere (v6)
Regeln löschen
Zuerst bestehende Regeln nummeriert ausgeben:
sudo ufw status numbered
Anschließend die passende Nummer notieren und im Folgecommand ersetzen:
sudo ufw delete <Nummer>
Firewall Einstellungen
Starten / Stoppen / Status von UFW ausgeben lassen
sudo ufw {start|stop|status}
Firewall neu laden - Nützlich nach dem Hinzufügen / Editieren von Regeln
sudo ufw reload
UFW zurücksetzen
sudo ufw reset
Anwendungen
Dienste erlauben
Mit dem Command ufw app list können installierte Anwendungen gelistet werden, die ein Profil für UFW mitbringen.
Alternativ kann der Port (mit entsprechendem Protokoll) ebenso per Hand freigegeben werden.
Webserver
Webserver laufen für gewöhnlich auf den Ports 80 und 443 jeweils via TCP. Dieser Traffic kann über folgende Commands erlaubt werden:
Webtraffic von allen IPs zulassen
sudo ufw allow proto tcp from any to any port 80,443 comment 'Webserver'
Webtraffic nur von bestimmten IPs zulassen
sudo ufw allow proto tcp from 123.123.123.123 to any port 80,443 comment 'Restricted Access'
MySQL / MariaDB
Zugang zum lokalen Datenbankserver vom LAN erlauben, hierbei habe ich das gesamte 10.0.0.0/8 Subnet angegeben, dies kann enstprechend eingegrenzt werden.
sudo ufw allow from 10.0.0.0/8 to any port 3306 comment 'Datenbankserver XY'
Verkehr auf bestimmte Interfaces beschränken Port 22 / TCP auf Interface eth0 erlauben:
sudo ufw allow in on eth0 to any port 22