Bundesamt für Sicherheit in der Informationstechnik

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:

  • Anwendungsfirewall
    Die Anwendungsfirewall ermöglicht das Sperren und das Freigeben der Kommunikation von bestimmten Anwendungsprogrammen. Dazu muss der Anwender nicht wissen, welcher Port verwendet wird. Die Anwendungsfirewall überprüft auch die Signatur eines Programms. Es ist nicht möglich, ein für die Netzkommunikation freigegebenes Programm zu manipulieren, ohne dass eine erneute Firewall-Regeldefinition abgefragt wird. Unter Mac OS X ist die Anwendungsfirewall im Auslieferungszustand deaktiviert. Diese sollte unter "Systemeinstellungen | Sicherheit | Firewall" aktiviert werden. Über den Menüpunkt "weitere Optionen" ist es möglich, die Einstellungen anzupassen:
    Mit der Option "Alle eingehenden Verbindungen blocken" werden nur die folgenden Mac OS X Datenverbindungs- bzw. Kommunikationsdienste erlaubt:
  • configd: Zur Implementierung von DHCP und anderen Netzkonfigurationsdiensten
  • mDNSResponder: Zur Implementierung von Bonjour
  • racoon: Zur Implementierung von IPSec
    Bemerkung: Werden Freigaben wie beispielsweise "Dateifreigabe" oder "Entferne Anmeldung" aktiviert, öffnet Mac OS X selbstständig die notwendigen Ports in der Firewall, über den die Dienste kommunizieren können.
    Wird die Option "Alle eingehenden Verbindungen blocken" nicht verwendet, wird über die Liste der Anwendungsfirewall definiert, welche Dienste und Programme zum Öffnen von Ports in der Firewall berechtigt sind. Mit einem Mausklick auf das "+"-Symbol können Programme dieser Liste hinzugefügt werden. Nachdem ein Programm zu dieser Liste hinzugefügt wurde, muss definiert werden, ob eingehende Verbindungen für dieses Programm erlaubt oder blockiert werden sollen. Auch Befehlszeilenprogramme können zu dieser Liste hinzufügt werden. Beim Hinzufügen einer Anwendungssoftware zu dieser Liste ergänzt Mac OS X das Programm um eine digitale Signatur, falls dies nicht zuvor schon einmal geschehen ist. Wird ein Programm nachträglich verändert, dass sich in der Liste befindet, wird der Anwender erneut aufgefordert, für das Programme eingehende Netzverbindungen zu erlauben oder zu blockieren. Auch für Programme ohne digitale Signatur, die sich nicht in dieser Liste befinden, wird dem Anwender ein Dialogfeld mit Optionen zum Erlauben oder Blockieren von Verbindungen angezeigt. Sobald der Anwender die Verbindungen erlaubt oder blockiert, versieht Mac OS X das Programm mit einer digitalen Signatur und fügt es automatisch, einschließlich der vergebenen Berechtigungen, zur Liste der Anwendungsfirewall hinzu.
    Wird die Option "Signierter Software automatisch erlauben, eingehende Verbindungen zu empfangen" aktiviert, können alle Programme, die mit einer digitalen Signatur versehen sind, eingehende Verbindungen empfangen, auch wenn die Programme nicht in der Liste angezeigt werden. Diese digitale Signatur muss von einer Zertifizierungsstelle (CA) ausgestellt worden sein, der Apple vertraut. Seit der Version Leopard wurde jede ausführbare Betriebssystemkomponente von Apple mit einer digitalen Signatur versehen und kann eingehende Verbindungen empfangen. Auch digital signierte Programme, die automatisch von anderen Programmen geöffnet werden, können zu dieser Gruppe gehören. Soll der Netzzugriff eines Programms mit einer digitalen Signatur über die Firewall blockiert werden, muss das Programm zuerst zur Application Firewall Liste hinzufügt und dann ausdrücklich die Verbindungen blockiert werden. Wird der Zugriff eines Programms über die Firewall blockiert, kann das zu Störungen des Programms oder anderer, darauf basierender Programme führen oder die Leistung anderer verwendeter Programme und Dienste beeinflussen. Da diese Option nicht transparent ist, sollte von der Verwendung abgesehen werden.
    Die Option "Tarn-Modus aktivieren" sollte nicht verwendet werden, da diese Option dem Internetstandard RFC 1122 widerspricht. Durch einen aktivierten Tarn-Modus werden keine Antworten auf Anfragen gesendet, die von einer blockierten Anwendung ausgehen. Ping ist beispielsweise eine der ICMP -Nachrichten, die durch den Tarnmodus nicht mehr funktionieren. Der Tarn-Modus bietet darüber hinaus aber keinen Schutz. Wäre der Rechner tatsächlich nicht vorhanden, würde die letzte Station vor dem Rechner an den Sender melden, dass das Ziel nicht erreichbar ist. Im Tarnmodus kommt jedoch keine Nachricht zurück. Daraus kann der Sender schließen, dass der Rechner da ist, aber nicht antwortet.
  • Der Paketfilter bzw. IP-Firewall (ipfw)
    Die andere bei Mac OS mitgelieferte Personal Firewall ist die IP-Firewall (ipfw) beziehungsweise der Paketfilter. Der Paketfilter arbeitet auf einer niedrigeren OSI-Schicht und hat Vorrang vor der Anwendungsfirewall. Die IP-Firewall ipfw ist nur für das Internet-Protokoll in der Version 4 geeignet, soll der Datenverkehr von IPv6 kontrolliert werden, kann die Kommandozeilenapplikation IP6FW eingesetzt werden. Werden beide Versionen des Internet-Protokolls eingesetzt, so sind zwangsläufig mehrere Dateien für die Konfiguration der Firewall notwendig, wobei sich der Unterschied größtenteils auf die Adressformate von IP v4 und IPv6 beschränkt.

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:

  • Wurde festgelegt, welche Programme unter Mac OS X Netzzugriff erhalten?

  • Wurde die Personal Firewall von Mac OS X aktiviert und entsprechend den Empfehlungen eingestellt?

  • Wird die Protokolldatei der Personal Firewall von Mac OS X regelmäßig auf Auffälligkeiten untersucht?

Stand: 13. EL Stand 2013

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK