Cómo abrir un puerto específico en Firewall OS X 10.9.4
15
¿Cómo abro un puerto específico en el firewall? No puedo usar el "permitir conexiones desde la aplicación" ya que quiero abrir el puerto para Jenkins, eso no está en la lista ...
¿En qué puerto (s) y protocolos desea que Jenkins pueda escuchar? Esta publicación lo ayudará a ver en qué puertos está configurado ... stackoverflow.com/a/10106086/475228
OS X Mavericks de Apple contiene tres firewalls. En primer lugar, el firewall de nivel de aplicación que se puede configurar con la configuración del sistema. Pero también existe ipfw, un firewall de filtrado de paquetes como netfilter / iptables en GNU / Linux y pf (FreeBSD / OpenBSD).
Puede configurar ipfw usando la línea de comando o usando un front-end gráfico como el free / libre WaterRoof .
Puede comenzar con un comando ipfw como:
sudo ipfw add 31010 allow tcp from any to any dst-port 8080
Tuve el mismo problema en OS X Yosemite (10.10.3). Encontré esta publicación de blog que proporciona instrucciones claras. Ya no podemos usar ipfw, ya que está en desuso. En su lugar, use pfctl, que desafortunadamente carece de una buena forma de línea de comando para decirle que abra un puerto. En cambio, necesitas:
Abra /etc/pf.conf en un editor de texto.
Agregue una línea como esta:
# Abra el puerto 8080 para TCP en todas las interfaces
pase proto tcp desde cualquier puerto 8080
Guarda el archivo.
Cargue los cambios con:
sudo pfctl -f /etc/pf.conf
Si necesita abrir un puerto udp, cambie tcpa udp, si necesita ambos, agregue una segunda línea. Detalles adicionales se pueden encontrar en man pf.conf.
También asegúrese de que su servidor esté escuchando en la interfaz real a la que desea acceder (o en todas las interfaces, usando 0.0.0.0o ::0), no localhost ( 127.0.0.1o ::1).
Whoa, reiniciar? ¿Realmente tienes que reiniciar para abrir un puerto?
jcollum
1
pasar -na pfctl verifica las reglas y no las carga intencionadamente. Use solo -f /etc/pf.confpara cargar las reglas. Verifique que estén cargados con pfctl -sr. Sin embargo, aunque las reglas pfctl son necesarias, no parece ser suficiente para permitir el acceso a El Capitan en un puerto determinado.
Brian M. Hunt
... Uno también debe asegurarse de que la aplicación esté vinculada al nombre de host (no localhost); uno obtiene el nombre de host con $ hostnameen la línea de comando. Además, se puede reiniciar el firewall, en lugar de reiniciar, yendo a Preferencias del sistema -> Seguridad y privacidad -> Firewall -> Apagar el firewall y luego encender el firewall.
Brian M. Hunt
@Keen fantástico avatar - ¡buenos recuerdos!
Dónal
6
ipfw es obsoleto por Apple. Mountain Lion y luego usan pfctl.
¿Puedes publicar el comando específico para abrir un puerto?
thias
Si desea agregar un puerto específico, creo que necesita editar el archivo de configuración (consulte krypted.com/mac-security/… y busque la parte con 192.168). Por otro lado, si desea asegurarse de que una aplicación no esté bloqueada, jamfnation.jamfsoftware.com/discussion.html?id=6566 tiene un resumen bastante bueno en el comentario final. Todavía uso principalmente 10.6, por lo que no he trabajado mucho con pfctl.
Kent
1
Aquí hay una frase en lugar de requerir que el usuario juegue con Vim. Útil para la automatización.
sed -i '' -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf
O una alternativa para usuarios de Linux
sed -i -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf
Solo asegúrese de cambiar 8080en el ejemplo a lo que tenga en mente. Cambie tcp con udp si lo desea.
ipfw
Sería relevante esta publicación ? apple.stackexchange.com/questions/33871/…Respuestas:
OS X Mavericks de Apple contiene tres firewalls. En primer lugar, el firewall de nivel de aplicación que se puede configurar con la configuración del sistema. Pero también existe ipfw, un firewall de filtrado de paquetes como netfilter / iptables en GNU / Linux y pf (FreeBSD / OpenBSD).
Puede configurar ipfw usando la línea de comando o usando un front-end gráfico como el free / libre WaterRoof .
Puede comenzar con un comando ipfw como:
fuente
Tuve el mismo problema en OS X Yosemite (10.10.3). Encontré esta publicación de blog que proporciona instrucciones claras. Ya no podemos usar ipfw, ya que está en desuso. En su lugar, use pfctl, que desafortunadamente carece de una buena forma de línea de comando para decirle que abra un puerto. En cambio, necesitas:
Si necesita abrir un puerto udp, cambie
tcp
audp
, si necesita ambos, agregue una segunda línea. Detalles adicionales se pueden encontrar enman pf.conf
.También asegúrese de que su servidor esté escuchando en la interfaz real a la que desea acceder (o en todas las interfaces, usando
0.0.0.0
o::0
), no localhost (127.0.0.1
o::1
).fuente
-n
a pfctl verifica las reglas y no las carga intencionadamente. Use solo-f /etc/pf.conf
para cargar las reglas. Verifique que estén cargados conpfctl -sr
. Sin embargo, aunque las reglas pfctl son necesarias, no parece ser suficiente para permitir el acceso a El Capitan en un puerto determinado.localhost
); uno obtiene el nombre de host con$ hostname
en la línea de comando. Además, se puede reiniciar el firewall, en lugar de reiniciar, yendo a Preferencias del sistema -> Seguridad y privacidad -> Firewall -> Apagar el firewall y luego encender el firewall.ipfw es obsoleto por Apple. Mountain Lion y luego usan pfctl.
http://support.apple.com/kb/ht5413
fuente
Aquí hay una frase en lugar de requerir que el usuario juegue con Vim. Útil para la automatización.
O una alternativa para usuarios de Linux
Solo asegúrese de cambiar
8080
en el ejemplo a lo que tenga en mente. Cambie tcp con udp si lo desea.fuente