Aus LinuxUser 09/2012

Fedoras frische Firewall (Seite 2)

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.
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 <code>--zone=home</code> und <code>--list=all</code> aufgerufen, liefert Firewall-cmd die Netzwerkschnittstelle, für die die Zone <code>home</code> gerade gilt (in diesem Fall <code>p2p1</code>), sowie alle darin aktiven Services.
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 <code>p7p1</code> in die Zone <code>home</code> gepackt.
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:

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 09/2012 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: