ufw (uncomplicated firewall) ist zwar die Standard-Firewall von Ubuntu, aber im Auslieferungszustand bei der Desktop-Version nicht aktiviert. Nach einem
sudo ufw enable
sudo ufw default deny
ist sie aktiv und befolgt folgende Regeln (siehe Ubuntu-Wiki [1]) in Intrepid Ibex:
- Alle loopback-Verbindungen akzeptieren, d.h. vom lokalen Rechner aus kann man auf jeden beliebigen Port zugreifen.
- Alle ausgehenden Verbindungen zulassen.
- Alle eingehenden Verbindungen ablehnen.
- Alle abgelehnten Pakete in die Syslog schreiben (–limit 3/min), also maximal drei Einträge pro Minute.
Ich habe gleich mal den SSH-Zugang freigeschaltet durch ein
sudo ufw allow OpenSSH
Um einzelne Anwendungen/Ports frei zu schalten, habe ich mir noch ein paar zusätzliche Profile im Verzeichnis /etc/ufw/applications.d/ erstellt:
$ cat deluge
[Deluge]
title=Deluge Bittorrent Client
description=Deluge is an open source bittorrent client.
ports=5050,5051/tcp
$ cat vino-server
[vino-server]
title=Vino VNC Server
description=Vino is an open source VNC server
ports=5900/tcp
$ cat exim
[Exim SMTP]
title=Exim Message Transfer Agent
description=Exim is an open source mail transfer agent (MTA) providing services such as SMTP to send e-mails.
ports=25/tcp
$ cat openldap
[OpenLDAP]
title=Server for the Lightweight Directory Access Protocol (LDAP)
description=OpenLDAP is an open source implementation of a Lightweight Directory Access Protocol Server
ports=389/tcp
[OpenLDAP Secure]
title=Secure Server for the Lightweight Directory Access Protocol (LDAPS)
description=OpenLDAP is an open source implementation of a Lightweight Directory Access Protocol Server
ports=636/tcp
$ cat dovecot-managesieve
[Dovecot Managesieve]
title=Dovecot Managesieve Protocol
description=Dovecot Managesieve allows to remotely administer sieve filters
ports=2000/tcp
Danach habe ich VNC, deluge, exim, dovecot imap und imaps, CUPS, Samba, LDAP (wegen Adressbuch) für das lokale Netz freigeschalten mit
sudo ufw allow from 192.168.0.0/16 to any app CUPS
sudo ufw allow from 192.168.0.0/16 to any app Samba
sudo ufw allow from 192.168.0.0/16 to any app "Dovecot IMAP"
sudo ufw allow "Dovecot Secure IMAP"
sudo ufw allow from 192.168.0.0/16 to any app "Dovecot Managesieve"
sudo ufw allow from 192.168.0.0/16 to any app vino-server
sudo ufw allow Deluge
sudo ufw allow from 192.168.0.0/16 to any app "OpenLDAP"
sudo ufw allow from 192.168.0.0/16 to any app "OpenLDAP Secure"
sudo ufw allow from 192.168.0.0/16 to any app "Exim SMTP"
bzw. falls man nicht Exim sondern Postfix einsetzt, welches standardmäßig installiert ist, die letzte Zeile ersetzen mit
sudo ufw allow from 192.168.0.0/16 to any app "Postfix"
sudo ufw allow from 192.168.0.0/16 to any app "Postfix Submission"
Die Regeln werden übrigens in /var/lib/ufw/user.rules gespeichert. Eine Anleitung zur Erstelltung eigener ufw-Regeln [2], findet sich in der Hilfe der Ubuntu Server Edition. Im Ubuntu-Forum sind außerdem einige Beispiele zu ufw [3].
Wenn man wie ich VirtualBox über Proxy ARP [4] auf das Netzwerk zugreifen lässt, sollte man in der Datei /etc/default/ufw in folgender Zeile das DROP auf ACCEPT ändern, da ansonsten die virtuellen Maschinen nur noch Verbindungen zum Host aufbauen können.
# set the default forward policy to ACCEPT or DROP. Please note that if you
# change this you will most likely want to adjust your rules
# Default was DROP
DEFAULT_FORWARD_POLICY="ACCEPT"
Normalerweise sollte nach einem
sudo ufw enable
die Firewall bei jedem Neustart auch aktiviert werden. Falls dies nicht der Fall ist, muss man ggfs. in der Datei /etc/ufw/ufw.conf ENABLED auf yes setzen:
# /etc/ufw/ufw.conf
#
# set to yes to start on boot
ENABLED=yes
Das Einzige, was mir an ufw noch fehlt, ist, dass keine Regeln für Interfaces unterstützt werden (siehe Feature Request [5]), aber vielleicht kommt das ja noch..
Nach der Aktivierung hatte ich außerdem einige unschöne Einträge in meiner Logdatei, die einen Zugriff von meinem Router auf den Port registrierten:
Jan 19 05:36:14 abraxas kernel: [51524.306320] [UFW BLOCK INPUT]: IN=eth1 OUT= MAC=00:11:d8:59:8a:18:00:15:0c:d5:1f:02:08:00 SRC=192.168.178.1 DST=192.168.178.200 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=29386 DF PROTO=TCP SPT=4981 DPT=14013 WINDOW=5840 RES=0x00 SYN URGP=0
Nachforschungen im Internet ergaben, dass es sich um die Kindersicherung der Fritz-Box [6] handelt. Diese lässt sich über das Webinterface deaktivieren, allerdings hören die Portzugriffe erst nach einem Neustart auf.
Das Fazit zu ufw: Wirklich unkompliziert („uncomplicated“) ist ufw nicht [7] – man muss schon wissen, was man macht. Im Vergleich zu iptables ist es aber doch deutlich einfacher zu bedienen und kommt der Regelerstellung auf gängigen Heimnetzerwerkroutern (abgesehen vom command-line syntax) relativ nahe.