M 5.166 Konfiguration der Mac OS X Personal Firewall

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Administrator

Zu den Sicherheitsmechanismen, die Mac OS X mitbringt, gehört eine Personal Firewall. Eine Personal Firewall bietet diverse Sicherheitsfunktionen wie eine Paketfilter-Funktion, um die Netzkommunikation bestimmter ein- und ausgehender Verbindungen des lokalen Systems zu unterbinden.

Bevor die Personal Firewall unter Mac OS X eingesetzt wird, müssen zwei Fakten überprüft werden. Mit der Personal Firewall können ein- oder ausgehende Verbindungen gefiltert werden oder der Zugriff von Programmen und Diensten auf das Internet eingeschränkt werden. Bevor für einzelne Programme die Netzkommunikation abgeschaltet wird, sollte geprüft werden, ob es möglich ist, die Netzkommunikation Programm-intern abzuschalten. Außerdem sollte geprüft werden, ob bei dem jeweiligen Programm oder Dienst nach dem Sperren der Netzkommunikation keine unerwünschten Nebeneffekte auftreten. Wird direkt versucht, mit einer Personal Firewall die Netzkommunikation eines Programms zu unterbinden, können Probleme auftreten, da ein Programm auf die Netzkommunikation angewiesen sein kann und auf eine Antwort aus dem Netz wartet, bevor das Programm weiter ausgeführt wird.

Der Einsatz einer Personal Firewall, die direkt auf dem zu schützenden Client-Computer betrieben wird, ersetzt in keinem Fall ein eigenständiges Sicherheitsgateway (Firewall), dass das gesamte interne Netz der Institution schützt. Um Mac OS X Rechner bei höherem Schutzbedarf vor Angriffen aus dem lokalen Netz zu schützen, kann der Einsatz einer Personal Firewall sinnvoll sein. Bei einem mobilen Einsatz von Mac OS X Rechnern ist die Nutzung einer Personal Firewall immer empfehlenswert, um den Rechner vor Angriffen aus dem Internet zu schützen.

Vor dem Einsatz einer Personal Firewall muss festgelegt werden, welche Programme Netzzugriff erhalten sollen und welche nicht. Generell ist zunächst jegliche Netzkommunikation zu blockieren, im zweiten Schritt werden nur die gewünschten Ports oder Anwendungen freigeschaltet. Bei der Einstellung der Personal Firewall sollte den Empfehlungen in Maßnahme M 4.238 Einsatz eines lokalen Paketfilters gefolgt werden.

Mac OS X bietet zwei Firewalls, die auf unterschiedlichen Ebenen arbeiten:

Die IP-Firewall und die Anwendungsfirewall können parallel betrieben werden und ermöglichen zusammen eine umfassende Regelung der Netzkommunikation. Die Anwendungsfirewall kann in den Systemeinstellungen unter Sicherheit in dem Menüreiter "Firewall" aktiviert und konfiguriert werden.

Mit ipfw ist es möglich, feinere Regeln zu definieren, als mit der Anwendungsfirewall. Die Handhabung ist etwas komplizierter, da sie über die Kommandozeile konfiguriert wird.

Um mit ipfw eine TCP-Verbindung zu verschiedenen Servern auf Port 80 zu blockieren, kann folgender Befehl verwendet werden:

ipfw add 500 deny tcp from any to any dst-port 80

Jede Firewall-Regel hat eine Nummer und wird von der höchsten bis zur niedrigsten Nummer vom System abgearbeitet. Somit kann eine Regel durch eine andere Regel verändert oder ungültig werden. Da ipfw sehr systemnah arbeitet, sind Administrationsrechte notwendig, um Befehle auszuführen. Wird ein umfangreiches Firewall-Regelwerk erstellt, so sollte der Inhalt in eine Konfigurationsdatei ausgelagert werden. Um die Regeln aus dieser Konfigurationsdatei automatisch zu laden, ist ein Shellscript notwendig, das wie folgt aussehen kann:

#!/bin/sh

# bisherige FW-Regeln entfernen

/sbin/ipfw -q flush

#IPFW ausführen und Regeln aus Datei laden

/sbin/ipfw -q /ABLAGEORT/Firewall-Regelwerk.conf

# Logging nach /var/log/system.log aktivieren

/usr/sbin/sysctl -w net.inet.ip.fw.verbose=1

Anschließend müssen entsprechende Rechte auf das Shellscript vergeben werden, damit die Befehle ausgeführt werden können:

sudo chown root:admin Shellscript.sh

sudo chmod 544 Shellscript.sh

Nach diesem Schritt muss das Shellscript bei jedem Computerstart ausgeführt werden. Unter Mac OS X wird von Apple die Verwendung von "launchd" für diese Aufgabe empfohlen. Der Systemdienst "launchd" benötigt zum Starten von Programmen eine speziell formatierte Datei (Plist) im Verzeichnis /Library/LaunchDaemons. Der Inhalt dieser Datei sieht wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Label</key>

<string>com.apple.firewall</string>

<key>ProgramArguments</key>

<array>

<string>/usr/local/bin/Shellscript.sh</string>

</array>

<key>RunAtLoad</key>

<true/>

</dict>

</plist>

Als letzten Schritt muss diese Plist-Datei entsprechende Rechte erhalten, beispielsweise mit dem folgenden Befehl:

sudo chown root:admin NameDer.plist

Die Änderungen können direkt ohne vorangegangenen Neustart mit dem folgenden Befehl eingelesen und aktiviert werden:

sudo launchctl load /Library/LaunchDaemons/NameDer.plist

Die Protokolldatei der Personal Firewall, zu finden unter /private/var/log/ipfw.log, sollte regelmäßig auf Auffälligkeiten, zum Beispiel auf eine hohe Anzahl fehlgeschlagener Fernzugriffe und Anmeldeversuche, überprüft werden. Firewall-Logdateien können sehr schnell wachsen und eine erhebliche Menge an Speicherplatz belegen. Es ist daher sinnvoll zu klären, welche Regeln eine hohe Priorität haben und protokolliert werden sollten und welche nicht. Ein entsprechender Befehl kann wie folgt aussehen:

ipfw allow log tcp from any to any dst-port 6112-6119

Mit diesem Befehl werden alle Verbindungsversuche zu einem Server auf TCP-Basis zu Port 6112 bis 6119 protokolliert.

Prüffragen: