Home / LinuxUser / 2012 / 09 / Fedoras frische Firewall

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian leicht gemacht
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Neues Mäuerchen

Fedoras frische Firewall

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

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

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

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

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>
Tip a friend    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 97 Punkte (6 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...