Dans le réseautage, un port est une fonctionnalité intéressante. C'est un moyen pour le trafic réseau d'identifier l'application ou le service de destination. Chaque processus / service obtient son port unique. Un port sera toujours associé à l'adresse IP de l'hôte avec le protocole.
C'est une de mes métaphore préférée pour décrire ce qu'est un port. Imaginez un navire chargé de cargaison, qui se rendra dans un terrain lointain. Quelles informations sont nécessaires pour atteindre correctement la destination? Par souci de simplicité, disons qu'il a besoin du pays (l'adresse IP) et du port Le navire s'accostera.
Dans ce guide, consultez comment répertorier les ports ouverts sur Linux.
Ports sur Linux
Les ports agissent comme un point final de la communication. C'est un numéro 16 bits (0 à 65535 en décimal). Alors que la gamme est grande, pour une facilité d'utilisation, les ports sont classés en trois catégories. Chaque catégorie est étiquetée comme la plage de valeur du port:
Dans Linux, il existe plusieurs façons de vérifier les ports ouverts. Par défaut, tout port restera fermé à moins qu'une application ne l'utilise. Si un port est ouvert, il doit être affecté à un service / processus.
Liste des ports ouverts
Il est plus facile d'identifier quels ports sont utilisés plutôt que quels ports sont ouverts. C'est pourquoi la section suivante comportera des méthodes pour répertorier tous les ports actuellement utilisés. Dans Linux, il existe plusieurs outils disponibles pour la tâche. La plupart d'entre eux viennent intégrés dans n'importe quelle distribution Linux.
Apprendre quels ports sont actuellement ouverts peuvent être utiles dans divers scénarios. Il est possible de configurer un port dédié pour une certaine application. Un port ouvert peut également être une forte indication d'intrusion dans le réseau.
Les méthodes suivantes sont démontrées sur Ubuntu 20.04.1 LTS.
Liste des protocoles et des ports ouverts de / etc / services
Le fichier / etc / services contient des informations sur les services en cours d'exécution. C'est un gros fichier, donc prêt à être submergé.
$ cat / etc / services | moins
Liste des ports ouverts à l'aide de netstat
L'outil Netstat est un utilitaire pour afficher les connexions réseau pour TCP, les tables de routage et diverses interfaces réseau. Il propose également des statistiques de protocole de réseau. En utilisant Netstat, nous pouvons répertorier tous les ports ouverts du système.
Exécutez la commande netstat suivante:
$ netstat -atu
Allons une ventilation rapide de tous les drapeaux que nous avons utilisés dans cette commande.
Voici une autre variation de la commande netstat:
$ netstat -lntu
Il y a deux nouveaux drapeaux utilisés dans la commande. Que signifient-ils?
Pour afficher le PID du processus qui utilise un port, utilisez l'indicateur «-p»:
$ netstat -lntup
Liste des ports ouverts à l'aide de SS
L'outil SS est un utilitaire pour enquêter sur Socket. Son utilisation est similaire à Netstat.
Pour répertorier les ports ouverts, exécutez la commande SS suivante:
$ ss -lntu
Les drapeaux sont similaires à Netstat. Les fonctions qu'ils décrivent sont également assez similaires.
Liste des ports ouverts à l'aide de LSOF
La commande LSOF doit lister les fichiers ouverts. Cependant, il peut également être utilisé pour afficher les ports ouverts.
Exécutez la commande LSOF suivante:
$ lsof -i
Pour obtenir les ports ouverts d'un protocole spécifique (TCP, UDP, etc.) puis définissez-le après le drapeau «-i», utilisez:
$ lsof -i
Liste des ports ouverts à l'aide de NMAP
L'outil NMAP est puissant pour l'exploration du réseau et la sécurité / analyse de port. Il peut signaler tous les ports ouverts du système.
Pour répertorier les ports TCP ouverts, exécutez la commande NMAP suivante. Ici, l'adresse IP est de l'ordinateur hôte:
$ sudo nmap -st -p- localhost
Ici, il y a deux parties de l'argument de commandement.
Si vous devez répertorier les ports UDP ouverts, exécutez la commande NMAP suivante:
$ sudo nmap -su -p- localhost
Pour obtenir les ports TCP et UDP ouverts, utilisez la commande suivante:
$ sudo nmap -n -pn -st -su -p- localhost
Liste des ports ouverts à l'aide de netcat
L'outil NetCAT est un utilitaire de ligne de commande pour lire et écrire des données sur les connexions réseau via les protocoles TCP et UDP. Cet outil peut également être utilisé pour répertorier les ports ouverts. Il peut effectuer des tests sur un port spécifique ou une gamme de ports.
La commande netcat suivante scannera le port de 1 à 1000. La commande NetCAT effectuera le protocole d'analyse sur TCP par défaut:
$ nc -z -v localhost 1-1000
Il peut également être étendu à toute la liste des ports possibles:
$ nc -z -v localhost 1-65535
Allons une rupture rapide des drapeaux.
Pour obtenir uniquement les ports ouverts de cette liste, filtrez la sortie avec Grep pour le terme «réussi».
$ nc -z -v localhost 0-65535 2> & 1 | Grep a réussi
Si vous souhaitez effectuer la numérisation sur le protocole UDP, ajoutez l'indicateur "-u".
$ nc -z -v -u localhost 0-65535 2> & 1 | Grep a réussi
Dernières pensées
Comme démontré, il existe des tonnes de façons de rechercher des ports ouverts sur Linux. Je suggère d'essayer toutes les méthodes avant de décider laquelle maîtriser. Si vous utilisez régulièrement un certain outil comme NetCAT ou NMAP, la maîtrise des méthodes associées sera la plus bénéfique.
Happy Computing!