netstat
Miguel Ortuño
Escuela Técnica Superior de Ingenierı́a de Telecomunicación
Universidad Rey Juan Carlos
Septiembre de 2022
URJC - ETSIT - 2022 netstat 1
© 2022 Miguel Angel Ortuño Pérez.
Algunos derechos reservados. Este documento se distribuye bajo la
licencia Atribución-CompartirIgual 4.0 Internacional de Creative
Commons, disponible en
[Link]
URJC - ETSIT - 2022 netstat 2
Netstat
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
URJC - ETSIT - 2022 netstat 3
Netstat
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.
URJC - ETSIT - 2022 netstat 4
Netstat
koji@afrodita:~$ sudo netstat -tupan
Conexiones activas de Internet (servidores y establecidos)
Prot Recv-Q Send-Q Dirección_Local Dirección_Externa Estado PID/Program name
tcp 0 0 [Link]:22 [Link]:* ESCUCHAR 27488/sshd
tcp 0 0 [Link]:631 [Link]:* ESCUCHAR 1320/cupsd
tcp 0 0 [Link]:22 [Link]:56881 ESTABLECIDO 26653/sshd: koji
tcp6 0 0 :::79 :::* ESCUCHAR 19514/xinetd
tcp6 0 0 :::22 :::* ESCUCHAR 27488/sshd
tcp6 0 0 ::1:631 :::* ESCUCHAR 1320/cupsd
udp 0 0 [Link]:49573 [Link]:* 32398/avahi-daemon:
udp 0 0 [Link]:5353 [Link]:* 32398/avahi-daemon:
URJC - ETSIT - 2022 netstat 5
Netstat
koji@afrodita:~$ sudo netstat -tupa
Conexiones activas de Internet (servidores y establecidos)
Prot Recv-Q Send-Q Dirección_Local Dirección_Externa Estado PID/Program name
tcp 0 0 *:ssh *:* ESCUCHAR 27488/sshd
tcp 0 0 localhost:ipp *:* ESCUCHAR 1320/cupsd
tcp 0 0 afrodita:ssh doublas:56881 ESTABLECIDO 26653/sshd: koji
tcp6 0 0 [::]:finger [::]:* ESCUCHAR 19514/xinetd
tcp6 0 0 [::]:ssh [::]:* ESCUCHAR 27488/sshd
tcp6 0 0 ip6-localhost:ipp [::]:* ESCUCHAR 1320/cupsd
udp 0 0 *:49573 *:* 32398/avahi-daemon:
udp 0 0 *:mdns *:* 32398/avahi-daemon:
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
URJC - ETSIT - 2022 netstat 6
Netstat
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
tcp 0 0 [Link]:22 [Link]:* ESCUCHAR 27488/sshd
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
tcp 0 0 [Link]:631 [Link]:* ESCUCHAR 1320/cupsd
Este demonio está en la máquina afrodita, pero no atiende
peticiones hechas a la dirección pública de afrodita, solamente
a localhost/[Link]
Podemos usar grep para filtrar la salida de netstat
koji@afrodita:~$ netstat -tupan |grep 22
tcp 0 0 [Link]:22 [Link]:* ESCUCHAR -
tcp 0 0 [Link]:22 [Link]:34285 ESTABLECIDO -
tcp6 0 0 :::22 :::* ESCUCHAR -
URJC - ETSIT - 2022 netstat 7
Netstat
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 usar
sudo lsof -iTCP:12345 -sTCP:LISTEN
(Donde 12345 serı́a el puerto a consultar)
o bien
sudo lsof -i -n -P |grep UDP
URJC - ETSIT - 2022 netstat 8