it-swarm-es.com

¿Todos los puertos están cerrados hasta que el usuario los abre manualmente? ¿Es verdad?

Soy nuevo en Linux y Ubuntu. Busqué en Google y leí algunos artículos que indican que todos los puertos están cerrados hasta que el usuario los abra manualmente. ¿Es correcto?

¿Y qué quiere decir con "escuchar en un puerto" y "se establece un puerto" en términos simples?

2
n00b

Busqué en Google y leí algunos artículos que indican que todos los puertos están cerrados hasta que el usuario los abra manualmente. ¿Es correcto?

Depende de lo que veas como "usuario". El usuario generalmente no dice "oye, abre el puerto X". Los servicios del sistema (como CUPS para impresión, puerto UDP/TCP 631) abren un puerto para escuchar. Otros ejemplos incluyen un servidor HTTP (puerto TCP 80), un servidor DNS (puerto UDP 53) y un servidor SMTP (correo) (puerto TCP 25).

Hasta ahora solo he mencionado puertos, pero un programa también debe especificar una dirección para comenzar a escuchar. Es importante comprender que los programas pueden escuchar localmente (dirección IPv4 127.0.0.1, dirección IPv6 ::1) o en una dirección para que el servicio sea accesible por otro dispositivos en su red (usando su dirección de red, por ejemplo, 10.0.1.4). También hay una "dirección comodín" (0.0.0.0 para IPv4, :: para IPv6) a la que también se puede acceder de forma remota.

De hecho, los puertos están "cerrados" hasta que un programa comienza a escucharlo.

El comando Sudo netstat -tulpn se puede usar para mostrar programas TCP/UDP en escucha. En una instalación de escritorio de Ubuntu predeterminada, esto muestra:

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      2254/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1346/cupsd      
tcp6       0      0 ::1:631                 :::*                    LISTEN      1346/cupsd      
udp        0      0 0.0.0.0:59296           0.0.0.0:*                           1152/avahi-daemon: 
udp        0      0 127.0.0.1:53            0.0.0.0:*                           2254/dnsmasq    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1684/dhclient   
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           1152/avahi-daemon: 
udp6       0      0 :::5353                 :::*                                1152/avahi-daemon: 
udp6       0      0 :::53537                :::*                                1152/avahi-daemon: 

Aquí, puede ver que avahi-daemon es accesible a través de la red en los puertos UDP 59296, 5353 y 53537. Los dos últimos son estándar para avahi-daemon, el primero es una dirección aleatoria que probablemente se comunica utilizando los otros dos puertos. Este demonio se usa para "descubrimiento de red" y le permite hacer cosas como "compartir archivos". También hay un cliente DHCP escuchando globalmente en el puerto UDP 68.

Algunos servicios solo escuchan localmente y no son accesibles a través de la red. Estos son el servicio de caché DNS dnsmasq (puerto UDP 53) y el servicio de impresora CUPS (TCP 631).

¿Y qué quiere decir con "escuchar en un puerto" y "se establece un puerto" en términos simples?

No existe la noción de un "puerto establecido", solo una "conexión establecida". Un puerto que está abierto para escuchar está respaldado por un programa que está interesado en los datos que fluyen en ese puerto. Estos puertos son típicamente estáticos, HTTP se ejecuta en TCP puerto 80, DNS en el puerto UDP 53. Estos estándares permiten que otros dispositivos de red encuentren su servicio rápidamente.

Se establece una conexión TCP cuando ambos dispositivos de red acuerdan que quieren hablar entre ellos.

5
Lekensteyn

Esa afirmación es no correcta. Lo cierto es que muy pocos servicios están instalados por defecto. Y donde no hay servicio esperando ser contactado/preguntado (Eso es lo que significa "escuchar") no hay necesidad de cerrar ese puerto.

Pero, de manera predeterminada, todos los servicios instalados se están ejecutando y no se establecen reglas de firewall para evitar que alguien se comunique con el servicio.

En cuanto a la pregunta adicional: los "puertos" son como números de extensión telefónica, designan un programa que habla a través de este número como un número de extensión telefónica designa a una persona o un departamento dentro de una empresa.

3
guntbert