SuSEfirewall2/Über Pakete hinzugefügte Dienstdefinitionen
aus openSUSE, der freien Wissensdatenbank
Inhaltsverzeichnis |
Über
Dieser Artikel beschreibt, wie Sie eine neue Funktion von SuSEfirewall2 nutzen und unterstützen - Definition von Diensten (bspw. Samba Server) über spezielle Konfigurationsdateien.
Wofür ist das gut?
Einige komplexe Dienste müssen viele verschiedene TCP-, UDP-, RPC-Ports öffnen und/oder verschiedene IP-Protokolle oder hereinkommende broadcasts auf einigen Ports erlauben. Zusätzlich könnten Sie mehrere Dienste haben, die diese Ports untereinander teilen (wie Portmap). Sobald Sie diese Ports in der Firewall geöffnet haben, können Sie sich nicht mehr so leicht daran erinnern, welcher Port zu welchem Dienst gehört.
Diese neue Funktion (SuSEfirewall2 seit openSUSE 10.2, YaST Firewall seit openSUSE 10.3) erlaubt es ihnen, einfache Konfigurationsdateien zu definieren - eine pro Dienst. Diese Dienste werden dann in speziellen Konfigurationsvariablen von SuSEfirewall2 spezifiziert (eine Variable pro Firewall-Zone).
Diese Funktion fügt SuSEfirewall2 eine neue Abstraktionsschicht hinzu. Sie müssen sich nicht mit einer Mixtur aus Ports herumschlagen, da Dienste einfach zu verstehen sind.
Warum sind Dienstdefinitionen in mehreren Pakten enthalten?
Es wird eine Menge Dienstdefinitionen in openSUSE 10.3 geben und ihre Zahl wird in Zukunft noch ansteigen. Eine statische Liste von Diensten funktioniert nicht für eine große Anzahl von ihnen (YaST hat bereits einige fest kodierte Dienste - sie werden durch die neuen ersetzt). Ein dynamischer Satz von Diensten ist mit den aktuell installierten Paketen verknüpft.
Wenn Sie apache2 nicht installieren, dann ist es auch nicht nötig, HTTP Server erlauben in der Benutzerschnittstelle der YaST-Firewall anzubieten, und das Verzeichnis mit der Konfiguration zu füllen, die niemals genutzt wird.
Wie definiert man einen neuen Dienst?
All diese Dienstdefinitionen werden in einem Verzeichnis gespeichert: /etc/sysconfig/SuSEfirewall2.d/services Die Datei mit der Dienstdefinition sollte dem zugehörigen RPM-Paket angehören und sollte auch den 'Namen des Pakets oder den des Daemons widerspiegeln, um Konflikte mit anderen Paketen zu vermeiden.
Nutzen Sie die Datei /etc/sysconfig/SuSEfirewall2.d/services/TEMPLATE als Vorlage.
Als Referenz soltle die alte statische Liste der Dienste genutzt werden. Sie finden Sie in der Datei /usr/share/YaST2/modules/SuSEFirewallServices.ycp (Teil von yast2.rpm).
Beispiel
Dies ist ein Beispiel der Dienstdefinition des Samba Servers, die in die Datei /etc/sysconfig/SuSEfirewall2.d/services/samba-server geschrieben werden könnte (Das Paket samba vereint Client- und Serverfunktionen in einem Paket):
## Name: Samba Server ## Description: Opens ports for Samba Server with broadcast allowed. # space separated list of allowed TCP ports TCP="netbios-ssn microsoft-ds" # space separated list of allowed UDP ports UDP="netbios-ns netbios-dgm" # space separated list of allowed RPC services RPC="" # space separated list of allowed IP protocols IP="" # space separated list of allowed UDP broadcast ports BROADCAST="netbios-ns netbios-dgm"
Wichtige Zeilen werden durch fetten Text hervorgehoben. Die Variable Name (die ruch zwei #-Zeichen versteckt wird), wir in YaST Firewall als Name genutzt, der in der Benutzerschnittstelle angezeigt wird.
Dieses Beispiel öffnet die TCP-Ports 139 und 445 und die UDP-Ports 137 und 138 und erlaubt broadcast auf UDP-Port 137 und 138.
Unterstützte Formate
Es gibt verschiedene Formate, die in den Konfigurationswerten erlaubt sind.
- Port-Namen - bspw., netbios-ns, erlaubt TCP, UDP und BROADCAST.
- Port-Nummern - bspw., 137, erlaubt in TCP, UDP und BROADCAST.
- Port-Bereiche - bspw., 200:250, erlaubt in TCP, UDP und BROADCAST.
- RPC-Dienstnamen - bspw., ypbind, erlaubt in RPC (diese Dienste belegen dynamisch freie Ports, weshalb sie über den Namen der Anwendung definiert werden müssen, die auf diesem Port lauscht).
- IP-Protokollname - bspw., esp, erlaubt in IP.
## Name: Exemplary Service ## Description: Opens several ports and makes your system insecure TCP="ssh 13:20 http 130:150 32000:38000" UDP="netbios-ns 150:300" RPC="portmap nlockmgr mountd nfs nfs_acl" IP="esp" BROADCAST="netbios-ns netbios-dgm"
Wie wird der Dienst in der Firewall-Konfiguration genutzt?
Das ist ganz einfach. Es gibt drei spezielle Variablen in der /etc/sysconfig/SuSEfirewall2 Konfigurationsdatei: FW_CONFIGURATIONS_EXT, FW_CONFIGURATIONS_DMZ und FW_CONFIGURATIONS_INT. Nutzen Sie einfach den Dateinamen (der einen Dienst definiert) und schreiben Sie ihn in die ausgewählte Variable.
Beispiel
FW_CONFIGURATIONS_DMZ="samba" FW_CONFIGURATIONS_EXT="bind apache2 lukemftp"
Dieses Beispiel nutzt vier definierte Dienste, von denen der Samba Server in der demilitarisierte Zone erlaubt ist, die anderen gehören der externen Zone an.

