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
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
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:
Öffnen Sie /etc/pf.conf in einem Texteditor.
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
Speicher die Datei.
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).
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.
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.
ipfw
relevant? apple.stackexchange.com/questions/33871/…Antworten:
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:
quelle
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:
Wenn Sie einen UDP - Port öffnen müssen, ändern
tcp
zuudp
, wenn Sie beide benötigen, eine zweite Zeile hinzufügen. Weitere Details finden Sie inman 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.0
oder verwenden::0
), nicht localhost (127.0.0.1
oder::1
).quelle
-n
an pfctl überprüft die Regeln und lädt sie gezielt nicht. Verwenden Sie nur-f /etc/pf.conf
zum Laden der Regeln. Stellen Sie sicher, dass sie mit geladen sindpfctl -sr
. Obwohl pfctl-Regeln erforderlich sind, reicht dies nicht aus, um den Zugriff auf einen El Capitan an einem bestimmten Port zuzulassen.localhost
); man bekommt den Hostnamen mit$ hostname
in 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.ipfw wird von Apple nicht mehr unterstützt. Mountain Lion und später pfctl.
http://support.apple.com/kb/ht5413
quelle
Hier ist ein Einzeiler, anstatt dass der Benutzer mit Vim herumspielen muss. Nützlich für die Automatisierung.
Oder eine Alternative für Linux-Benutzer
Stellen Sie einfach sicher, dass Sie
8080
im Beispiel das ändern , was Sie im Sinn haben. Tauschen Sie TCP mit UDP, wenn Sie möchten.quelle