ufw - Ubuntu Linux-Firewall
Regelbeispiele
Freigeben eines Ports (nur TCP):
sudo ufw allow 110/tcp
Freigeben des Zugriffs auf einen Port von einer bestimmten IP:
sudo ufw allow proto tcp from 1.2.3.4 to any port 4949
Erlauben des UDP-Ports 9987:
sudo ufw allow proto udp to any port 9987
Eine bestimmte IP komplett sperren:
sudo ufw insert 1 deny from 1.2.3.4 to any
Übersicht aller Regeln
Eine Übersicht gibt es mit ufw verbose
:
$ sudo ufw verbose
Status: Aktiv
Zu Aktion Von
-- ------ ---
Apache ALLOW Anywhere
Apache (v6) ALLOW Anywhere (v6)
Gezielt Regeln entfernen
Um gezielt eine Regel zu entfernen, sollte zurerst eine nummerierte Liste angezeigt werden und dann ganz spezifisch die jeweilige Regel gelöscht werden:
$ sudo ufw status numbered
Status: Aktiv
Zu Aktion Von
-- ------ ---
[1] Apache ALLOW IN Anywhere
[2] Anywhere DENY IN 1.2.3.4
[3] Apache (v6) ALLOW IN Anywhere (v6)
$ sudo ufw delete 2
Wird gelöscht:
deny from 1.2.3.4
Fortfahren (j|n)? j
Regel gelöscht
Application-Profiles
Ubuntu liefert einige Application-Profiles mit, z.B. "Apache". Wir können aber auch unsere eigenen machen, was die Übersichtlichkeit
erhöht. So sieht ein Profil aus (/etc/ufw/applications.d/test-sshd.profile
):
[test-sshd]
title=test-sshd
description=SSH-Server auf Port 1234
ports=1234/tcp
Aktiviert wird das so:
sudo ufw allow test-sshd
bzw. bei SSH bietet sich die eingebaute Limitierung an (siehe Man-Page):
sudo ufw limit test-sshd
Komplizierte Regeln per Application Profiles lösen
Kompliziertere Regeln können so auch einfach eingebaut werden. Hier das Beispiel eines TS-Servers mit verschiedenen Ports. Dabei sind die meisten Ports per UDP von überall erreichbar, die Verwaltung per telnet allerdings nur von wenigen IPs. Dazu machen wir zwei Profiles und schalten die entsprechend frei:
$ cat test-ts3.profile
[test-ts3]
title=test-ts3
description=Ports des TS3-Servers
ports=9987:9992/udp|9999:10000/udp|30033/tcp
[test-ts3-telnet]
title=test-ts3-telnet
decription=telnet-Zugang zum TS3-Server fuer die Administration
ports=10011/tcp
Und dann freischalten:
sudo ufw allow test-ts3
Die spezifischen IPs laufen dann so:
sudo ufw allow from 1.2.3.4 to any app test-ts3-telnet
sudo ufw allow from 2a01:1:2:3::4 to any app test-ts3-telnet
Nach eventuellen Änderungen am Profil muss es neu eingelesen werden:
sudo ufw app update test-ts3
fail2ban-Anpassung
Damit fail2ban einfach ufw nutzt, müssen ein paar Anpassungen gemacht werden:
Anlegen einer Datei /etc/fail2ban/jail.local
. Diese enthält Überschreibungen der Standardkonfiguration von
fail2ban (so werden auch Updates überlebt). Hier ein Beispiel für SSH:
[ssh]
banaction=ufw-ssh
port=1234
Anlegen einer Datei /etc/fail2ban/action.d/ufw-ssh.conf
. Hierbei muss der Name der banaction des vorherigen
Abschnitts entsprechen. Dort legen wir nun fest, welche Anweisung von fail2ban ausgeführt wird. Die Datei könnte so aussehen:
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ufw insert 1 deny from <ip> to any app test-sshd
actionunban = ufw delete deny from <ip> to any app test-sshd
Wenn logcheck installiert ist, sollten entsprechende Einträge darin auftauchen.