Vérifiez les ports ouverts sur FreeBSD

Vérifiez les ports ouverts sur FreeBSD
Dans ce tutoriel, vous apprendrez comment vérifier les ports ouverts sur FreeBSD à l'aide d'un outil de ligne de commande pratique appelé sockstat.

Sockstat est un utilitaire de ligne de commande polyvalente qui vient inclus avec FreeBSD. Il voit une immense utilisation pour examiner les connexions du réseau et les prises ouvertes. Dans FreeBSD, il répertorie les noms et l'état de l'arrière-plan et des processus de premier plan qui ont provoqué un déverrouillage d'un port réseau. Vous pouvez même le personnaliser pour organiser les listes de douilles de communication sur l'état de la connexion, les versions IP, quels ports sont écoutés par des programmes spécifiques, etc., et simplifier les résultats en fonction de la possession de socket et des descripteurs pour les prises de communication. Avec Sockstat, vous pouvez également voir tous les détails complexes sur chacune des sockets de domaine Unix / IPC. Une décision appropriée serait d'intégrer Sockstat au filtre Grep pour tripler sa fonctionnalité et en tirer le meilleur parti.

Regardons certains des trucs soignés que nous pouvons réaliser avec sockstat sur freebsd.

Énumérez les ports de travail sur FreeBSD avec sockstat

La commande sockstat répertorie toutes les prises qui sont actuellement ouvertes dans un système FreeBSD. Tapez la commande sockstat non apprenti avec l'un des drapeaux ou des options pour voir la liste des prises ouvertes:

$ sockstat

Prenons un moment et passons en revue ce que signifie chacune des étiquettes de colonne dans la sortie. La première colonne de la gauche est étiquetée des utilisateurs, et il répertorie tous les comptes d'utilisateurs (Roots, MySQL) auxquels chaque prise appartient. L'en-tête de la deuxième colonne est la commande, et cet en-tête de colonne répertorie toutes les commandes qui avaient défini chaque prise pour ouvrir. Les colonnes PID Colonne et FD répertorient les ID de processus et les descripteurs de fichiers, respectivement, des prises. Le proto à tête de colonne affiche tous les protocoles de transport de types de socket liés à chaque port ouvert. Les deux dernières colonnes sont l'adresse locale et l'adresse étrangère. Le premier de ces deux répertorie l'adresse IP locale pour chaque prise ouverte. Tandis que ce dernier indique quelles adresses IP sont liées à chacune de ces prises.

Énumérez des versions spécifiques des ports ouverts dans FreeBSD

Pour répertorier les sockets ouverts avec une version de protocole spécifique uniquement, par exemple, la version IPv4, ajoutez un drapeau -4 à la fin de la commande sockstat:

$ sockstat -4

Vous pouvez également le faire présenter une liste d'autres versions de manière similaire, par exemple

$ sockstat -6

Devrait afficher toutes les prises avec IPv6.

Énumérez les prises ouvertes basées sur TCP / UDP dans FreeBSD

Ajoutez l'indicateur -p à la commande sockstat pour que la liste des sockets ouvertes soit présentée en fonction de TCP ou UDP. Vous devrez également ajouter le nom de l'argument du protocole à la commande, que vous pouvez consulter en vous dirigeant vers le fichier / etc / protocoles et en vérifiant le fichier là-bas. Pour avoir uniquement des prises basées sur TCP, saisissez la commande suivante:

$ sockstat -p tcp

De même, vous pouvez présélectionner en fonction de l'UDP:

$ sockstat -p udp

Ces deux peuvent être liés très simplement:

$ sockstat -p tcp, udp

Pour l'instant, Sockstat n'étend pas son soutien au protocole ICMP.

Afficher les prises avec des numéros de port spécifiques

Pour voir toutes les prises ouvertes, TCP et UDP, tout en faisant disposition la liste en fonction des numéros de port (locaux et autres), saisissez la commande sockstat avec des indicateurs appropriés:

$ sockstat -p tcp -p 443
$ sockstat -p udp -p 53
$ sockstat -p tcp -p 443,53,80,21

Dans les commandes ci-dessus, la première montre le port HTTPS TCP, le second les ports DNS UDP, tandis que le troisième montre les deux.

Voir les ports ouverts écoutés sur FreeBSD

Avec le drapeau -L ajouté à la commande sockstat, vous serez présenté à une prise ouverte qui écoute actuellement à travers la suite de protocole et toutes les prises de domaine Unix ouvertes ainsi que tous les tuyaux nommés.

$ sockstat -l

Énumérez les ports à écouter activement sur le réseau

Ajoutez les drapeaux -l et -s à la commande sockstat pour que les ports TCP ouverts soient disposés par leur statut d'écoute.

$ sockstat -46 -l -s

L'UDP ne peut pas être affiché en tant que protocole de non-réseau, ne conservant ainsi aucune donnée sur le statut d'écoute.

Organiser des ports ouverts par l'application / la commande en les utilisant

Voici la partie où le couplage de la commande sockstat avec un utilitaire Grep est utile; Avec Grep Utility, vous pouvez avoir les ports ouverts répertoriés par les applications actuellement en train de les utiliser.

La commande que vous utilisez pour répertorier les ports ouverts liés en particulier avec le serveur NTPD est:

$ sockstat -46 | grep ntpd

Vous pouvez rendre la liste plus spécifique en lui faisant afficher uniquement les prises connectées en ajoutant l'indicateur -c à la commande ci-dessus:

$ sockstat -46 -c | grep ntpd

Afficher toutes les sockets Unix

Ayez toutes les sockets de domaine Unix répertoriés en ajoutant U- un drapeau à la commande sockstat:

$ sockstat -u

Cela devrait également afficher les tuyaux nommés avec les sockets Unix.

Organiser des ports ouverts par les protocoles connectés HTTPS

Pour afficher la liste par le protocole HTTPS pour chaque prise, utilisez la commande ci-dessous:

$ sockstat -46 -s -p tcp -p 443 -c

Liste des prises distantes HTTP

Vous pouvez également répertorier toutes les prises distantes en utilisant actuellement le protocole HTTP. Exécutez l'une ou l'autre des commandes suivantes dans le terminal:

$ sockstat -46 -c | Egrep '80 | 443 '| awk 'print $ 7' | Uniq -C | tri -nr
$ sockstat -46 -c -p 80 443 | Adresse grep -v | awk 'print $ 7' |
Uniq -C | tri -nr

Trouvez le nombre de fois une adresse IP envoyée demande

Pour savoir combien de demandes de connexion ont été reçues de chaque adresse IP, vous pouvez exécuter la commande suivante:

$ sockstat -46 -c | Egrep '80 | 443 '| awk 'print $ 7' | Cut -d: -f1 | Uniq -C | trier -n

En déterminant s'il existe un nombre inhabituellement élevé de demandes de connexion envoyées par une adresse IP, vous pouvez identifier qu'il y a une intention malveillante et peut entrer positivement dans l'alerte jaune et prendre les protocoles de sécurité appropriés.

Envoyez une requête DNS à partir de la prise TCP

Vous pouvez envoyer une requête DNS à l'aide de la prise TCP sur la console, à condition que le réseau soit exempt de tout trafic DNS. Exécutez la commande ci-dessous:

$ DIG + TCP www.domaine.com @ 127.0.0.1

Emballer

Vous avez donc beaucoup appris sur l'utilisation de la commande sockstat et de ses variations avec les drapeaux et les commutateurs. Vous avez également vu comment il est utilisé de différentes manières pour présenter les diagnostics du réseau dans différentes préférences et utiliser ces informations pour effectuer un dépannage multiforme dans FreeBSD. C'est beaucoup en soi, mais maintenant que vous connaissez ce genre.