20 votos

Cómo abrir un puerto específico en el Firewall OS X 10.9.4

¿Cómo puedo abrir 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, que no está en la lista...

0 votos

¿Qué puerto(s) y protocolos quiere que Jenkins pueda escuchar? Este post te ayudará a ver en qué puertos está configurado... stackoverflow.com/a/10106086/475228

0 votos

En el puerto proto Tcp 8080

0 votos

¿Este puesto que cubre ipfw ¿es relevante? apple.stackexchange.com/questions/33871/

26voto

user15819 Puntos 111

Tuve el mismo problema en OS X Yosemite (10.10.3). Encontré esta entrada del blog que proporciona instrucciones claras. Ya no podemos usar ipfw, ya que está obsoleto. En su lugar, use pfctl, que desafortunadamente carece de una forma agradable de línea de comandos para decirle que abra un puerto. En su lugar, necesitas:

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

# Abrir el puerto 8080 para TCP en todas las interfaces

pasar en proto tcp de any a any puerto 8080

  1. Guarda el archivo.
  2. Carga los cambios con:

sudo pfctl -f /etc/pf.conf

Si necesita abrir un puerto udp, cambie tcp a udp Si necesita ambas cosas, añada una segunda línea. Puede encontrar más detalles en man pf.conf .

Asegúrese también de que su servidor está escuchando en la interfaz real por la que quiere que sea accesible (o en todas las interfaces, utilizando 0.0.0.0 o ::0 ), no localhost ( 127.0.0.1 o ::1 ).

3 votos

Vaya, ¿reiniciar? ¿Realmente tienes que reiniciar para abrir un puerto?

2 votos

Pasando por -n a pfctl verifica las reglas, y puntualmente no las carga. Utiliza sólo -f /etc/pf.conf para cargar las reglas. Compruebe que se cargan con pfctl -sr . Sin embargo, aunque las reglas pfctl son necesarias, no parecen ser suficientes por sí mismas para permitir el acceso a un El Capitan en un puerto determinado.

0 votos

... También hay que asegurarse de que la aplicación está vinculada al nombre del host (no localhost ); se obtiene el nombre de host con $ hostname en la línea de comandos. También se puede reiniciar el cortafuegos, en lugar de reiniciar, yendo a Preferencias del Sistema -> Seguridad y Privacidad -> Cortafuegos -> Desactivar el Cortafuegos y luego Activar el Cortafuegos.

7voto

Malte Bublitz Puntos 166

El OS X Mavericks de Apple contiene tres cortafuegos. En primer lugar, el cortafuegos de nivel de aplicación, que puede configurarse mediante los ajustes del sistema. Pero también hay 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 comandos, o usando un front-end gráfico como el free/libre Techo de agua .

Podrías empezar con un comando ipfw como:

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

9 votos

Ipfw está obsoleto y ha desaparecido en El Capitán

0 votos

@slashdottir ¿Cómo puedo utilizar este comando con pfctl?

0 votos

@user233428 Hace bastante tiempo que no tengo que hacer esto, pero revisando mi historial de bash, parece que usé: echo "rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 19131" | sudo pfctl -ef -

6voto

Kent Puntos 3462

Ipfw está obsoleto por Apple. Mountain Lion y posteriores utilizan pfctl.

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

7 votos

¿puede publicar el comando específico para abrir un puerto?

0 votos

Si quieres añadir un puerto específico, entonces creo que necesitas editar el archivo de configuración ( ver krypted.com/mac-security/ y buscar la parte con 192.168). Por otro lado, si quieres asegurarte de que una aplicación no está bloqueada, jamfnation.jamfsoftware.com/discussion.html?id=6566 tiene un buen resumen en el comentario final. Todavía uso principalmente 10.6, así que no he trabajado mucho con pfctl.

1voto

Barry Puntos 31

Aquí hay una línea en lugar de requerir que el usuario se meta 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 los 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

Sólo asegúrate de cambiar 8080 en el ejemplo a lo que tengas en mente. Cambia tcp por udp si quieres.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X