OpenSuse-Tipps: Das YaST-Modul “Firewall”

Aus LinuxUser 06/2020

OpenSuse-Tipps: Das YaST-Modul “Firewall”

© James Mott Jordan, 123RF

Abgeblockt

OpenSuse 15.1 bringt ein neues Firewall-Modul mit. Um Dienste für den Zugriff ins LAN freizugeben, genügt es, deren Namen zu kennen.

OpenSuse setzt seit Langem auf eine Firewall (Abbildung 1) um die Sicherheit des Systems zu gewährleisten, obwohl das unter Linux keineswegs zwingend nötig ist, um das System gegen Angriffe abzusichern.

Abbildung 1: In der Standardeinstellung blockt unter OpenSuse eine Firewall fast alle Zugriffe von außen auf das System ab.

Abbildung 1: In der Standardeinstellung blockt unter OpenSuse eine Firewall fast alle Zugriffe von außen auf das System ab.

Das Verständnis vieler Anwender von der sichernden Wirkung einer Firewall stammt aus der Zeit verheerend unsicherer früher Windows-Versionen, wo die Komponenten des Systems selbst über den Netzwerk-Stack kommunizierten und diese Kommunikation unzureichend gegen Zugriffe aus dem Internet geschützt war. “Firewall” stand hier für einen zusätzlichen Schutzwall um ein inhärent unsicheres Grundsystem herum.

Schutzlos sicher

Eine vergleichbare Bedrohungslage gibt es unter Linux nicht (Abbildung 2). Deshalb kann beispielsweise Ubuntu auf ein gänzlich anderes Sicherheitskonzept setzen als OpenSuse: Hier laufen nach der Installation keinerlei Server-Dienste, das System ignoriert alle Anfragen aus dem Netz. Führt der Anwender keinen entsprechenden Programmcode aus, geht nichts schief – mit oder ohne Firewall.

Abbildung 2: Keine Firewall, kein Problem: Betreiben Sie unter Linux keine Netzwerkdienste (rechts), laufen Anfragen aus dem Netz ins Leere.

Abbildung 2: Keine Firewall, kein Problem: Betreiben Sie unter Linux keine Netzwerkdienste (rechts), laufen Anfragen aus dem Netz ins Leere.

Ganz sinnlos ist eine Firewall unter Linux dennoch nicht: Sobald Sie Server-Dienste wie einen Webserver, einen SSH-Dienst für das Remote-Login oder die Datenbank MySQL starten, tut sich mit jedem Dienst ein zweifaches Gefahrenpotenzial auf: Entweder ist der (oft als Root laufende) Dienst fehlerhaft programmiert oder falsch konfiguriert.

In beiden Fällen ermöglicht das einen Zugriff auf das System, der eigentlich nicht gelingen dürfte, im schlimmsten Fall bis zur kompletten Übernahme. Ein solches Fehlverhalten bleibt oft unentdeckt, bis es zu spät ist. Besonders bei einer versehentlichen Freigabe greift das Suse-Konzept der zusätzlichen Firewall, die standardmäßig alle Dienste nach außen hin abblockt, selbst die unabsichtlich für öffentlichen Zugriff konfigurierten.

Wichtig ist es zu wissen, dass es bei der OpenSuse-Firewall stets nur um Zugriffe von außen auf den Rechner geht, nicht um Zugriffe auf Webseiten oder Server-Dienste vom Computer aus. Sie haben also die Möglichkeit, von Ihrem System aus unabhängig von der Firewall stets per SSH auf einen anderen Rechner zuzugreifen. Um sich jedoch von einem Notebook per SSH auf dem OpenSuse-Desktop anzumelden, müssen Sie die Firewall dort entsprechend konfigurieren.

Laufen auf Ihrem Rechner keine kritischen Dienste, befürchten Sie keine Angriffe aus dem lokalen Netzwerk und vertrauen Sie dem Internet-Router, dürfen Sie die Firewall gefahrlos deaktivieren und sich damit die Mühe der Freigabe von Diensten sparen. Wählen Sie dazu im YaST-Modul Firewall im linken Unterfenster den Eintrag Start.

Das Ausklappfeld Nach dem Schreiben der Konfiguration beschreibt, was nach dem Klick auf Übernehmen passiert: Neu laden übernimmt die im YaST-Modul vorgenommenen Einstellungen ohne den Firewall-Schutz zu unterbrechen. Mit Stop beenden Sie die Firewall. Beim Reboot startet sie jedoch erneut, sofern unter Nach Neustart die Option Beim Booten starten gewählt ist. Für dauerhaftes Deaktivieren wählen Sie hier also zusätzlich Nicht starten. Eine temporär ausgeschaltete Firewall schalten Sie mit der Option Neustart nach einem Klick auf Übernehmen wieder scharf.

Kerngeschäft

Ein weiteres Missverständnis bezüglich einer Linux-Firewall stammt ebenfalls aus der Windows-Welt: Hier klinkt sich ein Programm zur Überwachung in den Netzwerkverkehr ein. Unter Linux braucht man dazu keine gesonderte Software: Hier liegt der Paketfilter im Linux-Kernel selbst.

Programme wie das YaST-Modul Firewall und der Firewalld [1], auf den es aufsetzt, konfigurieren lediglich den Kernel-eigenen Netzwerk-Stack so, dass er bestimmte Pakete verwirft. Eine Linux-Firewall stürzt also nicht einfach ab und reißt nicht so leicht zusätzliche Sicherheitslücken durch Programmierfehler auf.

Mit OpenSuse 15.1 wurde die mehr als 20 Jahre zu Suse gehörige SuSEfirewall2 gegen die aus dem Fedora-Umfeld stammende Lösung Firewalld ausgetauscht. Dadurch hat sich das YaST-Modul Firewall ebenfalls verändert (Abbildung 3).

Abbildung 3: In der Rubrik <span class="ui-element">Sicherheit und Benutzer</span> findet sich ab OpenSuse&nbsp;15.1 in YaST ein neues, einfach gestaltetes Firewall-Modul.

Abbildung 3: In der Rubrik Sicherheit und Benutzer findet sich ab OpenSuse 15.1 in YaST ein neues, einfach gestaltetes Firewall-Modul.

Geblieben ist das Konzept der Zonen (Abbildung 4), das das Netz in Bereiche mit unterschiedlichem Bedrohungsrisiko unterteilt. Jede Netzwerkkarte eines Rechners weisen Sie einer Zone zu (Abbildung 1), je nachdem, ob sie zum Beispiel ungeschützt ins Internet führt (Public) oder mit dem Heimnetz verbunden ist (Home). Zu einer Zone gehört ein Satz von Regeln, über die Sie festlegen, welche Netzwerkpakete die Firewall passieren.

Abbildung 4: F&uuml;r jede Zone in der Firewall d&uuml;rfen Sie bestimmte Dienste freischalten.

Abbildung 4: Für jede Zone in der Firewall dürfen Sie bestimmte Dienste freischalten.

Die Zonen sind nach der Installation ihrem Namen entsprechend vorkonfiguriert: drop lässt nichts passieren, und es erfolgt keinerlei Antwort auf Anfragen, kurz: Der Rechner stellt sich tot. block blockt ebenfalls alle von außen initiierten Anfragen, antwortet dem anfragenden Rechner aber mit einer Fehlermeldung.

Die Zonen dmz (Demilitarisierte Zone), external, home, internal und work gestatten das Anmelden über SSH, sofern Sie bei der Installation unter Sicherheit den SSH-Port öffnen (Abbildung 5). Die Zonen home und internal gestatten den Zugriff auf Samba-Freigaben [2], zum Beispiel von Windows-Rechnern. trusted schaltet die Firewall effektiv aus.

Abbildung 5: Der OpenSuse-Installer schlie&szlig;t den Firewall-Port f&uuml;r das Remote-Login standardm&auml;&szlig;ig, bietet aber auch die Option an, ihn zu &ouml;ffnen.

Abbildung 5: Der OpenSuse-Installer schließt den Firewall-Port für das Remote-Login standardmäßig, bietet aber auch die Option an, ihn zu öffnen.

Das Zonen-Konzept macht es möglich, schnell einen zur Rolle des Rechners passenden Regelsatz auszuwählen – etwa, wenn Sie auf Ihrem Laptop das gesicherte Heimnetz gegen einen öffentlichen Hotspot vertauschen. Außerdem besteht die Möglichkeit, Kabel- und WLAN-Schnittstellen unterschiedliche Profile zuzuweisen. Die mitgelieferten Zonen-Definitionen liegen als XML-Dateien im Ordner /usr/lib/firewalld/zones/, nach Anpassung im YaST-Modul unter /etc/firewalld/zones/. Durch Kopieren dieser Dateien halten Sie die Konfiguration mehrerer Rechner synchron.

Um einer Netzwerkkarte ein Profil zuzuweisen, wählen Sie im linken Unterfenster des YaST-Moduls den Eintrag Schnittstellen aus und dann im rechten Unterfenster die anzupassende Schnittstelle. Über einen Klick auf den entsprechenden Schalter können Sie die zugeordnete Zone ändern.

Die allen Netzwerkkarten zugeordnete Standardzone lautet nach der Vorinstallation public, geht also von einer ungeschützten Internet-Verbindung aus. Der so konfigurierte Linux-Rechner ist damit nicht in der Lage, Dienste im LAN bereitzustellen. Läuft dort etwa ein Webserver, so lassen sich dessen Seiten nur lokal vom selben Rechner aus erreichen (Abbildung 6).

Abbildung 6: W&auml;hrend das MoinMoin-Wiki auf dem Rechner selbst unter <a href="http://localhost/wiki" target="_blank">http://localhost/wiki</a> bereits zu erreichen ist, blockt die Firewall im Auslieferungszustand einen Zugriff von au&szlig;en ab.

Abbildung 6: Während das MoinMoin-Wiki auf dem Rechner selbst unter http://localhost/wiki bereits zu erreichen ist, blockt die Firewall im Auslieferungszustand einen Zugriff von außen ab.

Passendes Profil

Um Dienste freizugeben, verändern Sie die Freigaben für das mit der aktiven Netzwerkkarte verbundene Profil. Falls nötig, erstellen Sie eigene Profile. Wählen Sie dazu im linken Unterfenster Zonen, und klicken Sie dann auf Hinzufügen (Schalter unter dem rechten Teilfenster). Bestehende Zonen lassen sich hier ebenfalls bearbeiten.

Neben der Beschreibung ist vor allem das nicht sehr aussagekräftig benannte Ausklappfeld Ziel relevant: Wählen Sie dort DROP, dann versetzt das den Rechner in den angesprochenen Stealth-Modus, bei dem er auf eingehende Anfragen nicht einmal mit einer Fehlermeldung reagiert. Bei Bedarf fügen Sie Ausnahmen für bestimmte Dienste hinzu. Auch RECJECT weist alle nicht ausdrücklich erlaubten Anfragen ab, jedoch mit Fehlermeldungen. Der Rechner verhält sich regelkonform, ein potenzieller Angreifer kann ihn aber zumindest sehen.

Wählen Sie dagegen ACCEPT, öffnet dies die Firewall komplett. Mit den Mitteln des YaST-Moduls gibt es hier nichts weiter zu verändern. Das mitgelieferte Profil trusted basiert auf dem Ziel ACCEPT und lässt an der damit verknüpften Schnittstelle alle Daten passieren. Nur wer die dahinterstehende Software Firewalld von Hand konfiguriert, hat noch Möglichkeiten [3], Accept-Profile weiter anzupassen.

Doch bleiben wir bei YaST: Um ein Profil zu bearbeiten, ob nun ein bestehendes oder ein selbst angelegtes, wählen Sie es im Zweig unterhalb von Zonen (linkes Unterfenster) aus. Im Hauptfenster erscheinen die zwei Reiter Dienste und Ports. In beiden gestatten Sie Diensten den Zugriff über die Firewall hinweg. Im Reiter Dienste wählen Sie diese nach Namen aus, während Sie unter Ports numerisch bezeichnete Netzwerk-Ports freigeben.

Das englische Wort Port bedeutet hier so viel wie “Öffnung” oder “Schlitz”: Um an einer Netzwerkschnittstelle mehrere Dienste anzubieten, weisen Sie jedem Dienst einen eigenen Port zu. Die Port-Nummern sind standardisiert [4]. Ruft der Browser eine Webseite bei einem Server ab, fragt er daher nach Port 80; ein SSH-Client verbindet sich mit Port 22. Viele Dienste lassen sich für die Verwendung alternativer, nicht standardkonformer Ports konfigurieren.

Der Reiter Ports unterscheidet außerdem zwischen TCP-Ports, UDP-Ports, SCTP-Ports und DCCP. Es handelt sich hier um sogenannte Transportprotokolle, also um eine gemeinsame Sprache, in der sich zwei Rechner unterhalten. TCP und UDP sind die geläufigsten. Das Abrufen von Webseiten erfolgt etwa mithilfe von TCP, Voice-over-IP-Telefonie über UDP, SSH klappt sowohl über TCP als auch UDP. TCP ist für vollständige, fehlerfreie Übertragungen optimiert, UDP dagegen für geringe Latenz.

Für die Freigabe von Diensten auf einem OpenSuse-Rechner im LAN gibt es also zwei Möglichkeiten: Entweder Sie kennen den Namen eines Diensts, wie http, ssh, openvpn oder mysql: Dann können Sie ihn im Reiter Dienste freischalten, ohne sich um Details wie die Port-Nummern oder das Transportprotokoll zu kümmern.

Verlangt dagegen die Dokumentation eines Server-Diensts bestimmte TCP- oder UDP-Ports in der Firewall freizugeben, schalten Sie diese im Reiter Ports frei. Sie dürfen in den Eingabefeldern mehrere Ports angeben, die Sie durch Kommas oder Leerzeichen trennen. Mit Bindestrichen wählen Sie Bereiche wie 15001-15009 aus.

Sicherer Perimeter

Nach der Freigabe lässt sich ein Dienst auf Ihrem OpenSuse-Rechner nur im Heimnetz erreichen, auch wenn er über einen Router wie eine Fritzbox mit dem Internet verbunden ist: Die Router-Firewall schottet die Rechner dahinter in der Voreinstellung ganz von Zugriffen aus dem Internet ab, während Zugriffe von innen nach außen wie bei der OpenSuse-Firewall möglich sind.

In der Regel funktioniert die Freigabe von Diensten dort ähnlich nach Port und Protokoll. In einer Fritzbox erledigen Sie das etwa im Menüpunkt Internet | Freigaben in der Weboberfläche des Routers. Dort wählen Sie im ersten Schritt mit Gerät für Freigaben hinzufügen einen Rechner aus und weisen ihm eine oder mehrere Freigaben zu (Abbildung 7). Die Fritzbox kennt nur wenige vordefinierte Anwendungen; meist müssen Sie die Ports und das Protokoll per Hand eingeben [4].

Abbildung 7: Das Freigeben von Diensten und Ports in der Fritzbox funktioniert &auml;hnlich wie in der OpenSuse-Firewall.

Abbildung 7: Das Freigeben von Diensten und Ports in der Fritzbox funktioniert ähnlich wie in der OpenSuse-Firewall.

Bei der Freigabe von Ports auf der Basis der IPv4-Adresse (also Adressen in der Form mit vier Segmenten) lässt sich jeder Port nur mit einem Rechner im Heimnetz verknüpfen, denn es gibt ja nur eine externe IP. Möglicherweise funktioniert diese IPv4-Freigabe sogar überhaupt nicht: Da es nicht mehr genug IPv4-Adressen für alle Teilnehmer gibt, teilen sich mittlerweile oft mehrere Anschlüsse eine IPv4-Adresse (“Dual Stack Light”). Das ist nicht zu spüren, wenn Sie von innen heraus auf das Internet zugreifen, doch Anfragen von außen lassen sich dabei nicht mehr eindeutig einem Teilnehmer zuordnen und scheitern.

Bei Dual-Stack-Light-Anschlüssen gelingen nur Freigaben auf Basis der IPv6-Adresse. Als Bonus lassen sich via IPv6 dieselben Ports für mehrere Rechner freigeben, denn der sogenannte Präfix eines IPv6-Internet-Anschlusses bietet Raum für eine große Zahl an öffentlichen Unteradressen, unter denen die Rechner dann von außen unterscheidbar im Internet auftauchen.

Ein Wiki für alle

Um für etwas Anschaulichkeit zu sorgen, wollen wir nun ein MoinMoin-Wiki [5] installieren und ins Heimnetz freigeben. Das macht das praktische Tool (Abbildung 8) zur auf allen lokalen Rechnern verfügbaren zentralen Wissensdatenbank.

Abbildung 8: Das MoinMoin-Wiki ist unter OpenSuse leicht zu installieren. Aus direkt im Browser schnell zu tippenden Wiki-K&uuml;rzeln erzeugt es ansprechend formatierte HTML-Seiten.

Abbildung 8: Das MoinMoin-Wiki ist unter OpenSuse leicht zu installieren. Aus direkt im Browser schnell zu tippenden Wiki-Kürzeln erzeugt es ansprechend formatierte HTML-Seiten.

Installieren Sie zunächst das Paket moinmoin-wiki, und legen Sie dann als Root eine Wiki-Instanz an (Listing 1, erste Zeile). Editieren Sie als Root die Datei wikiconfig.py (zweite Zeile), suchen Sie darin den mit # Security beginnenden Abschnitt, und entfernen Sie das Zeichen # vor den letzten beiden Zeilen (Listing 2).

Listing 1

# mkwiki.moin /srv/moin/default
# kate /srv/moin/default/wikiconfig.py
[... Wiki konfigurieren ...]
# systemctl start apache2.service
# systemctl enable apache2.service

Listing 2

actions_superuser = multiconfig.DefaultConfig.actions_superuser[:]
actions_superuser.remove('newaccount')

Starten Sie dann als Root auf der Konsole den Apache-Webserver (Listing 1, Zeile 4), und sorgen Sie gegebenenfalls dafür, dass er nach einem Reboot wieder startet (Zeile 5). Nun erreichen Sie das Wiki im Webbrowser unter http://localhost/wiki, jedoch – wenn die Firewall in der Standardkonfiguration aktiv ist – nur auf demselben Rechner.

Auf der Login-Seite können Sie dank der Veränderungen an /srv/moin/default/wikiconfig.py jetzt einen neuen Benutzer anlegen. Das verleiht jedem Seitenbesucher nach Registrierung Schreibzugriff und lässt sich durch Rückgängigmachen der genannten Anpassungen wieder abschalten.

Um das Wiki für alle Rechner im Heimnetz bereitzustellen, wählen Sie im YaST-Modul Firewall links den Eintrag Zonen und prüfen, welcher Zone die Schnittstelle namens eth0 (also das erste kabelgebundene Interface) zugeordnet ist.

Wählen Sie dann diese Zone im Baum unter Zonen aus. Im Reiter Dienste klicken Sie in der Liste Bekannt auf http und Hinzufügen. Nach dem Übernehmen ist der Webserver und damit das MoinMoin-Wiki für den Zugriff aus dem Heimnetz freigeschaltet.

Fazit

Das YaST-Modul Firewall steht erst seit OpenSuse 15.1 in seiner jetzigen Form bereit. Sein Funktionsumfang erscheint noch etwas dünn, doch genügt es zu dem Zweck, mit wenigen Klicks die Firewall für bestimmte Dienste oder Ports zu öffnen. Damit erfüllt es die Ansprüche der meisten Benutzer. (agr)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2020 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben