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?