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
bmike

En proto Tcp port 8080
Guy

¿ ipfwSería relevante esta publicación ? apple.stackexchange.com/questions/33871/…
bmike

Respuestas:


7

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

77
ipfw está en desuso y desapareció en El Capitan
slashdottir

21

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:

  1. Abra /etc/pf.conf en un editor de texto.
  2. Agregue una línea como esta:

# Abra el puerto 8080 para TCP en todas las interfaces

pase proto tcp desde cualquier puerto 8080

  1. Guarda el archivo.
  2. 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).


3
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.

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


66
¿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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.