So öffnen Sie einen bestimmten Port in Firewall OS X 10.9.4


15

Wie öffne ich einen bestimmten Port in der Firewall? Ich kann die Option "Verbindungen von Anwendung zulassen" nicht verwenden, da ich den Port für Jenkins öffnen möchte, der nicht in der Liste enthalten ist ...


Welche Ports und Protokolle sollen von Jenkins abgehört werden können? Dieser Beitrag hilft Ihnen zu sehen, auf welchen Ports er konfiguriert ist ... stackoverflow.com/a/10106086/475228
bmike

Auf Proto-TCP-Port 8080
Guy

Wäre dieser Beitrag ipfwrelevant? apple.stackexchange.com/questions/33871/…
bmike

Antworten:


7

Apples OS X Mavericks enthält drei Firewalls. Zunächst die Application Level Firewall, die über die Systemeinstellungen konfiguriert werden kann. Es gibt aber auch ipfw, eine Paketfilter-Firewall wie netfilter / iptables unter GNU / Linux und pf (FreeBSD / OpenBSD).

Sie können ipfw entweder über die Befehlszeile oder über ein grafisches Frontend wie das free / libre WaterRoof konfigurieren .

Sie könnten mit einem ipfw-Befehl wie folgt beginnen:

sudo ipfw add 31010 allow tcp from any to any dst-port 8080

7
ipfw ist veraltet und weg in El Capitan
slashdottir

21

Ich hatte das gleiche Problem unter OS X Yosemite (10.10.3). Fanden diesen Blog-Beitrag , der klare Anweisungen bietet. Wir können ipfw nicht mehr verwenden, da es veraltet ist. Verwenden Sie stattdessen pfctl, das leider keine schöne Befehlszeile hat, um ihm mitzuteilen, dass er einen Port öffnen soll. Stattdessen müssen Sie:

  1. Öffnen Sie /etc/pf.conf in einem Texteditor.
  2. Fügen Sie eine Zeile wie diese hinzu:

# Öffnen Sie auf allen Schnittstellen den Port 8080 für TCP

übergeben Sie in Proto-TCP von einem beliebigen zu einem beliebigen Port 8080

  1. Speicher die Datei.
  2. Laden Sie die Änderungen mit:

sudo pfctl -f /etc/pf.conf

Wenn Sie einen UDP - Port öffnen müssen, ändern tcpzu udp, wenn Sie beide benötigen, eine zweite Zeile hinzufügen. Weitere Details finden Sie in man pf.conf.

Stellen Sie außerdem sicher, dass Ihr Server die tatsächliche Schnittstelle überwacht, auf die er zugreifen soll (oder alle Schnittstellen, die 0.0.0.0oder verwenden ::0), nicht localhost ( 127.0.0.1oder ::1).


3
Whoa, neustarten? Müssen Sie wirklich neu starten, um einen Port zu öffnen?
Jcollum

1
Die Übergabe -nan pfctl überprüft die Regeln und lädt sie gezielt nicht. Verwenden Sie nur -f /etc/pf.confzum Laden der Regeln. Stellen Sie sicher, dass sie mit geladen sind pfctl -sr. Obwohl pfctl-Regeln erforderlich sind, reicht dies nicht aus, um den Zugriff auf einen El Capitan an einem bestimmten Port zuzulassen.
Brian M. Hunt

... Man muss auch sicherstellen, dass die Anwendung an den Hostnamen gebunden ist (nicht localhost); man bekommt den Hostnamen mit $ hostnamein die Kommandozeile. Sie können die Firewall auch neu starten, anstatt sie neu zu starten. Gehen Sie dazu zu Systemeinstellungen -> Sicherheit und Datenschutz -> Firewall -> Firewall ausschalten und dann Firewall einschalten.
Brian M. Hunt

@Keen fantastischen Avatar - tolle Erinnerungen!
Dónal

6

ipfw wird von Apple nicht mehr unterstützt. Mountain Lion und später pfctl.

http://support.apple.com/kb/ht5413


5
Können Sie den spezifischen Befehl zum Öffnen eines Ports veröffentlichen?
Thias

Wenn Sie einen bestimmten Port hinzufügen möchten, müssen Sie meines Erachtens die Konfigurationsdatei bearbeiten (siehe krypted.com/mac-security/… und nach dem Teil mit 192.168 suchen). Wenn Sie jedoch sicherstellen möchten, dass eine Anwendung nicht blockiert wird, enthält jamfnation.jamfsoftware.com/discussion.html?id=6566 im abschließenden Kommentar eine ziemlich gute Zusammenfassung. Ich benutze immer noch meistens 10.6, also habe ich nicht viel mit pfctl gearbeitet.
Kent

1

Hier ist ein Einzeiler, anstatt dass der Benutzer mit Vim herumspielen muss. Nützlich für die Automatisierung.

sed -i '' -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf

Oder eine Alternative für Linux-Benutzer

sed -i -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf

Stellen Sie einfach sicher, dass Sie 8080im Beispiel das ändern , was Sie im Sinn haben. Tauschen Sie TCP mit UDP, wenn Sie möchten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.