Comandos Linux para la Gestión de Redes
Linux nos ofrece casi un sinfín de comandos para la gestión de una Red de Área Local. En esta plataforma tenemos herramientas para optimizar la verticalidad de los nodos, consolidar la seguridad, monitorizar recursos, y para resolver problemas. Además, el licenciamiento GPL que lo cobija hace que este sistema operativo sea ficha clave en la gestión. Por eso en esta ocasión hablamos de algunos comandos Linux para la gestión de redes de datos.
Comandos Linux para la gestión de redes
nmcli device show: Muestra la configuración de red de las interfaces de red. Su salida es algo parecida al ‘ipconfig‘ de Windows. Viene por defecto en el sistema. Más sobre nmcli:
ifconfig: El comando de antaño en Linux. Muestra la configuración de la tarjeta de red, aunque su salida no muestra el default gateway. Este comando ya no viene instalado por defecto en Ubuntu, por lo que tendremos que instalarlo con ‘apt install net-tools‘.
Para verificar si Linux reconoce las interfaces de red; si está down, entonces levantarla y decirle que solicite una dirección IP al servidor DHCP:
ip link
sudo ip link set eth0 up
sudo dhclient eth0
Comandos para consultar nuestra IP pública
wget -qO- ifconfig.co/ip
wget -qO- http://ipecho.net/plain
curl ifconfig.me
Comando para definir la IP del servidor DNS en una interfaz
sudo resolvectl dns interfaz_de_red direccion_IP_del_servidor_DNS
route: Comando para configurar rutas estáticas. Con ‘route -n‘ podemos visualizar el default gateway del sistema.
ping: Con el comando ‘ping‘ buscamos verificar conectividad entre dos nodos, es decir, si son alcanzables. El ‘ping‘ es semejante a una señal de ecolocalización. En realidad este comando envía una serie de paquetes ICMP a un dirección IP destino, que al ser contestada por éste, regresa con información medible, tal como el tiempo de vida (TTL) e información de latencia.
mtr: Es una herramienta para el diagnóstico de conectividad de la red. El comando mtr es la integración del comando ping y traceroute. Su funcionamiento es así: mtr ip
nmblookup: Cliente NetBIOS sobre TCP/IP para la búsqueda de nombres de host desde su dirección IP. Por ejemplo:
nmblookup -A 192.168.0.41
arping: Como el ping pero las respuestas eco incluyen la dirección MAC de quien responde.
fping: Es como un ping mejorado. Con esta aplicación podemos escanear todo un segmento de red y obtener las direcciones IP que ese encuentran activas. Ejemplo:
fping -s -a -r 0 -g 192.168.0.0/24
El comando netdiscover también hace algo similar:
sudo netdiscover -r 192.168.0.0/24
arp: Nos permite consultar la tabla ARP para la busqueda de relaciones MAC – IP. También podemos crear, editar o eliminar relaciones MAC – IP. Por ejemplo, una vez escaneada todo el segmento de red con el comando fping, podemos consultar sus MAC asociadas, así:
arp -n | grep 192.168.0.41
Un valor añadido de ‘fping‘ es que su informe también incluye la detección de direcciones IP duplicadas:
Para visualizar la tabla ARP del sistema basta con ejecutar ‘arp -nv‘.
arp-scan: Es otra herramienta para escanear la red. Con ella obtenemos una tabla que relaciona la dirección IP con la dirección MAC de los hosts escaneados. Es muy útil porque el informe incluye posibles direcciones IP duplicadas que podamos tener en la red. Si llevamos un control o un registro de dichas direcciones MAC, podremos encontrar la causa de alguna duplicidad de IP. Para instalarlo ‘apt install scan-arp‘.
sudo arp-scan 192.168.0.0/24
nbtscan: Nos permite hacer una consulta de los nombres NetBios de todos los equipos de un segmento de red. Podemos instalarlo con ‘sudo apt install nbtscan‘. Ejemplo:
sudo nbtscan -e 192.168.0.0/24
sudo nbtscan -r 192.168.0.0/24
nping: Hace lo mismo que el comando ‘ping’, pero a nivel de TCP/UPD. Es decir, podemos validar la conexión y su rendimiento (latencia) de un servicio usando su puerto TCP/UDP. Por ejemplo, hacer ping a la dirección 66.200.200.20 con puerto 8181:
sudo nping --tcp -p 8181 66.200.200.20
nethoghs: Nos permite visualizar el consumo de la banda por procesos internos de la máquina.
nmap: Esta es una potente herramienta para el escaneo de dispositivos de red. Sirve como apoyo en el diagnóstico de problemas de servicios de red. De un host o servidor nos dice los puertos que tiene abiertos, el Sistema Operativo que lo trabaja, incluso NMAP tiene un amplio repertorio de scripts para diagnosticar vulnerabilidades en la red. Con el siguiente comando podemos consultar el nombre completo de un servidor, incluyendo su dominio (el FQDN), la versión de Windows que tiene, la versión de casi cualquier servicio que tenga funcionando, así no esté en la misma red. Es decir, este comando es más poderoso que el nmblook o nbtscan.
sudo nmap -v -A IP_DEL_SERVIDOR
Con el siguiente comando podemos hacer una lista de las impresoras funcionando en nuestra red
sudo nmap -p 9100,515,631 -sV --open 192.168.0.0/24 | grep -i "Nmap" | awk '{print $5}'
Con este otro comando sabremos si un servidor web cuenta con un firewall de aplicación, WAF.
nmap -p 80 --script http-waf-detect.nse IP_DEL_SERVIDOR_WEB
En el siguiente artículo podemos ver cómo realizar con NMAP un completo escaneo de vulnerabilidades:
Pero qué sucede si la máquina que donde estamos realizando el diagnóstico, no tiene instalado nmap (y tampoco nos dan el permiso de instalarlo). En ese caso tenemos un comando que nos sirve para probar puertos de manera básica. Ese comando es nc, y podemos usarlo así:
nc -zvw10 192.168.28.19 22
z: zero-I/O modo de escaneo
v: que muestre la salida en pantalla
w10: tiempo de espera de 10 segundos
22 es el puerto destino
Detectar ataques DoS
netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r
Al observar los resultados, veremos conexiones enumeradas que van desde 1 hasta aproximadamente 50 conexiones por IP. Esa cantidad es común para el tráfico normal. Sin embargo, si ves algunas direcciones IP con más de 100 conexiones, esto es algo que se deberá analizar.
Más sobre Seguridad Informática, aquí
Scripts Bash para la gestión de redes
Con algunos de los anteriores comandos podríamos escribir algunos bash script para optimizar nuestra gestión.
Vamos a suponer que tenemos un servidor Linux funcionando como Proxy, DHCP y Firewall (es decir, en este punto confluyen todos los paquetes de la red). También vamos a suponer una serie de problemas relacionados con ese servidor, y vamos a contra-atacar desarrollando algunos scripts.
Problema 1: Tenemos algunas personas en la red que tienen como práctica configurar en sus teléfonos una dirección IP (que puede estar en uso por otro host), Con eso lo que intentan es obtener de algún modo acceso privilegiado a Internet. Grave! si esa IP coincide con una impresora o un servidor, nos lo deja por fuera.
La mejor solución para este caso es registrar la direcciones MAC de nuestros hosts en los switches de la red, pero a veces eso se vuelve improductivo si en tu empresa es común los cambios de puestos de trabajo, o es frecuente la itinerancia de los usuarios, todavía menos si no tienes el suficiente personal a cargo para apresurar esos cambios en los switches.
Sin embargo, podemos desincentivar esa práctica controlando las conexiones a Internet, manteniendo un registro manual de las direcciones MAC de los hosts, en un único punto central: en el servidor funcionando como Firewall y DHCP server (lo que en otros sistemas tipo Windows Server, llaman Reservas). Así no daremos direcciones IP automáticamente a cualquiera.
Puedes ver cómo Optimizar la Red de un Servidor Linux
Y como medida adicional, podemos armar una tabla ARP estática en la que registremos las direcciones MAC de nuestros hosts. De esta manera, el servidor solo responderá a peticiones DHCP, HTTP y a cualquier otra, de clientes con las direcciones MAC registradas en nuestra tabla ARP. Las que no estén registrados nunca tendrán respuesta (claro que podríamos configurar una contraseña para darle acceso a Internet a usuarios autorizados, o tener una especie de portal cautivo, pero eso también se presta para que la contraseña sea compartida).
Solución
Podemos escribir el siguiente bash script para armar una tabla ARP estática, basado en un registro manual de direcciones MAC que tenemos de nuestros hosts. Dicho registro está guardado en un archivo llamado ‘mac_address‘.
#!/bin/bash
ip=0
mac=0
#LIMPIA LA TABLA ARP
for ip in $(awk '{print $1}' mac_address)
do
arp -d $ip
done
#CONSTRUYE LA TABLA ARP
for ip in $(awk '{print $1}' mac_address)
do
mac=`cat mac_address | grep -w $ip | awk '{print $2}'`
if [ $mac != "#N/D" ]; then
echo $ip
echo $mac
arp -s $ip $mac
fi
done
exit 0
El formato de los datos en el archivo mac_addres es así:
192.168.0.1 08:00:27:c8:18:4e
Problema 2: La duplicidad de las direcciones IP.
Podemos escribir un bash script que muestre las direcciones IP duplicadas en la red. Ya sabemos que ‘arp-scan‘ lo hace, pero con este script lo pulimos para que muestre solamente las direcciones MAC causantes de la duplicidad.
Solución
Este es el script:
#!/bin/bash
for ip in $(arp-scan 192.168.0.0/24 | grep DUP | awk '{print $1}')
do
var=$(($var + 1))
#GUARDAMOS LA LISTA DE DIRECCIONES IP EN UN ARRAY
direcciones[var]=$ip
done
date +%Y-%m-%d__%T >> ips_duplicadas.txt
#ITERAMOS SOBRE EL ARRAY
for ip2 in "${direcciones[@]}"
do
arp-scan 192.168.0.0/24 | grep $ip2 >> ips_duplicadas.txt
done
#MOSTRAMOS EN PANTALLA LAS ULTIMAS 10 LINEAS
tail -10 ips_duplicadas.txt
exit
Ambos scripts van en el mismo servidor Linux.
Perfecto! es agradable ver como unos cuantos comandos se ensamblan en un potente bash script, y así enrobustecemos el control (Me recuerda al mundo de los Transformers, cuando los Constructicons se ensamblaban en el poderoso Devastator).
A propósito, puedes ver en la siguiente entrada cómo implementar un bash script para bloquear escaneadores de puertos (y lo podemos implementar en el mismo servidor Linux):
Adicional a esto, puedes ver aquí cómo expulsar intrusos por SSH.
También puedes ver cómo monitorear la red en Linux:
También podemos ver cómo repartir el tráfico de la red con Linux, en el siguiente artículo.
Dentro de los comandos para el diagnostico de hardware, también tenemos algunos comandos para hardware de red en Linux.
Valora este artículo






Pingback: 🥇 Herramientas de Diagnostico de Hardware en Linux - Ubuntu
Pingback: 🥇 Comandos para Gestionar Procesos en Linux - Control Procesos
Pingback: 🥇 Comandos avanzados de Linux para la gestión de procesos