Linux

LinuxDeteccion anti-intrusion, análisis de red

El diagnóstico de la red es algo que la mayoría de los administradores temen. Con un poco de suerte, se puede encontrar el fallo en pocas horas, pero lo más normal es que cueste varios días hurgar a través de los registros y detectar la fuente del error. Hay que diferenciar, entre una red domestica y una red empresarial, mucho mas compleja, en este articulo, vamos a analizar una red domestica y como siempre si queréis una versión completa en el pdf, tenéis mas detalles.

Mantener un control de nuestra red es vital para evitar que ningún programa haga un uso excesivo de ella y nos ralentice el funcionamiento general del sistema. Existen varias herramientas de monitorización de la red para los diferentes sistemas operativos actuales. En este artículo os vamos a hablar de 10 herramientas de monitorización de red para Linux que se ejecutarán desde un terminal, ideales para los usuarios que no utilicen interfaz gráfica o para todos aquellos que quieran mantener un control del uso de red de un servidor a través de ssh.

Iftop

Los usuarios de Linux están familiarizados, generalmente, con Top. Esta herramienta es un monitor del sistema que nos permite conocer en tiempo real todos los procesos que se están ejecutando en nuestro sistema y pudiendo administrarlos fácilmente. Iftop es una aplicación similar a Top pero especializada en la monitorización de la red, pudiendo conocer así multitud de detalles respecto a la red y todos los procesos que están haciendo uso de ella.

$ sudo iftop

Vnstat

Vnstat es un monitor de red que viene incluido, por defecto, en la mayoría de las distribuciones de Linux. Nos permite obtener un control en tiempo real sobre el tráfico enviado y recibido en un período de tiempo, elegido por el usuario.

Dstat

Un monitor algo menos conocido que los anteriores pero que también suele venir por defecto en muchas distribuciones

route:


El comando route muestra la tabla de enrutamiento que reside en el kernel y también se usa para modificarla. La tabla que especifica cómo se enrutan los paquetes a un host se llama tabla de enrutamiento.

SINTAXIS:


La sintaxis es
route [opciones]

OPCIONES:

-n

Muestra la tabla de enrutamiento en formato numérico [dirección IP]

-e

Muestra la tabla de enrutamiento en formato hostname

add

Añade una nueva ruta a la tabla de enrutamiento

del

Elimina una ruta de la tabla de enrutamiento


Opciones usadas con add y del:

-net

Indica que el objetivo es una red

-host

Indica que el objetivo es un host

gw

Especifica el puerta de enlace del host o red objetivo

netmask

Usado para especificar la máscara de subred del host o red de destino

dev

Especifica el dispositivo o interfaz donde se enviarán los paquetes

reject

Rechaza los paquetes enviados a una ruta o host particular

EJEMPLO:

    Para mostrar la tabla de enrutamiento:

route -n


El comando anterior mostrará:

Destination

Gateway

Genmask

Flags

Metric

Ref

Use

Iface

192.168.0.0

0.0.0.0

255.255.255.0

U

0

0

0

eth0

169.254.0.0

0.0.0.0

255.255.0.0

U

0

0

0

eth0

0.0.0.0

192.168.0.1

0.0.0.0

UG

0

0

0

eth0

En la tabla anterior:

Destination

-Indica la dirección IP de la red o host de destino

Gateway

-Indica el puerta de enlace desde el cual se alcanza el host o red de destino

Genmask

-Indica el destino de la máscara de subred

Flags

-Indica el estado actual de ruta

    U - La ruta está activa

    H - El objetivo es un host

    G - Utilizar puerta de enlace

Iface

-Indica la interfaz

    Para añadir ruta estática a una red en la tabla de enrutamiento:

    route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

En el comando anterior:

add

-Indica que la ruta se añade a la tabla de enrutamiento.

-net

-Indica que el destino es una red

192.168.0.1

-Indica la dirección IP de la red de destino

netmask

-Indica la máscara de subred de la red de destino.

gw 192.168.1.1

-Indica el puerta de enlace de la red de destino.

dev eth0

-Indica que los paquetes se enrutan a través de la interfaz eth0.

    Para eliminar una ruta de la tabla de enrutamiento:

    route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

El comando anterior eliminará la ruta a 192.168.1.0 de la tabla de enrutamiento.

iostat Monitoriza la carga del disco duro.iostat es una de esas utilidades de GNU/Linux que todo administrador debería de conocer y comprender perfectamente. iostat permite monitorizar los parámetros de entrada/salida de los diferentes dispositivos del sistema, para observar los diferentes ratios de transferencia.

ifconfig

ifconfig («configuración de interfaz») es un programa disponible en varias versiones del sistema operativo UNIX, que permite configurar o desplegar numerosos parámetros de las interfaces de red residentes en el núcleo, como la dirección IP (dinámica o estática), o la máscara de red.

Configura, muestra y activa/desactiva interfaz de red.

Su sintaxis es de la forma:


ifconfig interfaz [dirección [parámetros] ]

Algunos de sus parámetros son:

up marca la interfaz como disponible para que sea usada por la capa IP. También permite reactivar una interfaz que se ha desactivado temporalmente mediante la opción down

down marca la interfaz como inaccesible a la capa IP.

promisc pone la interfaz en modo promiscuo.

–promisc desactiva el modo promiscuo.

Sin parámetros muestra el estado de todas las interfaz.

# ifconfig eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:2231 errors:0 dropped:0 overruns:0 frame:0 TX packets:2231 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6277556 (5.9 MiB) TX bytes:6277556 (5.9 MiB) wlan0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:192.168.1.8 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::213:2ff:feb4:a377/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:51303 errors:0 dropped:0 overruns:0 frame:0 TX packets:37402 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4745828 (4.5 MiB) TX bytes:27214570 (25.9 MiB)

wlan0 de esta forma le especifico de que interfaz quiero información, en este caso de la wlan0 (wifi).

iwconfig

Utilizado para conectar a redes wifi en modo terminal, sin parámetros informa sobre la configuración de red inalámbrica (nombre de red, canal, nivel de señal, velocidad, potencia, encriptación etc.). Si es FF:FF:FF:FF:FF:FF es que no esta asociado a ninguno.

ifdown

Bajo una interfaz de red (también puedo usar ifconfig wlan0 down), para levantarla uso ifup o el comando ifconfig wlan0 up

Si usamos nm-applet no hará caso a los comandos, ifdown, ifup ni a ejecutar /etc/init.d/networking restart

/etc/init.d/networking start ——> Inicia los servicios de red.
/etc/init.d/networking restart ——> Reinicia los servicios de red.
/etc/init.d/networking stop ——> Para los servicios de red.

ifconfig [interfaz opciones IP] ——> Información y configuración de interfaces de red.
ifconfig ————————————> Muestra el estado de los interfaces activos.
ifconfig -a —————————> Muestra el estado de todos los interfaces.
ifconfig ppp0 ————————> Muestra el estado de ppp0
ifconfig eth0 up —————> Activa eth0.
ifconfig eth0 down ———> Cierra eth0.
ifconfig eth1 address 156.35… —> Asigna una dirección al interfaz especificado.

iwconfig ——————————————–> Similar a ifconfig pero sólo para interfaces wireless
ifup interface: ——————-> Habilita la interface especificada,ejemplos: ifup eth0 ;ifup ppp0
ifdown interface: —————–> Deshabilita la interface especificada,ejemplos: ifdown eth0 ;ifdown ppp0

dhclient eth0/eth1 —————-> Inicia conexión dhcp mediante el cliente dhcp-client.
pump -i eth0/eth1 —————–> Inicia conexión dhcp mediante el cliente pump.
pppoeconf ————————-> Programa para configurar conexiones pppoe.
pppconfig ————————-> Programa en modo texto para configurar una conexión ppp.
pon ——————————-> Establece la conexión ppp a internet.
plog ——————————> Monitoriza la conexión ppp.
poff ——————————> Finaliza la conexión ppp a internet.

finger usuario ——————–> Informa sobre un usuario conectado al sistema.
finger @servidor ——————> Informa sobre todos los usuarios conectados a un servidor (nombre o IP)
finger usuario@servidor ———–> Informa sobre un usuario conectado a un servidor

ping google.com ——————-> Verifica la conexión,en este caso con www.google.com (Ctrl+Z pone fin)
traceroute microsoft.es ———–> Muestra la ruta que los paquetes de datos han seguida hasta la máquina de destino.
mtr rediris.es —————————–> Combinación de ping y traceroute.
whois esdebian.org —————-> Información sobre éste,nuestro dominio.
host -v -a telefonica.com ———> Determina la ip de un nombre o el nombre de una ip.(host -v -a 194.224.55.221)
iptraf —————————-> Monitoriza tráfico de redes(ncurses)
tethereal ————————-> Versión para consola de ethereal,un analizador del tráfico de red (sniffer).
ettercap ————————–> Sniffer/interceptor/logger para redes LAN con switchs basado en ncurses.
nmap ——————————> Escaner de puertos.
fail2ban ————————–> Escanea logs como /var/log/auth.log y banea las IP con demasiados errores de conexión.
snort ————————————–> Sniffer de paquetes y un detector de intrusiones en una red (NIDS).
aide —————————————> Detector de intrusiones en un único Servidor, PC o host.(HIDS).
portsentry ————————> IDS que detecta escaneos de puertos y reacciona a un ataque.
chkrootkit ————————> Detector de rootkit.
netstat -napt ———————> Saber qué puertos tiene abiertos nuestro sistema

| n —————————-> No resuelve las direcciones a sus nombres DNS. Esto hace más rápida la ejecución.
| a —————————-> Muestra todos las conexiones,incluídas las que están escuchando.
| p —————————-> Muestra el número y nombre del proceso,dueño de dicha conexión.
| t —————————-> sólo muestra conexiones tcp

netstat

Muestra conexiones de red, tablas de ruteo, estadísticas de interfaces, etc.

netstat --inet muestra solo las conexiones activas TCP/IP.

netstat -p trata de identificar el proceso que esta manejando esta conexión

netstat -l lista los puertos que están abiertos (conexiones establecidas).

netstat -atpn lista los puestos pero de una forma más resumida y mejor que ejecutando netstat -l es similar a ejecutar el comando ss -ant

netstat -r muestra las rutas (similar a ejecutar route -r)

netstat -lnp64 forma abreviada de salida

Ejemplo de la salida del comando netstat –inet

# netstat --inet Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 304 192.168.1.8:ssh 192.168.