Solución:
Tu iptables
la salida muestra que ningún puerto está bloqueado.
Entonces la pregunta es: ¿hay algo escuchando en el puerto 8000? Si nada está escuchando en un puerto pero el puerto no está bloqueado por un firewall nmap
lo reportará como closed
. De aquí:
cerrado
Se puede acceder a un puerto cerrado (recibe y responde a los paquetes de sondeo de Nmap), pero no hay ninguna aplicación que lo escuche. Pueden ser útiles para mostrar que un host está conectado a una dirección IP (detección de host o escaneo de ping) y como parte de la detección del sistema operativo. Debido a que se puede acceder a los puertos cerrados, puede valer la pena escanearlos más tarde en caso de que algunos se abran. Es posible que los administradores quieran considerar bloquear dichos puertos con un firewall. Entonces aparecerían en el estado filtrado, discutido a continuación.
Entonces el nmap
reporte: "996 closed ports"
en realidad dicen que esos puertos no están bloqueados por un firewall pero ningún programa los escucha. nmap
informa un puerto bloqueado como filtered
:
filtrado
Nmap no puede determinar si el puerto está abierto porque el filtrado de paquetes evita que sus sondas lleguen al puerto. El filtrado podría proceder de un dispositivo de firewall dedicado, reglas de enrutador o software de firewall basado en host. …
Entonces, si coloca una aplicación en estado de escucha en el puerto 8000, es probable que aparezca en la salida de nmap
. Puedes hacer esto si solo corres python3 -m http.server
o python -m SimpleHTTPServer
en la máquina en la que está intentando abrir los puertos, esto pondrá un servidor HTTP escuchando en el puerto 8000. Luego ejecute nmap
nuevamente para escanear la máquina.
ACTUALIZAR:
Tu netstat
la salida tiene esta línea:
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 4134/python
Eso significa que su programa Python solo está escuchando en localhost (127.0.0.1), por lo que solo es accesible desde localhost, no desde afuera. El programa debe escuchar en la IP de su adaptador de red o en la IP universal 0.0.0.0. El problema es lo que escribí arriba, ningún programa está escuchando en el puerto 8000 (desde el mundo exterior) así que nmap
dice que está cerrado.
Para habilitar el puerto en Ubuntu
sudo ufw allow <port_nr>
por ejemplo, para permitir ssh
sudo ufw allow 22
sudo ufw enable
Eso es todo