Le Netcat (en bref NC) est un utilitaire de mise en réseau informatique, de débogage et d'investigation riche en fonctionnalités qui prend en charge une large gamme de commandes pour gérer les réseaux et surveiller le flux de données de trafic réseau entre les systèmes utilisant le protocole de contrôle de transmission (TCP) et le protocole de datagramme utilisateur. (UDP).
Netcat peut être un outil très utile pour les administrateurs réseau et système pour reconnaître rapidement les performances de leur réseau et le type d'activité réseau qui se produit dans le système.
Dans cet article, nous expliquerons comment installer et utiliser cet utilitaire polyvalent netcat pour effectuer des analyses de port simples afin d'identifier les ports ouverts dans les systèmes Linux.
Installer Netcat sous Linux
Netcat devrait être disponible sur presque toutes les distributions Linux modernes en utilisant le gestionnaire de packages par défaut, comme indiqué.
$ sudo yum install nc [On CentOS/RHEL/Rocky Linux/AlmaLinux] $ sudo dnf install nc [On Fedora 22+ and RHEL 8] $ sudo apt install Netcat [On Debian/Ubuntu]
Analyse des ports Linux avec les commandes Netcat
Une fois que vous avez installé l'utilitaire Netcat sur votre serveur Linux, vous pouvez commencer à effectuer une analyse des ports réseau, qui inspectera l'état de tous les ports sur le domaine ou l'adresse IP spécifié afin que vous puissiez découvrir si un pare-feu ou un autre mécanisme de blocage est en place. lieu.
Par exemple, nous pouvons analyser tous les ports jusqu'à 1000 en exécutant la commande suivante en utilisant le -z
option, qui ne fera qu'un scan au lieu d'essayer d'ouvrir une connexion, et -v
option pour notifier à netcat de produire des informations plus détaillées.
$ netcat -z -v google.com 1-1000 Or $ nc -z -v google.com 1-1000
La sortie ressemblera à ceci :
netcat: connect to google.com port 1 (tcp) failed: Connection timed out netcat: connect to google.com port 1 (tcp) failed: Network is unreachable netcat: connect to google.com port 2 (tcp) failed: Connection timed out netcat: connect to google.com port 2 (tcp) failed: Network is unreachable netcat: connect to google.com port 3 (tcp) failed: Connection timed out netcat: connect to google.com port 3 (tcp) failed: Network is unreachable netcat: connect to google.com port 4 (tcp) failed: Connection timed out netcat: connect to google.com port 4 (tcp) failed: Network is unreachable netcat: connect to google.com port 5 (tcp) failed: Connection timed out netcat: connect to google.com port 5 (tcp) failed: Network is unreachable ....
Vous pouvez également effectuer une analyse de port pour l'adresse IP en utilisant le -n
option pour définir que vous n'avez pas besoin de résoudre l'adresse IP à l'aide de DNS.
$ netcat -z -n -v 192.168.0.173 1-1000 OR $ nc -z -n -v 192.168.0.173 1-1000
La sortie ressemblera à ceci :
netcat: connect to 192.168.0.173 port 1 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 2 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 3 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 4 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 5 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 6 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 7 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 8 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 9 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 10 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 11 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 12 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 13 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 14 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 15 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 16 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 17 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 18 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 19 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 20 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 21 (tcp) failed: Connection refused Connection to 192.168.0.173 22 port [tcp/*] succeeded! netcat: connect to 192.168.0.173 port 23 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 24 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 25 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 26 (tcp) failed: Connection refused netcat: connect to 192.168.0.173 port 27 (tcp) failed: Connection refused ...
À partir de la sortie ci-dessus, vous pouvez clairement voir que le port SSH traditionnel est ouvert dans la plage de 1-1000 sur la machine distante.
Si vous souhaitez uniquement imprimer les ports ouverts à l'écran, vous devez filtrer la sortie avec la commande grep comme indiqué.
$ netcat -z -n -v 192.168.0.173 1-1000 2>&1 | grep succeeded OR $ nc -z -n -v 192.168.0.173 1-1000 2>&1 | grep succeeded
Sortie :
Connection to 192.168.0.173 22 port [tcp/*] succeeded! Connection to 192.168.0.173 80 port [tcp/*] succeeded!
Vous pouvez également analyser des ports individuels.
$ nc -zv 192.168.0.173 80 $ nc -zv 192.168.0.173 22 Or $ nc -zv 192.168.0.173 http $ nc -zv 192.168.0.173 ssh
[ Vous pourriez également aimer :Comment rechercher et fermer des ports ouverts sous Linux ]
Pour plus d'informations et d'utilisation, lisez les pages de manuel de netcat.