Connecté à un wifi publique dont le firewall bloque de nombreux ports sortants, je me suis demandé comment savoir si chacun d’eux est ouvert et fermé.
Voici le script que j’ai trouvé et adapté. Il fonctionne sur Mac et Linux.
On lance le Terminal et on crée le fichier testports.sh
sur le Bureau :
$ cd ~/Desktop/
$ nano testports.sh
On copies ces lignes dans le fichier :
#!/bin/bash for x in `seq 1 65535`; do echo -ne "$x " curl "http://portquiz.net:$x" \ --connect-timeout 2 \ --max-time 1 \ -o /dev/null \ -q >/dev/null 2>&1 \ && echo 'open' \ || echo 'closed' done | tee ports.lst
On enregistre, on quitte et on rend le script exécutable :
$ chmod u+x testports.sh
On lance le script :
$ ./testports.sh
Tous les ports s’affichent un par un.
Lorsque l’opération est terminée, un fichier récapitulatif est créé sur le bureau : ports.lst
.
Le script interroge le site http://portquiz.net
qui répond sur tous les ports.
Comme indiqué sur le site, les ports 21
, 22
, 25
, 445
, … ne répondent pas et sont interprétés comme fermés par le script.
Source du script :
https://superuser.com/questions/608182/detect-what-outgoing-ports-are-bypassed-by-firewall