Con un poco de suerte, hay una solución fácil para esto:
-
curl ifconfig.me
para encontrar su dirección IP externa -
sudo lsof -i4 -n | grep LISTEN | grep \*
para encontrar procesos que escuchan conexiones de otras máquinas -
telnet EXTERNAL_IP PORT
onc -v EXTERNAL_IP PORT
para ver si el resto del mundo puede alcanzarlo, no solo otras máquinas en su red
En mi sistema 10.9.4 completamente parcheado con el firewall activado, pueden hacerlo. Eso me sorprendió. De alguna manera, decidí que las aplicaciones que necesitaban que el mundo hablara con ellos le pedían a OS X que manejara NAT-PNP o lo hacía ellos mismos. Nunca se me ocurrió que OS X podría hacerlo para todos los puertos abiertos no vinculados a 127.0.0.1
.
Escoger en Dropbox , a pesar de que no sea su culpa per se ...
$ sudo lsof -i4 -n | grep LISTEN | grep \* | grep Dropbox
Dropbox 361 userid 32u IPv4 0x... 0t0 TCP *:17500 (LISTEN)
$ curl ifconfig.me
93.184.216.119
$ telnet 93.184.216.119 17500
Trying 93.184.216.119...
Connected to example.com.
Escape character is '^]'.
Dropbox no solo es accesible a otras máquinas en tu red: todo el mundo puede atacar. ¿Qué hay de iTunes?
$ sudo lsof -i4 -n | grep LISTEN | grep \* | grep iTunes
iTunes 8950 userid 29u IPv4 0x... 0t0 TCP *:55732 (LISTEN)
iTunes 8950 userid 31u IPv4 0x... 0t0 TCP *:daap (LISTEN)
$ telnet 93.184.216.119 daap
Trying 93.184.216.119...
Connected to example.com.
Escape character is '^]'.
El mundo entero podría verte como Nickelback.
TextExpander ? Sí. Todo el mundo puede tratar de obtener tus fragmentos. AirServer ? Ahora sé cómo obtuve imágenes extrañas apareciendo esa vez. (Bien en ellos para agregar soporte de código de acceso). ¿Ese script de ejemplo de Node.js que escucha 0.0.0.0
en lugar de 127.0.0.1
? Eso también. Si le dijiste a OS X que el software podía escuchar, podía escuchar.
¿Marcó "Permitir automáticamente que el software firmado reciba conexiones entrantes"? Agregue todos esos a la lista, también.
Me gustan otras máquinas de la red de mi hogar que hablan con mi computadora portátil para obtener sus fragmentos de TextExpander y compartir el contenido de DropBox más rápido. Me gusta que mi iPad hable con mi computadora portátil para mostrar mis diagramas a mis compañeros de trabajo. No me entusiasma que todo el mundo hable con esos mismos puertos abiertos.
¿Cómo puedo persuadir a OS X para que no le pida a mi enrutador que haga agujeros en cada puerto abierto?