Recherche de site Web

15 « Exemples de commandes Sockstat » utiles pour rechercher des ports ouverts dans FreeBSD


Sockstat est un utilitaire de ligne de commande polyvalent utilisé pour afficher les sockets ouvertes sur le réseau et le système dans FreeBSD. Principalement, la commande chaussettestat est installée par défaut dans FreeBSD et elle est couramment utilisée pour afficher le nom des processus qui ont ouvert un certain port réseau sur un système FreeBSD.

Cependant, sockstat peut également répertorier les sockets ouverts en fonction de la version du protocole (les deux versions IP), de l'état de la connexion et des ports sur lesquels un démon ou un programme se lie et écoute.

Lire aussi : 20 exemples de commandes « netstat » utiles pour vérifier les connexions réseau

Il peut également afficher les sockets de communication inter-processus, généralement appelés sockets de domaine Unix ou IPC. La commande Sockstat combinée avec le filtre grep ou transmise via l'utilitaire awk s'avère être un outil puissant pour la pile réseau locale.

Il peut réduire les résultats d'une connexion ouverte en fonction de l'utilisateur propriétaire du socket, du descripteur de fichier d'un socket réseau ou du PID du processus qui a ouvert le socket.

Dans ce guide, nous listerons quelques exemples d'utilisation courants, mais également très puissants, de l'utilitaire réseau en ligne de commande chaussettestat dans FreeBSD.

Exigences

  1. Guide d'installation de FreeBSD 11.1

1. Répertorier tous les ports ouverts dans FreeBSD

Simplement exécutée sans aucune option ni commutateur, la commande chaussettestat affichera toutes les sockets ouvertes dans un système FreeBSD, comme illustré dans la capture d'écran ci-dessous.

sockstat

Les valeurs affichées dans la sortie chaussettestat sont décrites comme :

  • USER : Le propriétaire (compte utilisateur) du socket.
  • COMMAND : La commande qui a ouvert le socket.
  • PID : L'ID du processus de la commande propriétaire du socket.
  • FD : Le numéro de descripteur de fichier du socket.
  • PROTO : Le protocole de transport (généralement TCP/UDP) associé au socket ouvert ou au type de socket dans le cas de sockets de domaine Unix (datagramme, stream ou seqpac) pour les sockets UNIX.
  • ADRESSE LOCALE : elle représente l'adresse IP locale pour les sockets basés sur IP. Dans le cas des sockets Unix, il représente le nom de fichier du point de terminaison attaché au socket. Le « ?? "La notation implique que le point de terminaison du socket n'a pas pu être reconnu ou établi.
  • FOREIGN ADDRESS : L'adresse IP distante à laquelle le socket est connecté.

2. Liste des ports en écoute ou ouverts dans FreeBSD

Exécutée avec l'indicateur -l, la commande chaussettestat affichera toutes les sockets d'écoute ouvertes dans la pile réseau et toutes les sockets de domaine Unix ouvertes ou les canaux nommés impliqués dans une sorte de traitement de données local dans le système.

sockstat -l

3. Répertorier les ports ouverts IPv4 dans FreeBSD

Pour afficher tous les sockets ouverts pour le protocole IPv4 uniquement, exécutez la commande avec l'indicateur -4, comme suggéré dans l'exemple ci-dessous.

sockstat -4

4. Répertorier les ports IPv6 ouverts dans FreeBSD

Semblable à la version IPv4, vous pouvez également afficher les sockets réseau ouverts pour IPv6 uniquement, en exécutant la commande comme indiqué ci-dessous.

sockstat -6

5. Répertorier les ports ouverts TCP ou UDP dans FreeBSD

Afin d'afficher les sockets réseau basés uniquement sur un protocole réseau spécifié, tel que TCP ou UDP, utilisez l'indicateur -P, suivi de l'indicateur nom d'argument du protocole.

Les noms des protocoles peuvent être trouvés en inspectant le contenu du fichier /etc/protocols. Actuellement, le protocole ICMP n'est pas pris en charge par l'outil chaussettestat.

Afficher uniquement les sockets TCP
sockstat -P tcp

Afficher uniquement les sockets UDP
sockstat -P udp

Enchaînez les deux protocoles.

sockstat –P tcp,udp

6. Répertoriez les numéros de port spécifiques à TCP et UDP

Si vous souhaitez afficher tous les sockets TCP ou UDP IP ouverts, en fonction du numéro de port local ou distant, utilisez les indicateurs de commande et la syntaxe ci-dessous, comme illustré dans la capture d'écran ci-dessous.

sockstat -P tcp -p 443             [Show TCP HTTPS Port]
sockstat -P udp -p 53              [Show UDP DNS Port] 
sockstat -P tcp -p 443,53,80,21    [Show Both TCP and UDP]

7. Liste des ports ouverts et connectés dans FreeBSD

Afin d'afficher toutes les sockets ouvertes et connectées, utilisez l'indicateur -c. Comme le montrent les exemples ci-dessous, vous pouvez répertorier toutes les sockets connectées HTTPS ou toutes les sockets connectées TCP en exécutant les commandes.

sockstat -P tcp -p 443 -c
sockstat -P tcp -c

8. Liste des ports d'écoute réseau dans FreeBSD

Pour répertorier toutes les sockets TCP ouvertes en état d'écoute, ajoutez les indicateurs -l et -s, comme indiqué dans l'exemple ci-dessous. Étant un protocole sans connexion, UDP ne conserve aucune information sur l'état de la connexion.

Les sockets ouvertes UDP ne peuvent pas être affichées en utilisant leur état, car le protocole udp utilise des datagrammes pour envoyer/recevoir des données et n'a pas de mécanisme intégré pour déterminer l'état de la connexion.

sockstat -46 -l -s

9. Répertorier les sockets Unix et les canaux nommés

Les sockets de domaine Unix, ainsi que d'autres formes de communication inter-processus locale, telles que les canaux nommés, peuvent être affichées par la commande chaussettestat à l'aide de l'indicateur -u, comme indiqué dans l'image ci-dessous.

sockstat -u

10. Liste des ports ouverts par application dans FreeBSD

La sortie de la commande Sockstat peut être filtrée via l'utilitaire grep afin d'afficher une liste des ports ouverts par une application ou une commande spécifique.

Supposons que vous souhaitiez répertorier tous les sockets associés au serveur Web Nginx, vous pouvez exécuter la commande suivante pour réaliser la tâche.

sockstat -46 | grep nginx

Pour afficher uniquement les sockets connectés associés au serveur Web Nginx, exécutez la commande suivante.

sockstat -46 -c| grep nginx

11. Liste des protocoles connectés HTTPS

Vous pouvez répertorier toutes les sockets connectées associées au protocole HTTPS ainsi que l'état de chaque connexion en exécutant la commande ci-dessous.

sockstat -46 -s -P TCP -p 443 -c

12. Liste des sockets distants HTTP

Pour répertorier toutes les sockets distantes associées au protocole HTTP, vous pouvez exécuter l'une des combinaisons de commandes suivantes.

sockstat -46 -c | egrep '80|443' | awk '{print $7}' | uniq -c | sort -nr
sockstat -46 -c -p 80,443 | grep -v ADDRESS|awk '{print $7}' | uniq -c | sort -nr

13. Rechercher les requêtes HTTP les plus élevées par adresses IP

Si vous souhaitez connaître le nombre de connexions HTTP demandées par chaque adresse IP distante, exécutez la commande ci-dessous. Cette commande peut être très utile si vous souhaitez déterminer si votre serveur Web est soumis à une sorte d'attaque DDOS. En cas de suspicion, vous devez rechercher les adresses IP présentant le taux de requêtes le plus élevé.

sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr

14. Liste des sockets DNS ouvertes

Si vous avez configuré un serveur DNS de mise en cache et de transfert dans vos locaux pour servir les clients internes via le protocole de transport TCP et que vous souhaitez afficher une liste de toutes les sockets
ouvert par le résolveur, ainsi que l'état de chaque connexion socket, exécutez la commande suivante.

sockstat -46 -P tcp –p 53 -s

15. Interroger le DNS TCP sur le domaine local

S'il n'y a pas de trafic DNS sur le réseau, vous pouvez déclencher manuellement une requête DNS sur le socket TCP à partir de la console de la machine locale en exécutant la commande dig suivante. Ensuite, exécutez la commande ci-dessus pour répertorier tous les sockets du résolveur.

dig +tcp  www.domain.com  @127.0.0.1

C'est tout! Outre les utilitaires de ligne de commande netstat et lsof, la ligne de commande chaussettestat est un utilitaire puissant utilisé pour acquérir des informations sur le réseau et dépanner plusieurs aspects de la pile réseau FreeBSD et des processus et services liés au réseau.

L'équivalent de la commande FreeBSD chaussettestat sous Linux est représenté par la commande netstat ou la nouvelle commande ss. Croyez-le ou non, sur la base de l'utilitaire chaussettestat, vous pouvez trouver une application similaire développée pour le système d'exploitation Android, nommée SockStat – Simple Netstat GUI.