Que signifie le port ouvert?
Avant d'approfondir la vérification des ports ouverts, savons d'abord ce que signifient les ports ouverts. Un port ouvert ou un port d'écoute est le port dans lequel une application s'exécute. L'application en cours d'écoute sur un port, et nous pouvons communiquer avec cette application sur ce port d'écoute. Si une application s'exécute sur un port et que nous essayons d'exécuter une autre application sur le même port, le noyau lancera une erreur. C'est l'une des nombreuses raisons pour lesquelles nous vérifions les ports ouverts avant d'exécuter des applications.
Liste des ports ouverts à l'aide de NMAP
Network Mapper, connu sous le nom de NMAP, est un outil open source et gratuit, qui est utilisé pour scanner des ports sur un système. Il est utilisé pour trouver des vulnérabilités, découvrir des réseaux et trouver des ports ouverts. Dans cette section, nous utiliserons NMAP pour obtenir une liste de ports ouverts sur un système. Tout d'abord, mettez à jour le cache sur Ubuntu avant d'installer NMAP:
ubuntu @ ubuntu: ~ $ sudo apt-get update -y
NMAP peut être installé en utilisant la commande suivante dans le terminal:
ubuntu @ ubuntu: ~ $ sudo apt-get install nmap -y
Après l'installation de NMAP, vérifiez l'installation en vérifiant la version du NMAP:
ubuntu @ ubuntu: ~ $ nmap --version
S'il donne la version de NMAP, alors il est parfaitement installé, sinon, essayez à nouveau les commandes ci-dessus pour installer correctement NMAP. NMAP est utilisé pour effectuer plusieurs liés aux réseaux, et la numérisation des ports est l'une de ces tâches. L'outil NMAP est utilisé avec de nombreuses options. Nous pouvons obtenir la liste de toutes les options disponibles en utilisant la commande suivante:
ubuntu @ ubuntu: ~ $ man nmap
Ainsi, pour scanner votre Host local, utilisez la commande appréhendée ci-dessous:
ubuntu @ ubuntu: ~ $ sudo nmap localhost
Il répertorie tous les ports ouverts sur localhost, comme affiché dans l'image ci-dessus. Nous pouvons également utiliser NMAP pour scanner des hôtes distants:
Ubuntu @ Ubuntu: ~ $ sudo nmap 93.184.216.34
De plus, nous pouvons utiliser le nom d'hôte du serveur distant au lieu d'une adresse IP:
ubuntu @ ubuntu: ~ $ sudo nmap www.exemple.com
La commande NMAP peut également être utilisée pour scanner une gamme d'adresses IP. Spécifiez la plage d'adresses IP dans la commande, comme dans la commande ci-dessous:
Ubuntu @ Ubuntu: ~ $ sudo nmap 192.168.1.1-10
La commande ci-dessus analysera toutes les adresses IP de 192.168.1.1 à 192.168.1.10, et il affichera le résultat dans le terminal. Pour scanner des ports sur un sous-réseau, nous pouvons utiliser NMAP comme suit:
Ubuntu @ Ubuntu: ~ $ sudo nmap 192.168.1.1/24
La commande ci-dessus analysera tous les hôtes avec des adresses IP dans le sous-réseau défini dans la commande.
Parfois, vous devez scanner des ports sur des hôtes aléatoires, qui sont dans différents sous-réseaux et ne sont pas en séquence, alors la meilleure solution consiste à écrire un fichier d'hôtes dans lequel tous les noms d'hôte sont écrits, séparés par un ou plusieurs espaces, onglets ou nouveaux lignes. Ce fichier peut être utilisé avec NMAP comme suit:
Ubuntu @ Ubuntu: ~ $ sudo nmap -il hôtes.SMS
Nous pouvons utiliser NMAP pour scanner un seul port sur le système en spécifiant le port à l'aide de l'indicateur '-p', avec NMAP, comme dans la commande suivante:
ubuntu @ ubuntu: ~ $ sudo nmap -p 80 localhost
La gamme de ports peut également être numérisée sur un système en utilisant NMAP de la manière suivante:
Ubuntu @ Ubuntu: ~ $ sudo nmap -p 80-85 localhost
Nous pouvons scanner tous les ports d'un système à l'aide de NMAP:
ubuntu @ ubuntu: ~ $ sudo nmap -p- localhost
Pour obtenir une liste des ports les plus couramment ouverts de votre système, vous pouvez utiliser la commande NMAP avec l'indicateur '-f':
ubuntu @ ubuntu: ~ $ sudo nmap -f localhost
Les ports TCP peuvent être numérisés sur le système en utilisant NMAP en ajoutant simplement l'indicateur '-t', ainsi que la commande NMAP:
ubuntu @ ubuntu: ~ $ sudo nmap -st localhost
De même, pour les ports UDP, vous pouvez utiliser l'indicateur '-u' avec la commande NMAP:
ubuntu @ ubuntu: ~ $ sudo nmap -su localhost
Liste des ports ouverts à l'aide de LSOF
La commande LSOF, également connue sous le nom de «listes de fichiers ouverts», est utilisée pour obtenir les informations sur les fichiers ouverts utilisés par différents processus dans Unix et Linux comme les systèmes d'exploitation. Pour la plupart des distros Linux, cet outil est préinstallé. Nous pouvons vérifier l'installation de LSOF en vérifiant simplement sa version:
ubuntu @ ubuntu: ~ $ lsof -v
S'il n'affiche pas la version, alors LSOF n'est pas installé par défaut. Nous pouvons toujours l'installer en utilisant les commandes suivantes dans le terminal:
ubuntu @ ubuntu: ~ $ sudo apt-get update -y
ubuntu @ ubuntu: ~ $ sudo apt-get install lsof
Nous pouvons utiliser la commande LSOF avec différentes options. La liste de toutes les options disponibles peut être affichée à l'aide de la commande suivante dans le terminal:
ubuntu @ ubuntu: ~ $ man lsof
Maintenant, dans cette section, nous allons utiliser LSOF pour afficher les ports d'un système de différentes manières:
ubuntu @ ubuntu: ~ $ sudo lsof -i
La commande ci-dessus a affiché tous les ports ouverts. Nous pouvons également utiliser la commande LSOF pour afficher toutes les prises ouvertes:
Ubuntu @ Ubuntu: ~ $ sudo lsof -n -p | Grep écouter
Nous pouvons énumérer les ports filtrés en fonction d'un protocole utilisant LSOF. Exécutez la commande ci-dessous pour répertorier tous les types de connexion TCP:
ubuntu @ ubuntu: ~ $ sudo lsof -i tcp
De même, nous pouvons répertorier tous les types de connexions UDP à l'aide de LSOF de la manière suivante:
ubuntu @ ubuntu: ~ $ sudo lsof -i udp
Liste des ports ouverts à l'aide de netstat
Le Netstat, également connu sous le nom de statistiques réseau, est un programme de ligne de commande utilisé pour afficher des informations détaillées sur les réseaux. Il affiche à la fois les connexions TCP entrantes et sortantes, les tables de routage, les interfaces réseau, etc. Dans cette section, nous utiliserons Netstat pour répertorier les ports ouverts sur un système. L'outil Netstat peut être installé en exécutant les commandes suivantes:
ubuntu @ ubuntu: ~ $ sudo apt-get update -y
ubuntu @ ubuntu: ~ $ sudo apt-get install net-tools -y
Après avoir exécuté les commandes ci-dessus, vous pouvez vérifier l'installation en vérifiant la version NetStat:
Ubuntu @ Ubuntu: ~ $ netstat --version
S'il affiche la version de Net-Tools, alors l'installation est bien, sinon, exécutez à nouveau les commandes d'installation. Pour obtenir un aperçu de toutes les options disponibles qui peuvent être utilisées, ainsi que la commande netstat, exécutez la commande suivante:
ubuntu @ ubuntu: ~ $ man netstat
Nous pouvons obtenir une liste de tous les ports d'écoute en utilisant la commande netstat dans Ubuntu en exécutant la commande suivante:
ubuntu @ ubuntu: ~ $ sudo netstat -l
La commande netstat peut également être utilisée pour filtrer l'écoute des ports TCP et UDP en ajoutant simplement un drapeau avec la commande. Pour écouter les ports TCP:
ubuntu @ ubuntu: ~ $ sudo netstat -lt
Pour écouter les ports UDP, utilisez la commande suivante:
ubuntu @ ubuntu: ~ $ sudo netstat -lu
Pour obtenir la liste de tous les ports Unix d'écoute, vous pouvez exécuter la commande suivante dans le terminal:
ubuntu @ ubuntu: ~ $ sudo netstat -lx
Liste des ports ouverts à l'aide de SS
La commande SS est utilisée pour afficher des informations sur les sockets dans un système Linux. Il affiche des informations plus détaillées sur les sockets que la commande netstat. La commande SS est préinstallée pour la plupart des distros Linux, vous n'avez donc pas besoin de l'installer avant de l'utiliser. Vous pouvez obtenir une liste de toutes les options, qui peuvent être utilisées avec la commande SS, en exécutant la commande 'man' avec SS:
ubuntu @ ubuntu: ~ $ man ss
Pour obtenir une liste de toute la connexion quel que soit leur état, utilisez la commande SS sans aucun drapeau:
ubuntu @ ubuntu: ~ $ sudo ss
Pour obtenir une liste de tous les ports d'écoute, utilisez la commande SS avec l'indicateur '-l'. L'indicateur '-l' est utilisé pour afficher uniquement les ports d'écoute:
ubuntu @ ubuntu: ~ $ sudo ss -l
Pour obtenir tous les ports TCP à écouter, nous pouvons utiliser l'indicateur '-T' et '-L' avec la commande SS:
ubuntu @ ubuntu: ~ $ sudo ss -lt
De même, nous pouvons obtenir une liste de tous les ports UDP écoutés en utilisant la commande SS avec le drapeau '-u' et '-l':
ubuntu @ ubuntu: ~ $ sudo ss -lu
La commande SS peut également être utilisée pour obtenir une liste de toutes les connexions avec la source ou le port de destination. Dans l'exemple suivant, nous allons obtenir la liste de toutes les connexions avec la destination ou le port source 22:
ubuntu @ ubuntu: ~ $ sudo ss -at '(dport =: 22 ou sport =: 22)'
Vous obtiendrez une liste de toutes les connexions entrantes et sortantes si vous vous êtes connecté à un système distant à l'aide de SSH.
Conclusion
Pour les administrateurs système, les professionnels de la sécurité et d'autres personnes liées à l'informatique, il est important d'être conscient des ports ouverts sur les serveurs. Linux est riche avec les outils utilisés pour diagnostiquer les réseaux et fournit de nombreux outils qui peuvent être utiles pour divers types d'activités de réseautage. Dans ce tutoriel, nous avons utilisé des outils comme Netstat, SS, LSOF et NMAP pour vérifier les ports ouverts sur Ubuntu. Après avoir parcouru cet article, vous pourrez facilement énumérer tous les ports d'écoute de votre serveur Linux à bien des égards.