- Cómo verificar puertos abiertos en Linux de forma remota con Nmap
- Cómo verificar puertos abiertos en Linux localmente
- Eliminando servicios en Debian 10 Buster
- Cómo cerrar puertos abiertos en Linux usando UFW
- Cómo cerrar puertos abiertos en Linux usando iptables
- Artículos relacionados
Cómo verificar puertos abiertos en Linux localmente
El comando netstat está presente en todos los sistemas operativos (sistemas operativos) de las computadoras para monitorear las conexiones de red. El siguiente comando usa netstat para mostrar todos los puertos de escucha usando el protocolo TCP:
netstat -lt
Dónde:
netstat: llama al programa.
-l: enumera los puertos de escucha.
-t: especifica el protocolo TCP.
La salida es amigable para los humanos, bien ordenada en columnas que muestran el protocolo, los paquetes recibidos y enviados, las direcciones IP locales y remotas y el estado del puerto.
Si cambia el protocolo TCP por UDP, el resultado, al menos en Linux, mostrará solo los puertos abiertos sin especificar el estado porque, al contrario que el protocolo TCP, el protocolo UDP no tiene estado.
netstat -lu
Puede evitar especificar protocolos y usar solo la opción -l o -escucha para obtener información sobre todos los puertos que escuchan independientemente del protocolo:
netstat --escuchar
La opción anterior mostrará información para los protocolos de socket TCP, UDP y Unix.
Todos los ejemplos anteriores muestran cómo imprimir información en puertos de escucha sin conexiones establecidas. El siguiente comando muestra cómo mostrar los puertos de escucha y las conexiones establecidas:
netstat -vatn
Dónde:
netstat: llama al programa
-v: verbosidad
-a: muestra conexiones activas.
-t: muestra conexiones tcp
-norte: muestra puertos en valor numérico
Supongamos que identificó un proceso sospechoso en su sistema y desea verificar los puertos asociados a él. Puedes usar el comando lsof utilizado para listar archivos abiertos asociados a procesos.
lsof -i 4 -a -pEn el siguiente ejemplo comprobaré el proceso 19327:
lsof -i 4 -a -p 19327
Dónde:
lsof: llama al programa
-I: enumera los archivos que interactúan con Internet, la opción 4 indica imprimir solo IPv4, la opción 6 está disponible para IPv6.
-a: instruye a la salida para ser AND.
-pag: especifica el número PID del proceso que desea verificar.
Como ve, el proceso está asociado con el puerto smtp de escucha.
Cómo verificar puertos abiertos en Linux de forma remota
Si desea detectar puertos en un sistema remoto, la herramienta más utilizada es Nmap (Network Mapper). El siguiente ejemplo muestra un escaneo de un solo puerto contra Linuxhint.com:
La salida está ordenada en 3 columnas que muestran el puerto, el estado del puerto y el servicio que escucha detrás del puerto.
No mostrado: 988 puertos cerradosSERVICIO DE ESTADO PORTUARIO
22 / tcp abierto ssh
25 / tcp smtp abierto
80 / tcp abre http
161 / tcp snmp filtrado
443 / tcp abierto https
1666 / tcp filtrado netview-aix-6
1723 / tcp pptp filtrado
6666 / tcp filtrado irc
6667 / tcp filtrado irc
6668 / tcp filtrado irc
6669 / tcp filtrado irc
Jetdirect filtrado 9100 / tcp
De forma predeterminada, nmap escanea solo los 1000 puertos más comunes. Si desea que nmap escanee todos los puertos, ejecute:
nmap -p- linuxhint.comEn el Artículos relacionados En la sección de este tutorial, puede encontrar tutoriales adicionales sobre Nmap para escanear puertos y objetivos con muchas opciones adicionales.
Eliminando servicios en Debian 10 buster
Además de las reglas de firewall para mantener sus puertos bloqueados, se recomienda eliminar los servicios innecesarios. En Debian 10 Buster, esto se puede lograr con apt.
El siguiente ejemplo muestra cómo eliminar el servicio Apache 2 usando apt:
Si lo solicita presione Y para terminar la remoción.
Cómo cerrar puertos abiertos en Linux usando UFW
Si encuentra puertos abiertos, no necesita abrirlos, la solución más fácil es cerrarlos usando UFW (firewall sin complicaciones)
Hay dos formas de bloquear un puerto, usando la opción negar y con la opcion rechazar, la diferencia es que la instrucción de rechazo informará al segundo lado que la conexión fue rechazada.
Para bloquear el puerto 22 usando la regla negar solo corre:
Para bloquear el puerto 22 usando la regla rechazar solo corre:
ufw rechazar 22
Sobre el Artículos relacionados sección al final de este tutorial, puede encontrar un buen tutorial sobre cortafuegos sin complicaciones.
Cómo cerrar puertos abiertos en Linux usando iptables
Si bien UFW es la forma más fácil de administrar puertos, es una interfaz para Iptables.
El siguiente ejemplo muestra cómo rechazar conexiones al puerto 22 usando iptables:
La regla anterior indica que se rechacen todas las conexiones entrantes (INPUT) de tcp al puerto de destino (dport) 22. Al ser rechazada, se informará a la fuente que la conexión fue rechazada.
La siguiente regla simplemente descarta todos los paquetes sin informar a la fuente que la conexión fue rechazada:
iptables -A ENTRADA -p tcp --dport 22 -j DROP
Espero que este breve tutorial te haya resultado útil. Siga siguiendo LinuxHint para obtener actualizaciones y consejos adicionales sobre Linux y redes.
Artículos relacionados:
- Trabajar con UFW (cortafuegos sin complicaciones)
- Tutorial de conceptos básicos de NMAP
- Cómo enumerar puertos abiertos en Firewalld
- Escaneo de red Nmap
- Instalación y uso de Zenmap (Nmap GUI) en Ubuntu y Debian
- Nmap: escanear rangos de IP
- Usando scripts de nmap: captura de banner de Nmap
- 30 ejemplos de Nmap