Dienstleistungsgesellschaft

Einige Dienste, wie beispielsweise DNS, verlangen mehrere offene Ports. Diese dürfen Sie zusammen mit etwaigen benötigten Netfilter-Helfer-Modulen auf eine Liste schreiben. Firewalld bezeichnet solch eine Liste als Service, das Fedora-Wiki spricht hingegen noch von einem Feature [5]. Firewall-cmd müssen Sie dann nur noch anweisen den Service zu laden – schon ist die Firewall passend konfiguriert.

Für gebräuchliche Dienste, wie etwa den SSH-Daemon, bringt Firewalld bereits passende Services mit. Um beispielsweise die Ports für besagten SSH-Daemon zu öffnen, Setzen Sie schlicht folgendes Kommando ab:

# firewall-cmd --add --service=ssh

Soll Firewalld die Ports nach einer Weile automatisch wieder schließen, hängen Sie zusätzlich den Parameter --timeout an:

# firewall-cmd --add --service=ssh --timeout=10

In diesem Fall wäre der SSH-Dienst nach exakt 10 Sekunden nicht mehr von außen erreichbar. Eine Liste mit allen bereits vorhandenen Services liefert folgender Aufruf:

# firewall-cmd --get-services

Das Ergebnis zeigt Abbildung 5. Um einen Service wieder zu deaktivieren, nutzen Sie den Parameter --remove:

firewall-cmd --remove --service=ssh

Damit würde Firewalld umgehend die von SSH genutzten Ports schließen – und zwar wirklich nur diese.

Abbildung 5: Für die wichtigsten Dienste bringt Firewalld bereits passende Services mit, die selbsterklärende Namen tragen.

Alle von Firewalld mitgebrachten Services lagern im Unterverzeichnis /usr/lib/firewalld/services. Jede XML-Datei dort definiert genau einen Service. Eigene Service-Dateien gehören dagegen in das Unterverzeichnis /etc/firewalld/services: Eine hier platzierte XML-Datei überschreibt die Einstellungen einer bereits mitgebrachten Service-Datei gleichen Namens.

Listing 1 zeigt die Service-Datei für den FTP-Daemon, der lediglich den geöffneten Port 21/tcp sowie das Netfilter-Helfer-Modul nf_conntrack_ftp benötigt. Die Kurzbeschreibung des Dienstes zwischen <short> und </short> sowie die anschließende ausführliche Beschreibung dürfen optional wegfallen. Der Service-Name hinter <service name= ist hingegen verpflichtend, im Listing lautet er schlicht ftp.

Listing 1

<?xml version="1.0" encoding="utf-8"?>
<service name="ftp">
  <short>FTP</short>
  <description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You need the vsftpd package installed for this option to be useful.</description>
  <port protocol="tcp" port="21"/>
  <module name="nf_conntrack_ftp"/>
</service>

Grenzgebiete

Während Sie einer WLAN-Verbindung am Flughafen nicht über den Weg trauen sollten, können Sie hingegen im eigenen Heimnetzwerk alle Ports öffnen. Nach einem Ortswechsel müssten Sie dazu die entsprechenden Services einzeln über Firewall-cmd starten und stoppen. Seit Fedora 17 dürfen Sie sich die Arbeit mit sogenannten Zonen erleichtern.

Bei einer Zone handelt es sich einfach um eine Liste mit den Namen mehrerer Services. Die Zone für das Heimnetzwerk könnte etwa die Services für Samba, SSH und IPP für Netzwerkdrucker umfassen. Sobald Sie Firewall-cmd anweisen, in die Zone für das Heimnetzwerk zu wechseln, öffnet Firewalld automatisch alle zugehörigen Ports – und das mit nur einem einzigen, kompakten Befehl.

Netterweise bringt Firewalld bereits ein paar vordefinierte Zonen mit: Die private Zone home winkt von IPP-, Samba- und DHCPv6-Clients angeforderte Antworten durch und gestattet von außen den Zugriff auf die Dienste SSH und MDNS. Die öffentliche Zone public stellt das genaue Gegenteil dar und weist grundsätzlich alle eingehenden Verbindungen ab – Ausnahmen bilden nur SSH-Anfragen und Antworten für einen DHCPv6-Client.

Eine Zone kann nicht nur Services aktivieren, sondern auf Wunsch auch direkt einzelne Ports öffnen, ausgewählte ICMP-Nachrichten blocken oder durchlassen, Masquerading ein- und ausschalten sowie Forward-Ports einrichten. Alle verfügbaren Zonen listet das Kommando firewall-cmd --get-zones auf.Welche davon gerade standardmäßig aktiv ist, verrät firewall-cmd --get-default-zone. Der folgende Befehl wechselt in die Zone home (das Ergebnis zeigt Abbildung 6):

# firewall-cmd --set-default-zone=home
Abbildung 6: Mit den Parametern --zone=home und --list=all aufgerufen, liefert Firewall-cmd die Netzwerkschnittstelle, für die die Zone home gerade gilt (in diesem Fall p2p1), sowie alle darin aktiven Services.

Jede einzelne Netzwerkschnittstelle können Sie in eine andere Zone verschieben. Im Beispiel aus Listing 2 fliegt die Netzwerkkarte p7p1 zunächst aus der Zone public und und landet anschließend in der Zone home (Abbildung 7).

Listing 2

# firewall-cmd --zone=public --remove --interface=p7p1
# firewall-cmd --zone=home --add --interface=p7p1
Abbildung 7: Hier wurde die Netzwerkkarte p7p1 in die Zone home gepackt.

Welche Netzwerkschnittstellen derzeit in welchen Zonen liegen, verrät der Befehl firewall-cmd --get-active-zones. Sobald Sie mehr als eine Zone verwenden, müssen Sie beim Aktivieren und Deaktivieren von einzelnen Services stets auch die Zone angeben (Abbildung 8). Der folgende Befehl schließt beispielsweise die SSH-Ports an allen Netzwerkschnittstellen in der Zone public:

# firewall-cmd --zone=public --remove --service=ssh

Die in der Zone public noch erlaubten Services verrät anschließend der Aufruf:

# firewall-cmd --zone=public --list=service
Abbildung 8: Hier wurde aus der Zone public (und nur aus dieser Zone) der Service ssh entfernt.

Die Konfigurationen der mitgelieferten Zonen liegen im Unterverzeichnis /usr/lib/firewalld/zones. Jede XML-Datei dort entspricht einer Zone, die für das Heimnetzwerk heißt beispielsweise home.xml. Wie Listing 3 zeigt, besteht deren Inhalt lediglich aus einer Liste mit allen Services, die in dieser Zone erlaubt sind.

Die Lang- und Kurzbeschreibungen sind optional, den Namen der Zone hingegen müssen Sie angeben – in Listing 3 heißt sie kurz und bündig home. Eigene Zone-Dateien gehören in das Verzeichnis /etc/firewalld/zones. Die hier platzierten XML-Dateien überschreiben wieder die mitgelieferte Zone-Datei gleichen Namens.

Listing 3

<?xml version="1.0" encoding="utf-8"?>
<zone name="home">
  <short>Home</short>
  <description>For use in home areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="ipp-client"/>
  <service name="mdns"/>
  <service name="samba-client"/>
  <service name="dhcpv6-client"/>
</zone>

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

title_2014_08

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 0 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...