Cómo auditar el rendimiento, la seguridad y la solución de problemas de la red en Linux – Parte 12

A sound analysis of a computer network begins by understanding what are the available tools to perform the task, how to pick the right one(s) for each step of the way, and last but not least, where to begin.

Esta es la última parte de la serie LFCE (Linux Foundation Certified Engineer), aquí revisaremos algunas herramientas conocidas para examinar el rendimiento y aumentar la seguridad de una red, y qué hacer cuando las cosas no van como se espera.

Linux Foundation Certified Engineer – Part 12
Presentando el Programa de Certificación de la Fundación Linux

Tenga en cuenta que esta lista no pretende ser exhaustiva, así que si desea agregar otra utilidad útil que podríamos estar pasando por alto, siéntase libre de comentar en esta publicación utilizando el formulario al final.

¿Qué servicios se están ejecutando y por qué?

Una de las primeras cosas que un administrador de sistemas necesita saber sobre cada sistema es qué servicios se están ejecutando y por qué. Con esa información en mano, es una decisión sabia deshabilitar todos aquellos que no son estrictamente necesarios y evitar alojar demasiados servidores en la misma máquina física.

Por ejemplo, debe deshabilitar su servidor FTP si su red no lo requiere (por cierto, hay métodos más seguros para compartir archivos a través de una red). Además, debe evitar tener un servidor web y un servidor de base de datos en el mismo sistema. Si un componente se ve comprometido, el resto corre el riesgo de ser comprometido también.

Investigando Conexiones de Socket con ss

ss se utiliza para mostrar estadísticas de socket y muestra información similar a netstat, aunque puede mostrar más información de TCP y de estado que otras herramientas. Además, está listado en man netstat como reemplazo de netstat, que está obsoleto.

Sin embargo, en este artículo nos centraremos únicamente en la información relacionada con la seguridad de la red.

Ejemplo 1: Mostrando TODOS los puertos TCP (sockets) que están abiertos en nuestro servidor

Todos los servicios que se ejecutan en sus puertos predeterminados (es decir, http en 80, mysql en 3306) se indican por sus nombres respectivos. Otros (ocultos aquí por razones de privacidad) se muestran en su forma numérica.

# ss -t -a
Check All Open TCP Ports

La primera columna muestra el estado TCP, mientras que la segunda y tercera columna muestran la cantidad de datos que actualmente están en cola para recepción y transmisión. La cuarta y quinta columnas muestran los sockets de origen y destino de cada conexión.
Como nota adicional, es posible que desee consultar RFC 793 para refrescar su memoria sobre los posibles estados TCP, ya que también necesita verificar el número y el estado de las conexiones TCP abiertas para estar al tanto de los ataques (D)DoS.

Ejemplo 2: Mostrando TODAS las conexiones TCP activas con sus temporizadores
# ss -t -o
Check all Active Connections

En la salida anterior, puede ver que hay 2 conexiones SSH establecidas. Si observa el valor del segundo campo del temporizador:, notará un valor de 36 minutos en la primera conexión. Ese es el tiempo hasta que se enviará la próxima sonda de mantenimiento de la conexión.

Dado que es una conexión que se mantiene activa, puede asumir con seguridad que es una conexión inactiva y, por lo tanto, puede finalizar el proceso después de averiguar su PID.

Kill Active Process

En cuanto a la segunda conexión, puede ver que actualmente se está utilizando (como se indica en on).

Ejemplo 3: Filtrando conexiones por socket

Suponga que desea filtrar las conexiones TCP por socket. Desde el punto de vista del servidor, es necesario verificar las conexiones donde el puerto de origen es 80.

# ss -tn sport = :80

Lo que resulta en..

Filter Connections by Socket

Protegiéndose contra el escaneo de puertos con NMAP

El escaneo de puertos es una técnica común utilizada por los crackers para identificar hosts activos y puertos abiertos en una red. Una vez que se descubre una vulnerabilidad, se explota para obtener acceso al sistema.

A wise sysadmin needs to check how his or her systems are seen by outsiders, and make sure nothing is left to chance by auditing them frequently. That is called “defensive port scanning”.

Ejemplo 4: Mostrando información sobre puertos abiertos

Puede utilizar el siguiente comando para escanear qué puertos están abiertos en su sistema o en un host remoto:

# nmap -A -sS [IP address or hostname]

El comando anterior escaneará el host para la detección de SO y versión, información de puerto y traceroute (-A). Finalmente, -sS envía un escaneo TCP SYN, evitando que nmap complete el saludo TCP de 3 vías y, por lo tanto, dejando típicamente sin registros en la máquina objetivo.

Antes de continuar con el siguiente ejemplo, tenga en cuenta que el escaneo de puertos no es una actividad ilegal. Lo QUE es ilegal es utilizar los resultados con un propósito malicioso.

Por ejemplo, la salida del comando anterior ejecutado contra el servidor principal de una universidad local devuelve lo siguiente (se muestra solo parte del resultado por brevedad):

Check Open Ports

Como puede ver, descubrimos varias anomalías que deberíamos informar a los administradores del sistema en esta universidad local.

Esta operación específica de escaneo de puertos proporciona toda la información que también se puede obtener mediante otros comandos, como:

Ejemplo 5: Mostrando información sobre un puerto específico en un sistema local o remoto
# nmap -p [port] [hostname or address]
Ejemplo 6: Mostrando la ruta de trazado y descubriendo la versión de servicios y tipo de sistema operativo, nombre de host
# nmap -A [hostname or address]
Ejemplo 7: Escaneando varios puertos o hosts simultáneamente

También puedes escanear varios puertos (rango) o subredes, de la siguiente manera:

# nmap -p 21,22,80 192.168.0.0/24 

Nota: Que el comando anterior escanea los puertos 21, 22 y 80 en todos los hosts de ese segmento de red.

Puedes consultar la página del manual para más detalles sobre cómo realizar otros tipos de escaneo de puertos. Nmap es de hecho una utilidad de mapeo de red muy potente y versátil, y deberías estar muy familiarizado con ella para defender los sistemas de los que eres responsable contra ataques originados después de un escaneo de puertos malicioso por parte de personas externas.

Source:
https://www.tecmint.com/audit-network-performance-security-and-troubleshooting-in-linux/