
He estado mirando netstat
la salida en una MacBook. Noté que algunas aplicaciones te permiten especificar qué puerto utiliza. Por ejemplo, utorrent
te permite hacer eso. Elegí un puerto 55743, luego lo ejecuté netstat | grep 55743
y el resultado fue el siguiente.
udp6 0 0 *.55743 *.*
udp4 0 0 *.55743 *.*
Cuando salgo, utorrent
el puerto se libera. Pero, si no sabía el número de puerto, ¿cómo puedo saber qué aplicación está utilizando qué puerto? ¿Y es posible que algunas aplicaciones utilicen puertos en secreto para comunicarse con dispositivos servidores externos?
Respuesta1
Como mencionó David Houde, lsof -i
su amigo le brinda una instantánea de las conexiones/operaciones de los sockets actuales. Desafortunadamente, en OS X netstat
no es compatible con esta función.
Otras opciones incluyen:
Activity Monitor.app
le permite ver los archivos y puertos abiertos por una aplicación. Esto se puede hacer haciendo doble clic en un proceso y abriendo la pestaña "Abrir archivos y puertos".
Dtrace - echa un vistazoasí que conectatescript que le brinda información continua sobre las operaciones de la red hasta que salga (control+c). Salida de ejemplo:
sudo /tmp/soconnect.d
PID PROCESS FAM ADDRESS PORT LAT(us) RESULT
8211 X-Lite 2 192.168.1.109 5060 25 Success
4112 Google Chrome 2 173.194.34.134 443 53 In progress
8211 X-Lite 2 192.168.1.109 5060 30 Success
Una aplicación que personalmente me gusta bastante es Little Snitch, pero resulta que es un software comercial. Aunque se trata de un software de firewall de escritorio, tiene una serie de características que pueden resultarle interesantes:
- monitor de red, que le indica qué aplicaciones se están conectando y dónde (similar a la salida de soconnect.d en cierto modo)
- capturar el tráfico de red por aplicación (es decir, similar a Wirehark, puede observar el tráfico de red, pero limitarlo solo a una aplicación específica)
Para responder a su segunda pregunta, sí, en los sistemas operativos tradicionales (por ejemplo, OS X, Windows), las aplicaciones tienen la capacidad de conectarse a sistemas de terceros de varias maneras y enviar cualquier cosa. Varios firewalls de escritorio intentan solucionar este problema permitiéndole especificar dónde se puede conectar cada aplicación, teniendo así una especie de lista blanca. Como todo lo demás en materia de seguridad, este enfoque no está exento de riesgos.
PD. No tengo ninguna asociación con ningún proveedor de software de firewall de escritorio :)
Respuesta2
Puedes lograr esto con algunos argumentos más de netstat o usando lsof:
netstat -lp
lsof -i udp:55743