Cómo verificar los puertos abiertos en Linux


Para solucionar problemas del servidor y evitar problemas de seguridad, uno necesita encontrar puertos TCP y UDP abiertos. En este tutorial, aprenderá los diferentes comandos de Linux para verificar los puertos abiertos en Linux para auditar y asegurar el servidor.


¿Qué demonios son los puertos TCP y UDP?

Un puerto no es más que un número de 16 bits entre 0 y 65535. Por ejemplo, el número de puerto TCP 22 puede reenviarse al servidor OpenSSH. Por lo tanto, el número de puerto 22 es una forma de identificar el proceso sshd (servidor OpenSSH).

Números de puerto


  • Los puertos bien conocidos son los de 0 a 1023. 
  • Los puertos registrados son los de 1024 a 49151. 
  • Los puertos dinámicos y privados son aquellos desde 49152 hasta 65535.


Un puerto registrado es un puerto de red asignado por la Autoridad de Números Asignados de Internet (IANA) y almacenado en el archivo / etc / services. Use el comando cat o el comando grep / egrep para ver los números de puerto y las asignaciones de servicio:

cat /etc/services
grep -w '80/tcp' /etc/services
grep -w '443/tcp' /etc/services
egrep -w '22/(tcp|udp)' /etc/services

Verifique los puertos abiertos en Linux

El procedimiento para monitorear y mostrar puertos abiertos en Linux es el siguiente:


  • Abra una aplicación de terminal de Linux 
  • Use el comando ss para mostrar todos los puertos TCP y UDP abiertos en Linux. 
  • Otra opción es usar el comando netstat para enumerar todos los puertos en Linux. 
  • Además de ss / netstat, se puede usar el comando lsof para listar archivos abiertos y puertos en un sistema basado en Linux. 
  • Finalmente, también se puede usar el comando nmap para verificar los puertos TCP y UDP.

Veamos todos los comandos y ejemplos en detalles.

Usando netstat para listar puertos abiertos, escriba el siguiente comando netstat:

sudo netstat -tulpn | grep LISTEN

Por ejemplo, el puerto TCP 631 abierto por el proceso cupsd y cupsd solo aparece en la dirección de loopback (127.0.0.1). Del mismo modo, el puerto TCP 22 abierto por el proceso sshd y la lista sshd en todas las direcciones IP para conexiones ssh:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name 
tcp   0      0      127.0.0.1:631           0.0.0.0:*               LISTEN      0          43385      1821/cupsd  
tcp   0      0      0.0.0.0:22              0.0.0.0:*               LISTEN      0          44064      1823/sshd           

Dónde,

-t: todos los puertos TCP
-u: todos los puertos UDP
-l: muestra los sockets del servidor de escucha
-p: Muestra el PID y el nombre del programa al que pertenece cada socket
-n: no resuelve los nombres
| grep LISTEN: solo muestra los puertos abiertos aplicando el filtro de comando grep.

Usa ss para enumerar puertos abiertos

El comando ss se utiliza para volcar estadísticas de socket. Permite mostrar información similar a netstat. Puede mostrar más TCP e información de estado que otras herramientas. 

La sintaxis es:

sudo ss -tulpn

comando nmap

Además, a los comandos anteriores se puede usar el comando nmap, que es una herramienta de código abierto para la exploración de redes y la auditoría de seguridad. Vamos a usar nmap para encontrar y listar puertos abiertos en Linux:

$ sudo nmap -sT -O localhost
$ sudo nmap -sU -O 192.168.2.254 ##[ list open UDP ports ]##
$ sudo nmap -sT -O 127.0.0.1 ##[ list open TCP ports ]##
$ sudo nmap -sTU -O 192.168.2.24

Conclusión

En conclusión, descubrir puertos abiertos es una de las tareas más fundamentales de un administrador de sistemas Linux por razones de seguridad. Por lo tanto, cierre todos los puertos no deseados y configure el firewall, como UFW y FirewallD, para abrir o bloquear puertos según sus requisitos. Después de leer este tutorial, debe tener una buena comprensión de cómo verificar los puertos abiertos en Linux. Consulte la lista oficial de la IANA de TCP, UDP y otros puertos.





Mover archivos que comienza con guión


En los sistemas operativos Unix o Linux, ¿cómo muevo los archivos que comienzan con un guion?, por ejemplo, /home/you/--filename.txt o /home/you/-filename.txt  y entonces ¿Cómo copio un archivo cuyo nombre comienza con guion?

Muchos meta-caracteres, como punto y coma, espacios, barras invertidas, signos de dólar, signos de interrogación y asteriscos son caracteres que los sistemas operativos Linux y Unix los interpretan como comandos de shell. Por ejemplo, - o - (guion o guion) interpretado como una opción pasada al comando. Pruebe las siguientes sugerencias para mover (mv) o copiar (cp) estos archivos.

Mover archivo comenzando con un guion

La sintaxis es la siguiente:
cp -- source dest
cp [option] -- source dest
Usamos " -- " para hacer que el comando de Linux y Unix deje de analizar las opciones de línea de comandos del shell. Ahora, veamos algunos ejemplos.

Crear un archivo de prueba

Escriba el siguiente comando:
cd /tmp/
> '-foo.txt'
> '--bar.txt'
Lista de archivos que comienzan con un guion
Intenta enumerarlos, escribe:
ls -l *.txt
Obtendrá un error de la siguiente manera:
ls: opción no reconocida '--bar.txt'
Pruebe  `ls --help' para obtener más información.
Para delimitar -- el uso de la lista de opciones, es decir, escriba el siguiente comando ls:
ls -l -- *.txt

Los comandos cp y mv

Cuando un archivo cuyo nombre comience con - o -- , copie o mueva archivos usando la siguiente sintaxis:
cp -- '--bar.txt' /path/to/dest
cp -- '-test.doc' /home/vivek/backups/test.doc
O
cp -v -- '--bar.txt' /path/to/dest
Para mover archivos:
mv -- '--bar.txt' /path/to/dest
O
mv -v -- '--bar.txt' /path/to/dest

Unix y Linux copian el archivo comenzando con un guion

Las opciones - o -- consideradas como parte de la línea de comando. Por lo tanto, no puede copiar, listar, eliminar o mover ningún archivo que comience con esos caracteres. En resumen, la sintaxis es la siguiente:
cp options -- '--filename' /dest
mv options -- '--filename' /dest
El -- delimitar la lista de opciones. Los argumentos posteriores, si los hay, se tratan como operandos incluso si comienzan con - o —. Esto se aplica a todos los comandos de Linux / Unix / macOS / * BSD tales como rm, cp, mv, ls, ln, etc.
command -- 'file'
command [options] -- 'file'
rm -- '--filename'
rm -fr -- '-dirname'
rmdir -- '--dirname'
Cómo usar el comando de búsqueda para el mismo propósito
La sintaxis es:
find /dir/to/search -maxdepth 1 -name '--filename' -delete
Consejo: Manejar un nombre de archivo comenzando con un guion ( - )
Puede "ocultar" el guion del comando iniciando el nombre de archivo con ./ (barra de puntos). Por ejemplo, intente eliminar un archivo llamado " -filename.txt " usando el comando rm:
> '-filename'
rm -filename # will get an error #
rm ./-filename

Conclusión

Esta página explica cómo manejar un nombre de archivo de Linux o Unix comenzando con un guion ( - ). El truco es comenzar el nombre de archivo con ./ o pasar el -- antes del nombre de archivo.



Cómo verificar los puertos abiertos en Linux

Para solucionar problemas del servidor y evitar problemas de seguridad, uno necesita encontrar puertos TCP y UDP abiertos. En este tut...

Infolinks