Firewall OS X - Das kann sie wirklich

Diskutiere mit über: Firewall OS X - Das kann sie wirklich im Sicherheit Forum

  1. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    hallo zusammen,

    nachdem der letzte Fred zum Thema Firewall unter OS X ein wenig abgedriftet ist, gibt es hier sozusagen die Antwort.
    Das kann Sie - und
    Das kann sie nicht!
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Ich möchte hier nicht mehr in die Diskussion einsteigen, ob oder ob nicht man eine Firewall einsetzten sollte.
    Eher schon die Diskussion, was man tun muss um was zu erreichen und in welcher Situation ist welche Konfiguration sinnvoll.

    Wer sich dazu entscheidet, die Firewall einzusetzen, wird hier einigen Hinweise finden, was man wie erreichen kann.
    Außerdem möchte ich erklären, wie man die Firewall überwacht, und wie man über die von Apple verordnete Grundfunktionalität hinauskommt.
    Das wird sehr einfach anfangen und - je nach Interesse und feedback - auch ein wenig in die Tiefe gehen.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Noch ein paar Punkte vorab:

    1. Ich behaupte nicht, dass ich alles weiss, was man wissen kann.

    2. Ich gebe mir Mühe, das Ganze so zu erklären, dass mich einerseits sowohl völlig "Ahnungslose" verstehen und andererseits auch "Poweruser" sich nicht langweilen. Wenn mir das nicht immer gelingt, bitte ich um Nachsicht.

    3. Ich hoffe, dass in meinen Ausführungen keine Fehler enthalten sind.
    Wer Fehler entdeckt: immer her damit; wer was beitragen kann: auch her damit.
    Die Benutzung der Informationen, die ich hier zu geben versuche erfolgt auf eigene Verantwortung und eigene Gefahr.

    4. Jede Art von feedback ist hoch-willkommen nur eine nicht: Wen das Thema nicht interessiert, der möge die Welt mit dieser "Information" verschonen und woanders hinsurfen!

    Wer noch Interesse hat, kann nun den nächsten Beitrag lesen :D
     
  2. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Zunächst ein (ganz kleines) wenig background-Theorie, die aber zum Verständnis des Folgenden notwendig (wenn auch nicht ausreichend) ist.

    Wie wohl fast alle wissen, ist eine Firewall - allgemein gesprochen - ein Instrument um den Datenverkehr zwischen vernetzten Computern zu kontrollieren und ggf. zu beeinflussen.

    Die Firewall, die mit OS X ausgeliefert wird heisst "ipfw" und ist schon sehr alt.
    Deswegen hatte ich sie auch schon - nicht ganz zu recht - als "verschlafenen alten Hund" bezeichnet, denn sie ist eigentlich sehr leistungsfähig in Ihrem Bereich.

    Bei der ipfw handelt es sich um eine sog. stateful packet inspection firewall
    Was heisst das ?
    packet inspection --> einfach gesagt: es werden IP Pakete untersucht
    stateful --> es werden nicht starre Regeln angewendet, sondern es wird auch der Zustand (state) der Verbindung geprüft und danach entschieden, ob oder ob nicht eine Regel anzuwenden ist.
    Das ist sehr wichtig, wie wir noch sehen werden.

    ~~~~~~~~~~~~~~~~~~~~~
    Was kann die ipfw ?
    ~~~~~~~~~~~~~~~~~~~~~
    Die ipfw untersucht also IP-Pakete und wendet - je nach dem Ergebnis der Untersuchung - bestimmte Regeln an.
    Untersucht werden im Wesentlichen folgende Eigenschaften, wobei nicht immer alle geprüft werden müssen:
    - Netzwerkprotokoll
    - Quell- und Ziel-IP-Adresse
    - Quell- und Zielport
    - die Schnittstelle von der das Paket kommt, und/oder zu dem das Paket (wieder) hinausgeht
    - die Richtung des Datenverkehrs
    - Der Zustand der Verbindung, bzw. bestimmte flags der IP-Header
    - in bestimmten Fällen können auch Inhalte geprüft und selektiv verarbeitet werden.

    Nach der Prüfung entscheidet die Firewall anhand eines Regelsatzes (mehr dazu später), was mit einem Pakete geschehen soll.
    einige wichtige Möglichkeiten wären:
    - einfach weiterleiten (= Datenverkehr ist erlaubt)
    - einfach wegwerfen(= Datenverkehr ist verboten)
    - wegwerfen und eine bestimmte "Nachricht" zurückschicken.
    - umleiten des Paketes

    Zusätzlich, und das finde ich besonders interessant, können noch sehr differenzierte Logs geführt werden.
    Standardmäßig ist diese Funktion jedoch aus unerklärlichen Gründen deaktiviert, obwohl ein entsprechendes Logfile unter /var/log/ipfw.log bereits vorbereitet ist
    Unter Jaguar ließ sich das noch einigermaßen einfach einschalten.
    Bei Panther ist diese Möglichkeit aufgrund einer Fehlkonfiguration in der Standardinstallation jedoch nur mit zusätzlichen Schritten möglich.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    Was kann die ipfw nicht?
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    Bis auf ganz wenige und eingeschränkte Ausnahmen kann die ipfw keine aktiven Angriffe abwehren.
    Diese Funktionalität bleibt wohl den sog. Hardware Firewalls vorbehalten (ja, ich weiss auch auf denen läuft eine Software und ein Betriebssystem)
     
  3. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Und wie setzt man die Firewall ein ?
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Anmerkung: Für Beispiele verwende ich die "tcsh" mit einer erweiterten Beispielkonfiguration und gelegentlich die "zsh".
    Falls also bei euch Befehle nicht funktionieren: Bitte posten (denn manchmal vergesse ich einfach anstelle der aliasse die richtigen Befehle einzusetzen).
    Außerdem sind für alle ipfw root rechte erforderlich (eh klar, oder ?); ich verzichte daher auf das vorangestellte sudo
    Eingaben sind blau, Ausgaben der Shell rot dargestellt

    Wir gehen nun einmal davon aus, dass der Rechner sich nicht in einem LAN befindet, aber gelegentlich mit dem Internet verbunden wird.
    Dies dürfte für die meisten user zutreffen und außerdem die einfachste aller denkbaren realistischen Situationen sein.
    Nun muss man zunächst wissen, dass die Firewall entweder in den Kernel oder in Kernelerweiterungen einkompiliert ist und grundsätzlich nicht abgeschaltet werden kann.
    Das ist sehr sehr wichtig !
    Wenn die Firewall in der grafischen Oberfläche gestoppt ist, heisst das nur: Alles ist erlaubt.

    Die aktuelle Einstellung der ipfw werden wir immer so auslesen:
    ipfw list
    Die Ausgabe wird dann so aussehen:
    65535 allow ip from any to any

    Dazu kann man folgendes sagen.
    - für jede Regel gibt "list" ein Zeile aus.
    - die Regeln sind durchnummeriert bis 65535 (= 2^16)
    - eine Nummer kann mehrmals verwendet werden (ob das sinnvoll ist sei dahingestellt, notwendig ist es jedenfalls meistens nicht)
    - die Regeln werden von oben nach unten durchgeprüft
    - trifft eine Regel zu, wird die Prüfung i. d. R. beendet und eine Aktion ausgeführt.
    - die hier ausgegebene Regel ist eine der wichtigsten; fehlt eine "allow" Regel, ist kein Datenverkehr (traffic) möglich.
    - den Aufbau einer Regelzeile bekommt man erklärt, wenn man einfach ipfw eingibt.

    Der einfachste Gebrauch der Firewall unter Mac OS X besteht wohl darin, dass man Sie einfach einschaltet.
    Dazu sollte man sich bewusst sein, dass die Firewall (wohl aus Gründen des Komforts) eng mit der Systemeinstellung "Sharing" zusammen arbeitet.
    Wenn wir nun also die Firewall aktivieren und keine "Sharing" Dienste aktivieren passiert folgendes:
    ipfw list
    02000 allow ip from any to any via lo*
    02010 deny ip from 127.0.0.0/8 to any in
    02020 deny ip from any to 127.0.0.0/8 in
    02030 deny ip from 224.0.0.0/3 to any in
    02040 deny tcp from any to 224.0.0.0/3 in
    02050 allow tcp from any to any out
    02060 allow tcp from any to any established
    02070 allow tcp from any to any 25 in
    02080 allow tcp from any to any 514 in
    02090 allow tcp from any to any 69 in
    12190 deny tcp from any to any
    65535 allow ip from any to any

    Nun wird es schon interessanter:
    Die Regeln bedeuten der Reihe nach folgendes (es ist wichtig, daran zu denken, dass die Regeln von oben nach unten durchlaufen werden)
    02000 allow ip from any to any via lo*
    > erlaube ip (= jedes Protokoll) von any (=jede IP-Adresse)nach any über io(=loopback-Interface)
    02010 deny ip from 127.0.0.0/8 to any in
    > verbiete ip von 127.0.0.0/8 nach any in (hereinkommend)
    02020 deny ip from any to 127.0.0.0/8 in
    > verbiete ip von 127.0.0.0/8 nach any in; dadurch wird eine bestimmte Art von spoofing-Angriffen unmöglich gemacht, die aber eher theoretischer Natur ist oder sehr großes know-how benötigt
    02030 deny ip from 224.0.0.0/3 to any in
    02040 deny tcp from any to 224.0.0.0/3 in

    > diese beiden Regeln beziehen sich auf bestimmte multi-cast Adressen, die exakte Bedeutung ist mir in diesem Fall nicht bekannt
    > Zum Nachdenken darüber hatte ich bisher keine Lust
    02050 allow tcp from any to any out
    Diese Regel und die zwei folgenden sind sehr wichtig
    Diese erlaubt es tcp-Verbindungen von jeder internen Adresse nach draußen (=Internet oder ggf. zu anderen Rechnern im LAN) aufzubauen
    02060 allow tcp from any to any established
    > Hier kommt die erste "stateful" Analyse;
    > Sie sagt: erlaube tcp-traffic in beiden Richtungen, wenn eine Paket die Eigenschaft "established" aufweist.
    > einfach gesagt: erlaube Traffic, wenn die Kommunikation von innen begonnen wurde
    > Beispiele wären, das abrufen von email oder Surfen im Web
    12190 deny tcp from any to any
    > verbiete alle anderen tcp-Pakete
    65535 allow ip from any to any
    > erlaube alle ip Pakete, auf die keine der o. g. Regeln zutrifft.

    Nun die drei große Preisfrage für Mitdenker:
    1. Was ist noch erlaubt ???
    2. Welches Bedürfnis vieler User kann so niemals befriedigt werden ?
    3. Wo ist der große Haken an der ganzen Sache ?

    kleiner Tip, manche Antworten sind als Fragen im letzten Fred zu finden:
    ----------
    So, hier mach ich mal für´s erste Schluss (Verdauungspause).
    Bei entsprechendem Interesse kann ich noch ein paar Sätze zur weiteren Konfiguration schreiben.
     
  4. echt0711

    echt0711 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    12
    Registriert seit:
    11.10.2003
    Ich sage nur WOW - bin begeistert… das sind doch jetzt genau die Infos, auf die ich von Anfang an gehofft hatte, als ich den ursprünglichen Thread eingestellt hab… clap
     
  5. echt0711

    echt0711 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    12
    Registriert seit:
    11.10.2003
    hab mir gerade mal die ipfw mit "ipfw list" angeschaut… Normaler User im Terminal geht nicht, Admin User auch nicht - jedes Mal kommt die Meldung "operation not permitted". Erst als ich root freigeschaltet habe und unter root eingeloggt war, hat die ipfw ihre Einstellungen ausgespuckt… finde ich ein bißchen hart gelöst - hast Du eine Erklärung für diese Restriktion?

    Grüsse,

    micha
     
  6. echt0711

    echt0711 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    12
    Registriert seit:
    11.10.2003
    ...zu Preisfrage 3: Der Haken ist

    02050 allow tcp from any to any out

    denn das heisst, daß mal grundsätzlich jeder Datenverkehr von innen nach außen möglich ist… rein theoretisch würde ich es also nichtmal mitbekommen, wenn irgendeine Software mal eben "nach Hause" telefoniert... richtig?

    Noch eine Frage die mir einfällt: hier sind nur TCP Regeln besprochen. Wie verhält es sich mit UDP, das von Sound-Streams benutzt wird und auch - soweit ich weiss - von Apple Remote Desktop…
     
  7. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    hallo echt0711

    sudo ipfw list
     
  8. echt0711

    echt0711 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    12
    Registriert seit:
    11.10.2003
    ups... überlesen :rolleyes:

    na dann ist ja alles klar! Oder zumindest fast… jetzt fehlt nur noch die Anleitung "wie richte ich die ipfw nach meinem Geschmack ein und wo sind ihre Grenzen"
     
  9. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    hallo echt

    richtig, aber das dachte ich mir eigentlich als Antwort auf Frage 2
    ---
    Frage 1: Was ist noch möglich ? u. a. UDP
    ---
    und der Haken ist: man kann mit der grafischen Oberfläche überhaupt keinen Datenverkehr von innen nach außen unterbinden.
    Kritisch z. B., wenn man den Mac als Router benutzt oder Windows Sharing aktiv hat
     
  10. TobyMac

    TobyMac MacUser Mitglied

    Beiträge:
    2.804
    Zustimmungen:
    0
    Registriert seit:
    19.11.2002
    - gelöscht, falscher Fres - :D
     
Die Seite wird geladen...
Ähnliche Themen - Firewall kann sie Forum Datum
Mac OS X Firewall und 1Password 6 Sicherheit 14.04.2016
Firewall, Anti-Viren Programm Sicherheit 23.11.2015
Protokoll der Firewall bei Yosemite? Sicherheit 03.04.2015
Problem Firewall postgreSQL popup??? Sicherheit 12.01.2015
Ältere OSX Versionen noch sicher? (Stand 2014) Sicherheit 03.10.2014

Diese Seite empfehlen

Benutzerdefinierte Suche