15 «Exemples de commande sockstat utiles» pour trouver des ports ouverts dans FreeBSD

15 «Exemples de commande sockstat utiles» pour trouver des ports ouverts dans FreeBSD

Sockstat est un utilitaire de ligne de commande polyvalent utilisé pour afficher le réseau et les prises ouvertes par le système dans FreeBSD. Principalement, la commande sockstat 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 énumérer les sockets ouverts en fonction de la version protocole (deux versions IP), sur l'état de la connexion et sur quels ports un démon ou un programme lie et écoute.

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

Il peut également afficher des sockets de communication entre les processus, généralement appelés sockets de domaine UNIX ou IPC. La commande sockstat combinée avec un filtre Grep ou un utilité awk s'avère être un outil puissant pour la pile de réseautage locale.

Il peut réduire les résultats pour une connexion ouverte basée sur l'utilisateur qui possède la prise, le descripteur de fichier d'une prise de réseau ou le PID du processus qui a ouvert la prise.

Dans ce guide, nous énumérons quelques exemples d'utilisation communs, mais aussi très puissants, de l'utilitaire de mise en réseau de ligne de commande sockstat dans FreeBSD.

Exigences

  1. Freebsd 11.1 Guide d'installation

1. Liste tous les ports ouverts dans FreeBSD

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

# sockstat 
Afficher les ports du réseau dans FreeBSD

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

  • UTILISATEUR : Le propriétaire (compte d'utilisateur) de la prise.
  • COMMANDE : La commande qui a ouvert la prise.
  • Piquer : L'ID de processus de la commande qui possède la prise.
  • FD : Le numéro de descripteur de fichier de la prise.
  • PROTO : Le protocole de transport (généralement TCP / UDP) associé à la prise ou un type de socket ouvert en cas de prises de domaine Unix (Datagram, Stream ou Seqpac) pour les prises Unix.
  • ADRESSE LOCALE : Il représente l'adresse IP locale pour les prises basées sur IP. En cas de sockets Unix, il représente le nom de fichier de point de terminaison attaché à la prise. Le "??" La notation implique que le point de terminaison du socket ne pouvait pas être reconnu ou établi.
  • ADRESSE ÉTRANGÈRE : L'adresse IP distante où la prise est connectée à.

2. Liste des ports d'écoute ou d'ouverture dans FreeBSD

Exécuté avec le -l Flag, la commande sockstat affichera toutes les prises d'écoute ouvertes dans la pile de réseautage et toutes les sockets de domaine Unix ouvrires ou les tuyaux nommés impliqués dans une sorte de traitement des données locales dans le système.

# sockstat -l 
Liste des ports réseau ouverts

3. Liste des ports ouverts IPv4 dans FreeBSD

Pour afficher toutes les prises ouvertes pour Ipv4 protocole uniquement, émettez la commande avec le -4 Flag, comme suggéré dans l'exemple ci-dessous.

# sockstat -4 
Liste des ports ouverts IPv4 dans FreeBSD

4. Liste des ports ouverts IPv6 dans FreeBSD

Semblable à la version IPv4, vous pouvez également afficher les prises de réseau ouvertes pour Ipv6 seulement, en émettant la commande comme indiqué ci-dessous.

# sockstat -6 
Liste des ports ouverts IPv6

5. Liste des ports ouverts TCP ou UDP dans FreeBSD

Afin d'afficher les prises de réseau basées uniquement sur un protocole réseau spécifié, tel que TCP ou UDP, Utilisez le -P drapeau, suivi du nom de l'argument du protocole.

Les noms de protocole peuvent être trouvés en inspectant le contenu du / etc / protocoles déposer. Actuellement, le protocole ICMP n'est pas pris en charge par l'outil Sockstat.

Afficher uniquement les prises TCP
# sockstat -p tcp 
Liste des ports ouverts TCP
Afficher uniquement les prises UDP
# sockstat -p udp 
Liste des ports ouverts UDP

Chaîner les deux protocoles.

# sockstat -p tcp, udp 

6. Liste des numéros de port spécifiques à TCP et UDP

Si vous souhaitez afficher toutes les prises ouvertes TCP ou UDP IP, en fonction du numéro de port local ou distant, utilisez les drapeaux 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 tcp et udp] 
Énumérer le port TCP spécifique

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

Afin d'afficher toutes les prises ouvertes et connectées, utilisez le -c drapeau. Comme indiqué dans les échantillons ci-dessous, vous pouvez lister tous Https Sockets connectés ou toutes les prises connectées TCP en émettant les commandes.

# sockstat -p tcp -p 443 -c # sockstat -p tcp -c 
Liste des ports ouverts et connectés

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

Pour énumérer toutes les sockets TCP ouverts dans l'état d'écoute, ajoutez le -l et -s drapeaux, 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 ouverts par UDP ne peuvent pas être affichés en utilisant leur état, car le protocole UDP utilise des données pour envoyer / recevoir des données et n'a pas de mécanisme d'intégration pour déterminer l'état de la connexion.

# sockstat -46 -l -s 
Répertoriez les ports d'écoute du réseau

9. Liste des prises Unix et des tuyaux nommés

Les prises de domaine Unix, ainsi que d'autres formes de communication inter-processus locales, telles que les tuyaux nommés, peuvent être affichés par commande sockstat en utilisant le -u Flag, comme indiqué dans l'image ci-dessous.

# sockstat -u 
Liste des sockets Unix

dix. 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 de ports ouverts par une application ou une commande spécifique.

Supposons que vous souhaitiez répertorier toutes les prises associées à Nginx serveur Web, vous pouvez émettre la commande suivante pour réaliser la tâche.

# sockstat -46 | grep nginx 
Liste des prises d'écoute d'application

Pour afficher uniquement les prises connectées associées au serveur Web Nginx, émettez la commande suivante.

# sockstat -46 -c | grep nginx 

11. Liste des protocoles connectés HTTPS

Vous pouvez répertorier toutes les prises connectées associées à Https Protocole à côté de l'état de chaque connexion en exécutant la commande ci-dessous.

# sockstat -46 -s -p tcp -p 443 -c 
Liste des protocoles connectés HTTPS

12. Liste des prises distantes HTTP

Pour répertorier toutes les prises 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 | Soi -nr # sockstat -46 -c -p 80,443 | Adresse grep -v | awk 'print $ 7' | Uniq -C | tri -nr 
Énumérer les protocoles HTTP distants

13. Trouver les plus hautes demandes HTTP par adresses IP

Dans le cas où vous souhaitez trouver le nombre de connexions HTTP demandées par chaque adresse IP distante, émettez la commande ci-dessous. Cette commande peut être très utile au cas où vous souhaitez déterminer si votre serveur Web est sous une sorte d'attaque DDOS. En cas de soupçons, vous devez étudier les adresses IP avec le taux de demande le plus élevé.

# sockstat -46 -c | Egrep '80 | 443 '| awk 'print $ 7' | Cut -d: -f1 | Uniq -C | tri -nr 

14. Liste des sockets ouverts DNS

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

# sockstat -46 -p tcp -p 53 -s 
Liste des sockets ouverts DNS

15. Requérir des 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 la prise TCP de la console de la machine locale en exécutant la commande DIG suivante. Ensuite, émettez la commande ci-dessus pour répertorier toutes les sockets de résolveur.

# DIG + TCP www.domaine.com @ 127.0.0.1 
Requérir des DNS TCP sur local

C'est tout! En plus des utilitaires de ligne de commande NetStat et LSOF, la ligne de commande Sockstat est un utilitaire puissant utilisé pour acquérir des informations réseau et dépanner plusieurs aspects de la pile de réseautage FreeBSD et des processus et services liés à la mise en réseau.

Le homologue FreeBSD Sockstat Commande de Linux est représenté par le netstat ou le nouveau SS commande. Croyez-le ou non, sur la base de l'utilitaire Sockstat, vous pouvez trouver une application similaire développée pour Android OS, nommé Sockstat - simple netstat GUI.