netstat
▪ netstat es una herramienta básica en cualquier SSOO (Unix, Linux, macOS, Windows...)
▪ Muestra información sobre conexiones de red, tablas de encaminamiento, estadísticas de los interfaces, NAT y multicast
Nos permitirá comprobar qué demonios están funcionando en nuestra máquina
▪ Es una herramienta básica para depurar cualquier servicio
▪ Un principio básico de seguridad en cualquier sistema es tener activos solo los servicios necesarios, cualquier nuevo servicio siempre implica un cierto riesgo
Información sobre conexiones de red, Linux
▪ -tu
Muestra información sobre TCP y UDP (y no sobre los Unix domain sockets)
▪ -p
Indica el programa a quien pertenece el socket
Si lo ejecuta un usuario ordinario, solo muestra algunos nombres
Si lo ejecuta root, muestra todos los nombres
▪ -a
Muestra todos los sockets, no solamente las conexiones establecidas sino también los sockets que están escuchando
▪ -n
Muestra direcciones IP y no nombres de máquina.
Muestra números de puerto, no nombre de servicio asociado (en los well know ports). No intenta resolver nombres de máquina.
|
|||||
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|||||
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Problema:
Netstat no comprueba que el demonio que está atado a un puerto sea el demonio habitual en ese puerto.
Ejemplo: si atamos un servicio cualquiera al puerto 80, netstat lo tomará por un servidor web
▪ Un demonio puede escuchar en un puerto (p.e. el 22) de cualquier dirección de la máquina, por tanto, en cualquiera de los interfaces de la máquina
|
|
|
|
|
|
|
▪ O bien puede escuchar en un puerto (p.e. el 631), pero no de todas las direcciones/todos los interfaces, sino de una en concreto
|
|
|
|
|
|
|
Este demonio está en la máquina afrodita, pero no atiende peticiones hechas a la dirección pública de afrodita, solamente a localhost /127.0.0.1
▪ Podemos usar grep para filtrar la salida de netstat
koji@afrodita:~$ netstat -tupan |grep 22 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Netsat en macOS
Uso típico:
netstat -f inet -an
▪ Para ver solo las conexiones tcp y udp, la opción no es -tu sino -f inet
▪ -a y -n se comportan como en Linux
▪ Para saber qué proceso escucha en cada puerto, no hay un equivalente a -p
Pero podemos usarsudo lsof -iTCP:12345 -sTCP:LISTEN
(Donde 12345 sería el puerto a consultar) o biensudo lsof -i -n -P |grep UDP