GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo cerrar puertos en Linux?

Tengo una duda en el cierre del puerto, creo que tengo algunas cosas raras.

Cuando uso ejecutar

nmap --top-ports 10 192.168.1.1

muestra que el puerto 23/TCP está abierto.

Pero cuando ejecuto

nmap --top-ports 10 localhost

muestra que el puerto 23/tcp está cerrado.

¿Cuál de ellos es cierto? Quiero cerrar este puerto en todo mi sistema, ¿cómo puedo hacerlo?

Respuesta aceptada:

Nmap es un gran escáner de puertos, pero a veces quieres algo más autoritario. Puede preguntarle al kernel qué procesos tienen qué puertos abiertos usando netstat utilidad:

[email protected]:~$ sudo netstat -tlnp
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   1004/dnsmasq    
tcp        0      0 0.0.0.0:22      0.0.0.0:*         LISTEN   380/sshd        
tcp        0      0 127.0.0.1:631   0.0.0.0:*         LISTEN   822/cupsd       
tcp6       0      0 :::22           :::*              LISTEN   380/sshd        
tcp6       0      0 ::1:631         :::*              LISTEN   822/cupsd       

Las opciones que he dado son:

  • -t Solo TCP
  • -l Solo puertos de escucha
  • -n No busque nombres de hosts y servicios, solo muestre números
  • -p Mostrar información del proceso (requiere privilegio de root)

En este caso, podemos ver que sshd está escuchando en cualquier interfaz (0.0.0.0 ) puerto 22 y cupsd está escuchando en loopback (127.0.0.1 ) puerto 631. Su salida puede mostrar que telnetd tiene una dirección local de 192.168.1.1:23 , lo que significa que no responderá a las conexiones en el adaptador de bucle invertido (por ejemplo, no puede telnet 127.0.0.1 ).

Hay otras herramientas que mostrarán información similar (por ejemplo, lsof o /proc ), pero netstat es el más ampliamente disponible. Incluso funciona en Windows (netstat -anb ). BSD netstat es un poco diferente:tendrá que usar sockstat(1) para obtener la información del proceso.

Una vez que tenga la identificación del proceso y el nombre del programa, puede encontrar el proceso y eliminarlo si desea cerrar el puerto. Para un control más detallado, puede usar un firewall (iptables en Linux) para limitar el acceso solo a ciertas direcciones. Es posible que deba deshabilitar el inicio de un servicio. Si el PID es "-" en Linux, es probable que sea un proceso del kernel (esto es común con NFS, por ejemplo), así que buena suerte para averiguar de qué se trata.

Nota:dije "autoritario" porque las condiciones de la red y los firewalls no lo obstaculizan. Si confías en tu computadora, eso es genial. Sin embargo, si sospecha que ha sido pirateado, es posible que no pueda confiar en las herramientas de su computadora. Reemplazar las utilidades estándar (y, a veces, incluso las llamadas al sistema) por otras que ocultan ciertos procesos o puertos (también conocidos como rootkits) es una práctica estándar entre los atacantes. Su mejor apuesta en este punto es hacer una copia forense de su disco y restaurar desde la copia de seguridad; luego use la copia para determinar la forma en que entraron y cerrarla.

Relacionado:¿Cómo programar un AVR Raven con Linux o Mac?
Linux
  1. Cómo usar BusyBox en Linux

  2. Cómo instalar Python en Linux

  3. Cómo uso cron en Linux

  4. Cómo instalar Java en Linux

  5. Cómo particionar un disco en Linux

Cómo instalar FFmpeg en Linux

Cómo comprobar (escanear) los puertos abiertos en Linux

Cómo hacer un escaneo de puertos en Linux

Cómo comprobar los puertos abiertos en Linux

Cómo encontrar y cerrar puertos abiertos en Linux

¿Cómo comprobar los puertos abiertos en Linux?