Mac OSX Firewall-Tool pf

Discussion in 'macOS' started by JackCarver, Jun 4, 2014.

  1. JackCarver

    JackCarver Junior Member

    Versuch im Skript en0 durch en1 zu ersetzen. Ich seh gerade, dass du 2 aktive Netzwerkadapter hast, einmal en0 mit IP 192.168.178.53 und einmal en1 mit IP 192.168.178.44, ist das Absicht?

    Du kannst auch für beide Netzwerkadapter das Skript erweitern, indem du obige Regeln zwar mit en0 lässt und dieselben nur für en1 hinzufügst, das hat denselben Effekt. Du öffnest damit die FW für beide aktiven Adapter.

    Und dein OpenVPN Adapter heißt bei dir utun0, statt tun0. Wenn das also mit den Anpassungen weiter unten nicht klappt, dann ersetze mal tun0 durch utun0.

    Also so:

    Code:
    block all
    pass in on lo0 all
    pass out on lo0 all
    pass out on en0 proto udp to any port {1151,150,151,149,1149,1150,53,5353} keep state
    pass out on en0 proto tcp to any port {1152,152} keep state
    pass out on en0 to 192.168.2.0/24
    pass in on en0 from 192.168.2.0/24
    pass out on en1 proto udp to any port {1151,150,151,149,1149,1150,53,5353} keep state
    pass out on en1 proto tcp to any port {1152,152} keep state
    pass out on en1 to 192.168.2.0/24
    pass in on en1 from 192.168.2.0/24
    pass out on tun0 all keep state
    
     
  2. M

    Maximilian Junior Member

    Hi,

    vielen Dank für Deine Hilfe, jetzt funktioniert alles so wie es soll :) Das mit den zwei aktiven Netzwerkadaptern ist eigentlich nicht gewollt, aber jetzt sind sie ja beide abgesichert. Ehrlich gesagt, weiss ich auch nicht wieso es zwei sind.
     
  3. JackCarver

    JackCarver Junior Member

    Naja ich schätze du hast sowohl LAN als auch WLAN aktiv, daher 2 aktive Adapter. Aber ist wie du schon sagtest egal, da der Schutz alle einbezieht. Für die, die raus wollen müssen Ausnahmen her.
     
  4. f

    freitag Junior Member

    Ich versuche gerade herauszufinden welche Ports ich öffnen muss um das ganze mit (dem Mac OS X nativen) L2TP über IPSec zum laufen zu kriegen.

    Soweit bin ich schon (en0 ist mein WiFi):

    block all
    pass in on lo0 all
    pass out on lo0 all
    pass on en0 proto esp from any to any keep state
    pass on en0 proto udp from any to any port {500,1701}
    pass out on tun0 all keep state


    (Das ESP Protokoll und die UDP ports habe ich auf https://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol gefunden)

    Leider wird dennoch alles geblockt obwohl ich mit dem PP server verbunden bin via L2TP/IPSec (die Verbindung bleibt interessanterweise bestehen..).

    Ich würde mich über Tips freuen. Google hat mich mehr verwirrt, als geholfen :)
     
  5. JackCarver

    JackCarver Junior Member

    Hi, wenn du die Verbindung zum L2TP/IPsec herstellen kannst, dann musst du noch den Traffic auf dem virtuellen device freischalten genauso wie beim tun device für OpenVPN. Mit nem ifconfig nach erfolgter Verbindung siehst du wie das device heißt, dafür dann die Ausnahme hinzufügen.
     
  6. f

    freitag Junior Member

    Ah! Danke für das fehlende Puzzleteil, es heißt ppp0 :)

    Das hier funktioniert für mich:

    # Block everything by default
    block all

    # Allow all packets on local loopback interface
    set skip on lo0

    # Allow L2TP/Ipsec to establish a tunnel
    pass out on en0 proto udp from any to any port { 53,500,1701,4500 } keep state
    pass on en0 proto esp from any to any

    # Allow outgoing traffic through VPN
    pass out on ppp0 all keep state
     
  7. f

    freitag Junior Member

    Hm, ein kleines Problem habe ich noch.

    Die Regeln funktionieren wie sie sollen, aber wenn ich meine Airport-Wifi-Verbindung trenne und neu verbinde, dann klagt Airport natürlich über "Keine Verbindung zum Internet" (es wird ein Ausrufezeichen im Airport-Icon angezeigt). Bin ich einmal mit dem WLAN verbunden, kann ich die Regeln jedoch aktivieren und es funktioniert alles. Die WLAN-Verbindung wird auch nicht getrennt.

    So lange ich das Ausrufezeichen habe, kann ich keine L2TP Verbindung erstellen. Beißt sich hier die Katze in den Schwanz? Ohne Internet kein VPN, ohne VPN kein Internet :)

    Welche Ports müsste ich noch öffnen um Airport zufriedenzustellen? Ich habe UDP 1151,150,151,149,1149,1150,53,5353,500,1701,4500 und TCP 1152,152 offen zum testen, das reicht aber immer noch nicht.

    Danke für die Zeit.

    PS: Ich wünsche mir ein Perfect-Privacy Cocoa-Tool, dass die Verbindungen einrichtet, die Firewall zu macht, und dann die Verbindung überwacht :)
     
  8. JackCarver

    JackCarver Junior Member

    Dann mach ne Ausnahme für dein LAN, ich hab das meine ich irgendwo im Faden mal gepostet.
     
  9. f

    freitag Junior Member

    ​In der Tat, das war genug um Airport zufrieden zu stellen. Jetzt funktioniert alles wie gewollt.

    Vielen Dank.
     
  10. Ghost

    Ghost Junior Member

    Hey Jack, habe mal wieder Zeit gefunden um mich hier zu melden [​IMG]

    Deine Firewall Regeln funktionieren ohne Probleme unter Yosemite !

    Was die Firewall Regeln betrifft habe ich eine Frage an dich.
    Ich habe mal wieder Amule aus den Tiefen meiner HDD rausgeholt und installiert. (ja ja, lach nicht [​IMG], das Tool gibt es noch)
    Nur bekomme ich es mit aktivierter Firewall nicht zum Laufen.
    Genauer gesagt, bekomme ich eine LOW ID (der TCP und UDP Port sind anscheinend dicht), obwohl ich es in den Firewall Regeln eingetragen haben.

    Der Port 0815 ist für Amule

    Code:
    block all
    pass in on lo0 all
    pass out on lo0 all
    pass out on en0 proto udp to any port {1151,150,151,149,1149,1150,53,5353,0815} keep state
    pass out on en0 proto tcp to any port {1152,152,0815} keep state
    pass out on en0 to 192.168.178.0/24
    pass in on en0 from 192.168.178.0/24
    pass out on tun0 all keep state
    
    Wenn ich die Firewall deaktiviere bekomme ich eine HIGH ID (TCP und UDP Port sind offen)
    Was mache ich falsch?
    Hast du eine Idee?


    PS: Und bitte keine Kommentare über Amule, warum ich den verwende! Ich verwende ihn nur zum Spaß, da ich ihn zufällig auf der HDD gefunden habe.
    Wenn wir keine Lösung finden macht es auch nichts, ist wie gesagt nur Just for Fun


    THX
     
  11. JackCarver

    JackCarver Junior Member

    Du brauchst ein

    Code:
    pass in on tun0 all keep state
    
    für eingehende Verbindungen auf tun0. Amule braucht offene Ports ausgehend wie eingehend.
     
  12. Ghost

    Ghost Junior Member

    Hey Jack.

    Ich habe es sofort in die Tat umgesetzt.
    Was soll ich sagen, es läut jetzt ohne Probleme :):):)

    Wie immer bleibt mir nur ein fettes DANKE für die Unterstützung zu sagen.

    PS: Du könntest den Code noch im Script hinzufügen.
     
  13. JackCarver

    JackCarver Junior Member

    Ist hinzugefügt unter Regel 9 :)
     
  14. Ghost

    Ghost Junior Member

    Super!

    Ich habe da noch eine Frage:

    Ist es ein Sicherheitsrisiko, wenn ich die Ports für tun0 eingehend offen lasse, auch wenn momentan keine Software eigehende Ports braucht?
     
  15. JackCarver

    JackCarver Junior Member

    Ist immer ein Risiko, wenn man die Hütte nach innen aufmacht. Im Falle vom nach aussen offenen Ports, sind eingehende Verbindungen nur erlaubt für Antwortpakete auf von dir initiierte Verbindungen, also du surfst auf ne Seite und die Antwort wird durchgelassen. Machst du die Ports eingehend auf, können von aussen initiierte Verbindungen zu dir gelangen, da das allerdings via tun0 läuft und du dazu ja n Port Forward bei PP schalten musst, dass das überhaupt geht, ist das Risiko sehr gering. tun0 läuft ja auf ner IP, die aus'm Internet nicht direkt angesprochen werden kann, sondern nur über den VPN Server.
     
    Ghost likes this.
  16. b

    brick Junior Member

  17. JackCarver

    JackCarver Junior Member

    Ah mein Fehler, hab nicht gelesen, dass für Yosemite...Da startet es :)

    Wenn ich Activate Filter setze, sollte dann die FW aktiv sein?

    Egal was ich da anhake, es wird nix geblockt. Der Traffic geht immer raus.

    Und evtl noch das Helper Tool beenden mit Ende der App, sonst bleibt das als root Prozess aktiv, ohne dass es benötigt wird.
     
  18. b

    brick Junior Member

    Richtig. Aktivieren entspricht `pfctl -e -a "com.apple/249.Brick" -f /path/to/custom/config/file` und deaktivieren entspricht `pfctl -a "com.apple/249.Brick" -Fa`

    Siehe https://github.com/halo/Brick/blob/master/BrickLayer/Classes/BrickLayer.m#L57-L67

    Ist deine `/etc/pf.conf` modifiziert oder hast du `pfctl` mit `-f` selber gestartet?

    Mir ist auch schon aufgefallen, dass der Traffic z. B. im Browser trotzdem weiter geht aber Anfragen mit `curl` unmittelbar blockiert werden. Ich dachte, dass `-Fa` auch alle states schließen würde, bereits bestehende Verbindungen scheinen aber manchmal dennoch weiterzulaufen.

    Ah, schlau! Hast du eigentlich einen Github account? Das wäre leichter dort mit Issues (wohl dann auf Englisch) zu arbeiten.
     
  19. b

    bratfass New Member

    Hallo Jack,

    funktioniert Deine Anleitung auch für Yosemite? Danke schonmal...
     
  20. JackCarver

    JackCarver Junior Member

    Das funktioniert auch unter Yosemite, wie das dann unter El Capitan wird, gilt abzuwarten.
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice