II. Liste les connexions
La commande basique consiste à énumérer toutes les connexions présentent sur un système :
# ss|less Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port u_str ESTAB 0 0 @/tmp/dbus-VvJjz9EBBc 526779 * 526778 u_str ESTAB 0 0 * 14801853 * 14801854 u_str ESTAB 37 0 * 529524 * 529525 u_str ESTAB 0 0 * 21235 * 21236 u_str ESTAB 0 0 * 529511 * 529512 u_str ESTAB 0 0 * 526668 * 526667 u_str ESTAB 0 0 * 14801854 * 14801853 u_str ESTAB 0 0 * 529071 * 529673 u_str ESTAB 0 0 * 22474 * 22978 u_str ESTAB 0 0 @/tmp/.X11-unix/X0 526800 * 526799 u_str ESTAB 0 0 /run/systemd/journal/stdout 20563 * 20562
De ce
premier résultat, on peut toujours filtrer la sortie pour ne récupérer
que les lignes concernant les échanges TCP, UDP ainsi que les sockets
Unix. Pour ne visualiser que les connexions TCP, UDP ou les connexions
de type sockets, on doit filtrer de la façon suivante :
# ss –t
REMARQUE : on peut aussi utiliser la commande équivalente ci-dessous, qui revient strictement au même :
# ss –A tcp
III. Types de connexions
Par défaut, l’option –t affiche uniquement les connexions qui sont de type établies (c’est-à-dire avec l’appellation "ESTABLISHED") ou connectées (avec l’étiquette "CONNECTED"). On évite ainsi toutes les connexions à l’écoute (étiquetées "LISTENING"). Le fait d’ajouter également l’option –a permet aussi de récupérer les connexions à l’écoute.
De la même façon, pour lister les échanges non connectés (c’est-à-dire les sessions UDP), on exécutera la commande suivante :
# ss –ua State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 *:37211 *:* UNCONN 0 0 *:884 *:* UNCONN 0 0 *:1014 *:* UNCONN 0 0 127.0.0.1:1019 *:* UNCONN 0 0 *:mdns *:* UNCONN 0 0 *:44306 *:* UNCONN 0 0 *:34239 *:* UNCONN 0 0 192.168.122.1:domain *:*
IMPORTANT : l’option –a permet d’afficher à la fois les sockets "CONNECTING" et "LISTENING". Comme le protocole UDP est un protocole sans connexion, la commande ss –u, seule ne remontera aucune ligne, dans bien des cas. Par contre, le fait de lui adjoindre l’option –a permet d’afficher toutes les connexions UDP.
Si l’on ne souhaite que les sockets de type Unix, il faut exécuter la commande suivante :
# ss –x[a]
Ici, -a
est optionnelle et affichera le même résultat avec ou sans l’option. On
peut également éviter de résoudre les noms de machines et n’afficher
que les adresses IP :
# ss –nt State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 64 10.97.3.198:22 10.24.10.2:55214
Pour lister les sockets TCP à l’écoute :
# ss -ltn
Pour lister les sockets UDP à l’écoute :
# ss –lun
IV. Nom de processus et pid
De
la même façon, on peut également récupérer le nom du processus (ainsi
que son PID associé) en exécutant la commande suivante :
# ss –ltp … users:(("rpcbind",pid=720,fd=4),("systemd",pid=1,fd=78)) LISTEN 0 128 :::us-cli :::* users:(("httpd",pid=24053,fd=4),("httpd",pid=20059,fd=4),("httpd",pid=20058,fd=4),("httpd",pid=20057,fd=4),("httpd",pid=20056,fd=4),("httpd",pid=20055,fd=4)) LISTEN 0 128 :::ssh :::* …
On peut d’ailleurs disposer de statistiques précises concernant le nombre de sockets de chaque catégorie :
# ss –s Total: 622 (kernel 646) TCP: 22 (estab 1, closed 6, orphaned 0, synrecv 0, timewait 0/0), ports 0 Transport Total IP IPv6 * 646 - - RAW 0 0 0 UDP 23 15 8 TCP 16 10 6 INET 39 25 14 FRAG 0 0 0
On peut également faire afficher les différentes informations inhérentes à chaque socket en utilisant l’option –o :
# ss –nt State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 64 10.97.3.198:22 10.24.10.2:55214 timer :(on,418ms,0)
V. Affichage des connexions IPv4 et IPv6
Si l’on souhaite afficher les sockets uniquement de type IPv4, on peut le faire au travers de la commande :
# ss –tl –f inet
REMARQUE :
à contrario, si l’on souhaite n’afficher que le sockets de type IPv6 on
peut le faire en utilisant l’une des commandes ci-dessous :
# ss –tl6 # ss –tl –f inet6
VI. Filtrage des connexions
La commande ss
supporte également un mode étendu autorisant le filtrage et l’affichage
d’une catégorie spécifique de sockets. Les expressions permettant le
filtrage doivent être de la forme suivante :
# ss [Option] [Etat] [Adresse]
Exemple : pour filtrer les connexions TCP IPv4 en mode "ESTABLISHED" :
# ss –t4 state established
Les différents états que l’on peut utiliser comme filtre sont les suivants :
- established
- syn-sent
- syn-recv
- fin-wait-1
- fin-wait-2
- time-wait
- closed
- close-wait
- last-ack
- closing
- all (tous ceux présent ci-dessus)
- connected
- synchronized
- bucket (mini socket : time-wait et syn-recv)
- big (opposé à bucket)
Aucun commentaire:
Enregistrer un commentaire