Zugang gesperrt

Schützen Sie Ihr System mit der Firewall UFW

18.11.2009 Sorgfältige Benutzer setzen Wert auf Sicherheit. Die Firewallwerkzeuge von Ubuntu helfen Ihnen, Eindringlinge von Ihrem System fernzuhalten.

Wenn es um Sicherheit geht, bietet Ubuntu mehrere Vorteile gegenüber einem System wie Windows. Zum Beispiel hat Ubuntu einen offenen Quellcode. Das bedeutet, dass Hunderte und sogar Tausende von Entwicklern den Code überprüfen und verbessern. Auch verfügen Linux-Systeme im Gegensatz zu Windows über keine Registry, vermissen somit den Bestandteil, der Windows-Systemen über die Jahre Würmer, Viren und verschiedenen anderen Angriffe einbrachte. Die einzelnen Komponenten eines Linux-Systems sind zudem lose verknüpft: Nur weil ein Teilbereich kaputt geht, muss nicht unbedingt das ganze System zusammenbrechen oder instabil werden.

Obwohl Linux also von Haus aus als sicherer als andere vergleichbare Desktopsysteme betrachtet werden kann, ist kein Betriebssystem von Haus aus wirklich sicher – nicht einmal Ubuntu. Ein Angreifer könnte versuchen, Ihr System zu durchsuchen, um einen offenen Port zu finden. Jede Anwendung, die auf einem Port lauscht, kann ein Sicherheitsproblem mitbringen, das zur Kompromittierung Ihres Rechners führen kann und so weiter.

Egal was Ihnen über die Sicherheit von Linux oder Windows erzählt wird: Eine persönliche Firewall zu konfigurieren, gehört bei jedem Rechner der sich ab und zu oder permanent im Internet befindet zum Standardsetup. Denn der sichere Umgang mit dem Computer hilft Ihnen, Ihr System besser zu verstehen und Ihre Seelenruhe zu bewahren. Lesen Sie dazu auch den Kasten "Alles gesperrt?".

Alles gesperrt?

Viele Benutzer schalten deshalb keine persönliche Firewall ein, weil sie befürchten, dass sie ihre Lieblingsvideoseiten nicht mehr aufsuchen und Programme nicht mehr herunterladen können. Davor müssen Sie keine Angst haben. Die Entwickler von Firewall-Programmen sind nicht dumm und wissen genau, dass Sie all die guten Dinge im Internet erreichen wollen. Sie wissen aber auch, dass da draußen viele bösen Menschen lauern, die in Ihren Computer eindringen wollen. Die Ubuntu-Firewall blockiert deshalb generell nur den Zugriff von Außen aber nicht Ihren Browser oder Ihren Mediaplayer. Einen Dienst freizugeben bedeutet somit nicht, dass Sie diesen Dienst von Ihrem Rechner aus nutzen können sondern dass andere Rechner den Dienst auf Ihrem Rechner nutzen können. Den Port 80 (um HTTP als Beispiel zu nehmen) müssen Sie somit nicht freigeben, um über Firefox im Internet surfen zu können sondern nur dann, wenn Sie selbst einen Webserver auf Ihrem eigenen Rechner einrichten möchten, was doch relativ selten der Fall ist.

Einführung in UFW

UFW ist die Abkürzung für Uncomplicated Firewall. Die "unkomplizierte Brandschutzmauer" ist das offizielle Firewall-Konfigurationswerkzeug von Ubuntu [1][2] wird deshalb auch oft nur Ubuntu Firewall genannt. Das Kommandozeilentool UFW funktioniert ziemlich gut als Frontend für das leistungsstarke Set von Linux-Firewall-Dienstprogrammen, bekannt unter dem Namen Iptables [3]. Obwohl UFW dem Benutzer als ein komplettes Firewallsystem erscheint, ist ihre Aufgabe in Wirklichkeit, eine etwas leichtere Syntax für die Verwendung von iptables zu bieten.

Die Iptables-Dienstprogramme wiederum betreiben das Netfilter-Framework, erhältlich in jeder Linux-Implementierung. Netfilter und Iptables sind kompliziert genug, um ein komplettes Buch darüber zu schreiben und viele Benutzer abzuschrecken. Die UFW und das zugehörige grafische Frontend Gufw sollen die Vorteile von Firewalls dem alltäglichen Ubuntu-Benutzer näher bringen.

Die Personal Firewall

Der Begriff Firewall bezieht sich in der Regel auf eine Vorrichtung, die zwischen einem lokalen Netzwerk (wie zum Beispiel ein Heim- oder ein Firmennetzwerk) und einem größeren, weniger kontrollierten Netzwerk, wie dem Internet, eingesetzt wird. Obwohl moderne Firewalls mit einer breiten Palette von Funktionen aufgerüstet sind, besteht die grundlegende Aufgabe einer Firewall darin, den Zugriff auf das lokale Netzwerk durch Filtern des eingehenden Datenverkehrs zu beschränken. Eine persönliche Firewall funktioniert ganz ähnlich wie eine Netzwerk-Firewall, mit dem Unterschied, dass eine persönliche Firewall typischerweise ein softwarebasierter Bestandteil ist, der auf einem einzelnen System läuft, während eine echte Firewall aus spezieller Hardware und mehreren Komponenten besteht.

Eine persönliche Firewall kann den Datenverkehr aufgrund von verschiedenen Parametern wie Quell-IP-Adresse, Zieladresse oder Portnummer blockieren oder erlauben. Dienste, die auf Ihrem Ubuntu-System laufen, lauschen auf einem bestimmten TCP- oder UDP-Port auf eingehende Verbindungen. Die Portnummer gibt somit einen Hinweis darauf, welchen externen Dienst der Rechner anbietet oder benutzen möchte. Die Tabelle "Gängige Dienste" führt eine Liste der wichtigsten Dienste mit den zugehörigen Portnummern.

Viele persönliche Firewalls können den Datenverkehr auch aufgrund des Netzwerkprotokolls blockieren oder erlauben. Mehrere Firewallsysteme unterstützen zudem eine Protokollierung, sodass Sie eine Aufzeichnung der Datenverkehrstatistiken und über die Zugriffsversuche von draußen erhalten.

Gängige Dienste

Abkürzung

Beschreibung

Portnummer

FTP File Transfer Protocol TCP 20 und 21 (meist als 21 aufgeführt)
POP3 Das am meisten verbreitete Protokoll für E-Mail-Abruf. Über den POP3-Server loggt man sich ein und lädt die E-Mails herunter. TCP 110
IMAP Internet Message Access Protocol (IMAP). Ein neueres, weiterentwickeltes Mailbox-Protokoll. TCP 143
SMTP Simple Mail Transfer Protocol. E-Mail-Protokoll für die Übermittlung und Weiterleitung von ausgehenden Nachrichten. TCP 25
NFS Das Network File System wird unter Linux und Unix-Systemen zum Freigeben von Dateien und zum Einbinden entfernter Verzeichnisse benutzt. TCP- und UDP-Port 2049. Außerdem stützt es sich auf den Portmapper Dienst, der den UDP-Port 111 verwendet.
SSH Die Secure Shell bietet eine relativ sichere Art, um auf ein System zuzugreifen und es zu bedienen. SSH benutzt Verschlüsselung und Public-Key-Authentifizierung. Man kann SSH auch zum Tunneln unverschlüsselter Protokolle anwenden. TCP 22
Telnet Ein älteres Protokoll, um entfernte Systeme zu steuern. Heute durch SSH weitgehend ersetzt Server lauscht auf TCP 23. Man kann mithilfe eines Telnet-Clients jeden Port erreichen.
VNC Virtual Network Computing ist ein Protokoll, worüber man auf einem entfernten Rechner einloggen und die grafische Oberfläche betrachten kann, als säße man direkt davor. TCP 5900
IPP Internet Printing Protocol – dient zum Anschluss von Druckern im Netzwerk. UDP und TCP 631

Erste Schritte mit UFW

Man startet UFW in jeder üblichen Karmic-Installation im Terminalfenster durch Eingabe von ufw. Wie bei vielen administrativen Tools, muss man auch für ufw über die nötigen Rechte verfügen, die Ihnen das vorangestellte sudo und die Eingabe Ihres Benutzerpassworts verschafft.

$ sudo ufw enable
Firewall is active and enabled on system startup

Als Ergebnis des vorherigen Befehls wird UFW bei jedem Systemstart gestartet. Nach der Ausgabe des Befehls, kann man die Grundeinstellung bestimmen:

$ sudo ufw default deny
Default policy changed to 'deny'
(die Regeln müssen entsprechend aktualisiert werden)

Dieser Befehl sagt UFW, automatisch alle ICMP-Pakete zu verwerfen also auch aller Protokolle, die in der Tabelle "Gängige Dienste" aufgeführt sind. Anschließend setzen Sie Ausnahmen zu dieser standardmäßig gesperrten Grundeinstellung. Die folgenden Befehle erlauben eine Verbindung auf SSH-, Web- und VNC-Servern, die auf Ihrem System laufen:

sudo ufw allow 22
Regel hinzugefügt
sudo ufw allow 80
Regel hinzugefügt
sudo ufw allow 5900
Regel hinzugefügt

Ob die UFW-Einstellungen geklappt haben, überprüfen Sie mit folgendem Befehl:

sudo ufw status

Auf diesen Befehl hin erscheint eine Ausgabe, wie im Listing 1 zu sehen.

Listing 1

Status abfragen

Status: active
Zu                         Aktion  Von
–                         ——  —-
22                         ALLOW   Anywhere
80                         ALLOW   Anywhere
5900                       ALLOW   Anywhere

Freigabe für bestimmte Ports

Bisher haben die Befehle lediglich einige Portnummern definiert und nicht ein bestimmtes Protokoll. Es ist ziemlich einfach, die Filterung für das TCP- oder UDP-Protokoll einzustellen:

sudo ufw allow 53/udp

Der vorstehende Befehl erlaubt Verbindungen zum DNS-Server auf Ihrem System, der standardmäßig am UDP-Port 53 lauscht. Um nur eine Verbindung auf TCP-Port 80 zu erlauben, geben Sie folgenden Befehl ein:

sudo ufw allow 80/tcp

Standardregeln

Zur Konfiguration einer Firewall (und praktisch aller Sicherheitssysteme) gibt es zwei Möglichkeiten:

  • Standard: alles erlaubt/alle Ports offen
  • Standard: alles verboten/alle Ports gesperrt

UFW bietet für die Grundeinstellung beide Methoden an, es empfiehlt sich jedoch, der allgemeingültigen Faustregel zu folgen und als Grundeinstellung "alle Ports gesperrt" zu wählen. Damit hat man in der Regel weniger Problemen, da es einfacher und sicherer ist, alles zu verbieten und nur bestimmten Datenverkehr zu erlauben. Sie behalten so den Überblick, was erlaubt ist, alles andere ist verboten.

Der einzige Nachteile dieser Herangehensweise besteht darin, dass man unabsichtlich eine Verbindung zum System blockieren könnte. Eine Ausnahmeregel zu erstellen, ist aber dank ufw relativ einfach, wie Sie es in diesem Artikel erfahren.

Freigabe für Adressen und Adressbereiche

Die vorherigen Beispiele zeigten Regeln, die für alle IP-Adressen gelten. Man kann aber die Regeln noch verfeinern. Nehmen wir an, dass Sie für Ihre Firewall die Standardregel "alles verboten" aktiviert haben. Nehmen wir weiter an, dass Sie dem Rechner mit der IP-Adresse 19.82.44.45 die Verbindung zu Ihrem lokalen System auf allen Ports gewähren möchten. Dazu genügt der folgende Befehl:

sudo ufw allow from 19.82.44.45

Es ist auch möglich, einen Bereich von IP-Adressen anzugeben. Die ICANN hat einige Adressen einem privaten IP-Bereich zugewiesen, die nicht ins Internet geroutet werden dürfen. Sie kennen diese eventuell von Ihrem WLAN-Router oder einem anderen DHCP-Server, zum Beispiel 192.168.0.1 oder 10.0.0.1.

ICANN: Organisation, die die IP-Adressen im Internet vergibt.

Um allen Rechner, die ein IP-Adresse aus einem privaten Bereich besitzen – also keinen Rechnern aus dem Internet –, den Zugang zu Ihrem System zu gewähren, geben Sie die folgenden drei Befehle ein:

sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16

Selbstverständlich kann man jeden beliebigen IP-Adressbereich angeben, auch Bereiche aus dem Internet.

Einschränken von Verbindungen

Eine der leistungsstärkeren Funktionen von UFW ist die Fähigkeit, Verbindungen zu begrenzen. Man kann zum Beispiel festlegen, dass die Firewall nicht mehr als sechs Verbindungsversuche über einen Zeitraum von 30 Sekunden erlaubt. Die Beschränkung der Anzahl von Verbindungen kann folgende Arten von Angriffen erschweren:

  • Scanning: Wenn Verbindungen begrenzt sind, sind Scans weniger erfolgreich.
  • Denial of Service: Als DoS-Angriff bezeichnet man das Senden von unzähligen Paketen oder von fehlerhaften Paketen an einen Rechner, um eine Überlastung oder den Absturz des Systems zu verursachen. Die Begrenzung von Verbindungen kann dem System helfen, diese Überlastungsversuche unberücksichtigt zu lassen.
  • Brute force: Ein Brute-Force Angriff ist, wenn ein Angreifer versucht, immer wieder eine Benutzername- und Passwort-Kombination zu erraten. Die Begrenzung von Verbindungen führt zu einem Neustart, wodurch der Angreifer weit länger braucht, eine zutreffende Benutzername- und Passwort-Kombination zu finden.

Um das Einschränken von Verbindungen zu aktivieren, verwenden Sie den Befehl ufw limit Dienst/Protokoll . Für sämtliche Verbindungen des Webservers geben Sie den folgenden Befehl ein:

sudo ufw limit www/tcp

Regeln entfernen

Wenn Sie eine Regel löschen möchten, geben Sie einfach die Portnummer an. Um zum Beispiel die Regel für den SSH-Zugang zu deaktivieren, geben Sie den folgenden Befehl ein:

sudo ufw delete allow 22
Regel gelöscht

Wenn Sie die Grundeinstellung der Firewall ändern möchten, geben Sie einfach folgenden Befehl ein:

sudo ufw default allow

Beachten Sie allerdings, dass dadurch alle Regeln, die Sie bis jetzt definiert haben, weiterhin gültig bleiben. Am besten bleiben Sie deshalb bei der Grundeinstellung deny und fügen einzelne Regeln hinzu, die Dienste freischalten.

Schön bunt

Die Bedienung der Firewall über die Kommandozeile ermöglicht die volle Kontrolle über Ihre persönliche Firewall, aber Sie sind nicht gezwungen, die Kommandozeile zu nutzen, wenn sie es nicht wollen. Karmic bietet eine recht robuste GUI-Anwendung, bekannt als Gufw (Abbildung 1). Gufw gehört nicht zur Ubuntu-Standardinstallation, Sie müssen das Programm deshalb zunächst über das Software-Center oder ein sudo apt-get install gufw nachinstallieren. Sie finden es danach unter System | Systemverwaltung | Firewall configuration.

Abbildung 1: Gufw zeigt eine einfache Firewall-Konfiguration, die den Zugriff per SSH (Port 22) und für Bittorrent-Programme erlaubt.

Erste Schritte mit Gufw

Genau wie bei UFW, müssen Sie Ihr Passwort eingeben, um Gufw zu starten. Um eine neue Regel hinzuzufügen, stehen Ihnen drei Registerkarten zur Verfügung (Abbildung 2):

  • Einfach: Hier können Sie schnell eine bestimmte Portnummer und einen Dienst hinzufügen.
  • Vorkonfiguriert: Gufw listet hier alle erreichbaren Dienste und Programme auf, für die Sie neue Regeln aufstellen können.
  • Erweitert: Ermöglicht die Formulierung von feineren Regeln, auch für Quell- und Ziel-Portnummern, sowie für Quell- und Ziel-IP-Adressen oder Adressbereiche.

Abbildung 3 zeigt, wie man eine erweiterte Regel hinzufügt, die den eingehenden Datenverkehr vom System mit der IP-Adresse 10.168.1.8 zum lokalen System für beide Protokolle TCP und UDP verweigert.

Abbildung 2: Wählen Sie aus drei Regelmöglichkeiten aus.

Abbildung 3: Eigene Regel mit Portangabe und IP-Adresse.

Protokollierung

Protokollierung ist eine wichtige Funktion einer persönlichen Firewall. Zum Aktivieren der Protokollierung in Gufw, gehen Sie auf Bearbeiten | Einstellungen, und markieren das Kontrollkästchen Enable ufw logging. Sie finden dann die Protokolleinträge über Datei | Protokoll.

Auf der Kommandozeile aktivieren Sie die Protokollierung über den Befehl ufw logging Stufe , wobei Stufelow, medium, high oder full sein kann. In der Grundeinstellung nutzt die Ubuntu-Firewall die Einstellung low (niedrig). Um die Logging-Ebene auf full (auf die detailreichste Stufe) zu stellen, gibt man folgenden Befehl ein:

sudo ufw logging full

Beachten Sie allerdings, dass die Einstellung full oder bereits high dazu führt, dass Ihr System eine enorme Anzahl an Verbindungen aufzeichnet, was eine riesengroße Logdatei generiert. Deshalb hat Ubuntu als Standardeinstellung low gewählt – für den heimischen Gebrauch sollte das ausreichen.

Die Protokollierung in UFW ist aber keine alles oder nichts Sache. Es besteht zum Beispiel auch die Möglichkeit, nur bestimmte Verbindungen zu protokollieren. Folgender Befehl teilt ufw mit, die Verbindungen zu Ihrem VNC-Server (Port 5900) aufzuzeichnen:

ufw allow log 5900/tcp

Möchten Sie die Protokollierung komplett ausschalten, dann geben Sie dazu den Befehl sudo ufw logging off ein.

Alternativen

Neben der Ubuntu-Lösung UFW gibt zahlreiche andere Firewallwerkzeuge, die seit Jahren existieren, darunter IPcop [4], SmoothWall [5], Endian [6] oder Arno-iptables [7]. Sehr beliebt ist auch Firestarter, das sich bereits in den Ubuntu-Repos befindet und von Haus aus NAT-Support mitbringt, falls Sie Ihren Ubuntu-Rechner als Router einsetzen möchten.

Einem Freund empfehlen    Druckansicht beenden Bookmark and Share
Kommentare