web-dev-qa-db-fra.com

Comment trouver quels ports sont bloqués?

J'ai une racine sur deux machines A et B et j'aimerais savoir quels ports ne sont pas accessibles sur B de A. y a-t-il un moyen d'exécuter une application de ligne de commande sur B qui écoute sur tous les ports puis exécutant nmap d'un peut-être? Les ports peuvent être bloqués par les routeurs, de sorte que la vérification iptables ne suffira pas.

Un simple NMAP donne

Starting Nmap 5.21 ( http://nmap.org ) at 2013-04-18 09:32 BST
Nmap scan report for B (xxx.xxx.xxx.xxx)
Host is up (0.00038s latency).
rDNS record for xxx.xxx.xxx.xxx: B
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 Host up) scanned in 0.07 seconds

Si je ne fais que scanner le port 5900 de A i get

nc -v -w 1 B -z 5900
nc: connect to B port 5900 (tcp) failed: Connection refused

Et de B, je reçois

nc -v -w 1 localhost -z 5900
Connection to localhost 5900 port [tcp/*] succeeded!

Également en cours d'exécution Nmap de B, je reçois

nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2013-04-18 09:57 BST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00024s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
53/tcp   open  domain
631/tcp  open  ipp
5900/tcp open  vnc
7
Anush

Lorsque vous utilisez nmap, il existe une différence entre un port "filtré" et un port "fermé". Cela devrait afficher tous les ports non accessibles comme "filtré" et ceux où, juste personne n'écoute doit être répertorié comme "fermé".

Si vous avez un routeur moyen entre les deux réponses TCP Demandes au lieu de les laisser tomber, vous pouvez le découvrir en liaison à tous les ports (Avertissement, vous pourriez être à court de Ressources système faisant cela! Peut-être essayer avec ~ 1000 ports à la fois):

for i in {1..65535} ; do nc -l $i & done
2
Stefan Seidel