Debian-Server mit der unkomplizierten Firewall ufw absichern

Zwischen dem Sperren des Root-Zugangs für SSH und dem Installieren des ersten Spieleservers musste ich eine Firewall einrichten. Ich bin noch kein Firewall-Experte, weswegen ihr genau überlegen solltet, ob die folgende Anleitung euren Ansprüchen genügt. Fakt ist aber, dass ich damit momentan meinen Spieleserver mit Debian schütze und ich damit bisher zufrieden sein kann. 😉
Die Errichtung einer Barriere mit Hilfe von netfilter und iptables unterstützen heute viele Werkzeuge. Ich hatte mir ufw und arno-iptables-firewall als mögliche Kandidaten ausgesucht und mich dann für die "unkomplizierte Firewall" entschieden.
Ursprünglich von Ubuntu entwickelt bietet ufw eine einfache Möglichkeit nur die Dienste freizugeben, die tatsächlich öffentlich verfügbar sein sollen.

Installation

aptitude install ufw

Konfiguration

ufw enable


Aktiviert die Firewall. Bestehende SSH-Verbindungen können unter Umständen getrennt werden. Standardmäßig werden eingehende Verbindungen geblockt und ausgehende Verbindungen erlaubt. Bevor man die Firewall aktiviert, kann man z.B. mit

ufw allow proto tcp from any to any port 22


explizit Port 22 für den SSH-Zugang freigeben.

ufw allow 44443/tcp


In der vergangenen Erklärung konnte man sich über Port 44443 per SSH einloggen, also muss zuerst dieser Port mit allow freigeschaltet werden. Dabei lässt sich mit /udp oder /tcp die Erlaubnis auf bestimmte Protokolle eingrenzen oder ohne auf beide ausdehnen.

ufw limit 44443/tcp


Noch mehr Sicherheit bietet die Limit-Funktion von ufw, mit der die Anzahl von eingehenden Verbindungen pro IP begrenzt wird, wodurch Brute-Force-Attacken deutlich erschwert werden.

ufw default deny


Im Prinzip der wichtigste Schritt, da dadurch standardmäßig alle eingehenden Verbindungen abgewiesen werden. (Genauer, jedes eingehende Packet wird kommentarlos verworfen. DROP)

ufw status verbose


Zeigt den Status der Firewall an. Oder einfach nur ufw status.

ufw allow 27960/udp


Gibt den UDP Port 27960 für OpenArena frei.

ufw allow 40000:40009/udp


Gibt die Ports von 40000 bis 40009 für UDP frei (XPilot-ng)

ufw allow http


Eine andere Schreibweise um Standard-Port 80 für den Webserver freizugeben

ufw logging on und ufw logging medium


Der erste Befehl schaltet die Logfunktion der Firewall ein (standardmäßig auf niedrig). Weiterhin gibt es noch medium, high und full.

ufw delete allow 44443/tcp


Mit der Delete-Funktion lassen sich Regeln im laufenden Betrieb auch wieder löschen.

Ausgehende Verbindungen

Ausgehende Verbindungen werden standardmäßig erlaubt. Im meinem Fall bin ich der einzige Benutzer mit Shellzugriff auf meinem Server und es gibt bisher weder CGI noch PHP-Anwendungen, die man manipulieren könnte um diese Einstellung zu missbrauchen. An dieser Stelle scheiden sich die Geister. Tatsache ist, man kann sein System so fest zuschnüren, dass nicht einmal ausgehende Verbindungen erlaubt sind oder einen Mittelweg finden.

ufw deny out to any


Blockiert alle ausgehenden Verbindungen

ufw allow out 80,443/tcp


Erlaubt ausgehende TCP-Verbindungen für Port 80 und 443.

IPv6

UFW blockt standardmäßig alle Anfragen mit IPv6. Damit ufw mit IPv6 zusammenarbeitet muss in /etc/default/ufw die Variable IPV6 auf Yes gesetzt und die Firewall einmal mit ufw reload neu gestartet werden.

Fazit

Die unkomplizierte Firewall macht ihrem Namen alle Ehre. Das Prinzip ist immer das gleiche. Alle eingehenden Verbindungen verwerfen und nur die tatsächlichen Dienste freigeben, die man wirklich braucht. Wie restriktiv man ausgehende Verbindungen behandelt, hängt vom eigenen Benutzerszenario ab. Die Regeln lassen sich noch deutlich verfeinern. Mehr Informationen verrät man ufw oder die folgenden Links.

Links

Ubuntu ufw Documentation
Firewall Ubuntu Servers

10 Replies to “Debian-Server mit der unkomplizierten Firewall ufw absichern”

  1. Was mich losgelöst von Deinem Server-Projekt (zu dem ich dir noch viel Erfolg wünschen möchte!) interessiert: Nutzt Du eine Firewall auch für Deinen Desktop bzw. Laptop? Wenn ich mir die Diskussionen hierzu in Gedächtnis zurück rufe, die vor Jahren in diversen Newsgroups geführt worden sind, sollen das in diesen letzten beiden Anwendungsfällen relativ nutzlose Dinge sein; hier wird eher zu einer konsequenten Portverriegelung geraten. Dies könnte man mit Bordmitteln realisieren, so dass es eine FW wie „ufw“ gar nicht bräuchte.

  2. Danke sehr. Zu Hause und unterwegs benutze ich in der Tat keine Firewall, weil ich Dienste außer SSH nicht freigegeben habe. Hier steht immer noch ein sieben Jahre alter WLAN-Router mit eingebauter Firewallfunktion, der auch NAT und Port-Forwarding beherrscht.
    Ich denke ufw und iptables helfen z.B. mit der LIMIT-Funktion ungemein. Außerdem kannst du temporär gewisse Dienste sperren, aber trotzdem sie mit SSH auf deinen lokalen Laptop tunneln. Eine Firewall ist in der Tat nur ein Teilaspekt von Sicherheit.

  3. Ich würde da nicht gross irgend etwas Neues erfinden wollen. Nimm die arno-iptables-firewall und fertig. Wenn es noch was grösseres sein soll, dann gibt es noch eine andere FW die auf Debian zugeschnitten ist. Die ist wie Arnos konzipiert, nur mit wesentlich mehr Möglichkeiten und alles ist zu und abschaltbar. Bei Gelegenheit poste ich mal den Link, wenn ich den wiederfinde. Ich nehme immer die Arno Firewall.

  4. Die Arno-Iptables-Firewall benutze ich auf dem 5-cent-vServer und bin in der Tat sehr zufrieden damit. Ich wollte beides mal testen, mal sehen wie die Langzeiterfahrungen sind. UFW ist gar nicht so übel, denn ich kann einzelne Ports bequem mit einem Kommandozeilenbefehl freischalten oder blocken. Das Löschen der Regeln könnte aber noch einfacher gemacht werden.
    Meintest du vielleicht die apf-firewall?

  5. Hallo,
    bisher nahm ich Arno, aber da mein entferntes System neu aufgesetzt werden musste, und ich nach was anderem suchte, bin ich hier gelandet. UFW hört sich ebenfalls interessant an, aber gibt es Vor- und Nachteile beider Systeme?
    Für ufw gibt es auch für verschiedene Distributionen eine graphische Oberfläche, nennt sich ‚Gufw Firewall‘, die GUI ist hier zu finden: gufw.org

    1. Hallo,
      Arno ist ebenfalls ein sehr gutes Werkzeug und wahrscheinlich mit Hilfe von debconf sogar einfacher einzurichten als ufw. Man sollte sich auf jeden Fall beide einmal anschauen.

  6. Arno ist ja schon bekannt, war an sich auch per Konfig-Datei einfach einzurichten. UFW werde ich mir wahrscheinlich später mal anschauen.

  7. Hi, ich kann dir und allen anderen noch sanewall empfehlen. Sanewall ist ein modernerer Fork von firehol und das ist einerseits sehr mächtig, kann aber auch sehr einfach aufgesetzt werden. Man kann das auch aus der Ferne machen, dann gibt man am Prompt „sanewall try“ ein und wenn man dann nicht nach 30 Sekunden „commit“ eingeben konnte, wird die vorherige Konfiguration wiederhergestellt. Ein sehr schönes Tutorial ist hier:
    http://firehol.org/tutorial/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.