¿Cómo abrir un puerto?

21

Tengo ubuntu 12.04 y no puedo permitir cierto puerto en mi firewall. Así que básicamente dije que permitiría todo pero aún no funciona. Por favor ayuda. nmap en esta máquina desde otra máquina dice:

$ nmap host_name
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

y aquí está nmap de la misma máquina

$ nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2014-01-21 11:14 PST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000080s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
631/tcp  open  ipp
3306/tcp open  mysql
8000/tcp open  http-alt

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

Quiero abrir el puerto 8000 y aquí está la salida de iptables.

# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0  

mmoghimi@titan:~$ sudo netstat -tulpn
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:3306          0.0.0.0:*               LISTEN      14842/mysqld    
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      982/smbd        
tcp        0      0 127.0.0.1:39346         0.0.0.0:*               LISTEN      3405/GoogleTalkPlug
tcp        0      0 127.0.0.1:50995         0.0.0.0:*               LISTEN      3405/GoogleTalkPlug
tcp        0      0 127.0.0.1:5939          0.0.0.0:*               LISTEN      2412/teamviewerd
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2429/dnsmasq    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      985/sshd        
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1267/cupsd      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1748/exim4      
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      2885/dropbox    
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      982/smbd        
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      4134/python    
tcp6       0      0 :::139                  :::*                    LISTEN      982/smbd        
tcp6       0      0 :::80                   :::*                    LISTEN      1832/apache2    
tcp6       0      0 :::22                   :::*                    LISTEN      985/sshd        
tcp6       0      0 ::1:631                 :::*                    LISTEN      1267/cupsd      
tcp6       0      0 ::1:25                  :::*                    LISTEN      1748/exim4      
tcp6       0      0 :::445                  :::*                    LISTEN      982/smbd        
udp        0      0 127.0.0.1:53            0.0.0.0:*                           2429/dnsmasq    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2403/dhclient  
udp        0      0 128.54.44.214:123       0.0.0.0:*                           3430/ntpd      
udp        0      0 MYIP:123                0.0.0.0:*                           3430/ntpd      
udp        0      0 127.0.0.1:123           0.0.0.0:*                           3430/ntpd      
udp        0      0 0.0.0.0:123             0.0.0.0:*                           3430/ntpd      
udp        0      0 137.110.255.255:137     0.0.0.0:*                           2602/nmbd      
udp        0      0 MYIP:137                0.0.0.0:*                           2602/nmbd      
udp        0      0 128.54.47.255:137       0.0.0.0:*                           2602/nmbd      
udp        0      0 128.54.44.214:137       0.0.0.0:*                           2602/nmbd      
udp        0      0 0.0.0.0:137             0.0.0.0:*                           2602/nmbd      
udp        0      0 137.110.255.255:138     0.0.0.0:*                           2602/nmbd      
udp        0      0 MYIP:138                0.0.0.0:*                           2602/nmbd      
udp        0      0 128.54.47.255:138       0.0.0.0:*                           2602/nmbd      
udp        0      0 128.54.44.214:138       0.0.0.0:*                           2602/nmbd      
udp        0      0 0.0.0.0:138             0.0.0.0:*                           2602/nmbd      
udp        0      0 0.0.0.0:17500           0.0.0.0:*                           2885/dropbox    
udp        0      0 0.0.0.0:36889           0.0.0.0:*                           1356/avahi-daemon:
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           1356/avahi-daemon:
udp6       0      0 ::1:123                 :::*                                3430/ntpd      
udp6       0      0 fe80::fab1:56ff:fe9:123 :::*                                3430/ntpd      
udp6       0      0 fe80::3e77:e6ff:fe6:123 :::*                                3430/ntpd      
udp6       0      0 :::123                  :::*                                3430/ntpd      
udp6       0      0 :::33792                :::*                                1356/avahi-daemon:
udp6       0      0 :::5353                 :::*                                1356/avahi-daemon:
Mohammad Moghimi
fuente

Respuestas:

25

Su iptablessalida 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, nmaplo informará como closed. Desde aquí :

cerrado

Se puede acceder a un puerto cerrado (recibe y responde a los paquetes de sonda Nmap), pero no hay ninguna aplicación que lo escuche. Pueden ser útiles para mostrar que un host está activo en una dirección IP (descubrimiento de host o escaneo de ping) y como parte de la detección del sistema operativo. Debido a que los puertos cerrados son accesibles, puede valer la pena escanear más tarde en caso de que se abran algunos. Los administradores pueden considerar bloquear dichos puertos con un firewall. Luego aparecerían en el estado filtrado, discutido a continuación.

Entonces, el nmapinforme: en "996 closed ports"realidad dice que esos puertos no están bloqueados por un firewall, pero ningún programa los está escuchando. nmapinforma un puerto bloqueado como filtered:

filtrado

Nmap no puede determinar si el puerto está abierto porque el filtrado de paquetes impide que sus sondas lleguen al puerto. El filtrado podría ser desde 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. Puede hacer esto si acaba de ejecutar python3 -m http.servero python -m SimpleHTTPServeren la máquina en la que está tratando de abrir los puertos, esto pondrá un servidor HTTP escuchando en el puerto 8000. Luego, nmapvuelva a ejecutar para escanear la máquina.

ACTUALIZAR:

Su netstatsalida tiene esta línea:

tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      4134/python  

Eso significa que su programa de Python solo está escuchando en localhost (127.0.0.1), por lo que solo es accesible desde localhost, no desde afuera. El programa tiene que escuchar en la IP de su adaptador de red o en la IP universal 0.0.0.0. El problema es lo que escribí anteriormente, ningún programa está escuchando en el puerto 8000 (del mundo exterior), por lo que nmapdice que está cerrado.

halconero
fuente
Agregué nmap desde la misma máquina. En realidad hay un programa escuchando en 8000
Mohammad Moghimi
@MohammadMoghimi Ejecute sudo netstat -tulpnen la máquina en la que está intentando abrir el puerto y publique el resultado.
cetrero
pastebin.com/xhwc6vMN MYIP es mi dirección IP.
Mohammad Moghimi
@MohammadMoghimi Actualicé mi respuesta, su programa solo está escuchando en locahost, ese es el problema, vea mi actualización.
cetrero
El cetrero tiene razón. Cambie su programa para escuchar en 0.0.0.0 o su dirección IP LAN en lugar de 127.0.0.1.
Xavier J
1

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

Mayur Bhandare
fuente
1
Por el amor de Dios, NO ESCRIBA ESTO. Habrá principiantes que no podrán acceder a sus servidores después de sudo ufw enable
Vasile