J'ai une question en fermant le port, je pense que j'ai des choses étranges.
Quand j'utilise exécuter
nmap --top-ports 10 192.168.1.1
cela montre que le port 23/TCP est ouvert.
Mais quand j'exécute
nmap --top-ports 10 localhost
cela montre que le port 23/tcp est fermé.
Lequel d'entre eux est vrai? Je veux fermer ce port sur tout mon système, comment puis-je faire ?
Réponse acceptée :
Nmap est un excellent scanner de ports, mais parfois vous voulez quelque chose de plus autoritaire. Vous pouvez demander au noyau quels processus ont quels ports ouverts en utilisant le netstat
utilitaire :
[email protected]:~$ sudo netstat -tlnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1004/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 380/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 822/cupsd tcp6 0 0 :::22 :::* LISTEN 380/sshd tcp6 0 0 ::1:631 :::* LISTEN 822/cupsd
Les options que j'ai données sont :
-t
TCP uniquement-l
Ports d'écoute uniquement-n
Ne recherchez pas les noms de service et d'hôte, affichez simplement les numéros-p
Afficher les informations de processus (nécessite le privilège root)
Dans ce cas, nous pouvons voir que sshd
écoute sur n'importe quelle interface (0.0.0.0
) port 22 et cupsd
écoute en boucle (127.0.0.1
) port 631. Votre sortie peut montrer que telnetd
a une adresse locale de 192.168.1.1:23
, ce qui signifie qu'il ne répondra pas aux connexions sur l'adaptateur de bouclage (par exemple, vous ne pouvez pas telnet 127.0.0.1
).
Il existe d'autres outils qui afficheront des informations similaires (par exemple, lsof
ou /proc
), mais netstat est le plus largement disponible. Cela fonctionne même sous Windows (netstat -anb
). BSD netstat est un peu différent :vous devrez utiliser sockstat(1) pour obtenir les informations de processus à la place.
Une fois que vous avez l'ID de processus et le nom du programme, vous pouvez chercher le processus et le tuer si vous souhaitez fermer le port. Pour un contrôle plus précis, vous pouvez utiliser un pare-feu (iptables sous Linux) pour limiter l'accès à certaines adresses uniquement. Vous devrez peut-être désactiver le démarrage d'un service. Si le PID est "-" sous Linux, il s'agit probablement d'un processus du noyau (c'est courant avec NFS par exemple), alors bonne chance pour découvrir de quoi il s'agit.
Remarque :J'ai dit "autoritaire" parce que vous n'êtes pas gêné par les conditions du réseau et les pare-feu. Si vous faites confiance à votre ordinateur, c'est très bien. Cependant, si vous soupçonnez que vous avez été piraté, vous ne pourrez peut-être pas faire confiance aux outils de votre ordinateur. Remplacer les utilitaires standard (et parfois même les appels système) par ceux qui cachent certains processus ou ports (c'est-à-dire les rootkits) est une pratique courante chez les attaquants. Votre meilleur pari à ce stade est de faire une copie médico-légale de votre disque et de restaurer à partir de la sauvegarde ; puis utilisez la copie pour déterminer comment ils sont entrés et fermez-le.
Connexe :Comment programmer un AVR Raven avec Linux ou un Mac ?