Examinando las conexiones de red con el comando ss
La llegada de la suite de utilidades iproute2 a Linux, supuso que un buen número de herramientas diseñadas para el análisis de red quedaran obsoletas y otras tomaran su lugar.
Entre ellas ss, que no se refiere a las Schutzstaffel nazis, sino a un interesante comando (socket status), llamado a sustituir a netstat. Al igual que este, nos muestra las estadísticas de las conexiones actuales de red y puertos abiertos.
Si invocamos el comando en su forma más sencilla, nos muestra todas las direcciones y puertos (tanto en modo escucha, como no):
ss -a
Para mostrar únicamente las conexiones IPv4:
ss -4
De manera similar si hablamos de las IPv6:
ss -6
Las conexiones TCP:
ss -ta
O las del protocolo UDP:
ss -ua
Si queremos especificar y que nos muestre solo los sockets que tienen status “listen” (escucha). Para el protocolo TCP sería:
ss -ltn
Y en el caso de las conexiones UDP “listen”;
ss -lun
Para incrementar el nivel de detalle en las diferentes combinaciones de comandos tenemos el parámetro -e:
ss -ae
Vamos a hacer la cosa algo más interesante. Para empezar mostremos las aplicaciones que están conectadas a internet en este momento, incluyendo además su PID:
ss -p
Veamos el consumo de memoria de los diferentes sockets:
ss -m
Comprobemos ahora si hay alguna conexión SSH:
ss -o state established '( dport = :ssh or sport = :ssh )'
De tipo SMTP:
ss -o state established '( dport= :smtp or sport= :smtp )'
o las habituales HTTP:
ss -o state established '( dport = :http or sport = :http )'
A continuación examinemos las estadísticas generales:
ss -s
Filtremos lo que pasa en un puerto determinado:
ss -n dst :443
O varios de ellos:
ss -nt '( dst :443 or dst :80 )'
Examinemos ahora como estamos conectados a una dirección ip específica. Este comando nos muestra información sobre la cantidad de paquetes enviados/recibidos, el tipo de conexión o todos los puertos involucrados.
ss dst 216.58.214.174
Y por último vamos a ver las conexiones TCP activas en tiempo real. Para ello tiramos del siempre útil “watch” y lo combinamos tal que así:
watch ss -tp
Da bastante juego este comando ss, así que si os interesa el tema, os recomiendo que le echéis un vistazo al manual:
man ss
En el encontrareis muchas más opciones avanzadas de ejecución, incluyendo las que permiten filtrar por todo tipo de estados (closing, syn-sent, syn-recv, established, time-wait, etc) y conexiones.
Via: lamiradadelreplicante.com