# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Enrutar en Linux (route add/del)


Ayer expliqué cómo visualizar las tablas de rutas en Linux, pero no vimos cómo agregar nuevas rutas, modificarlas o borrarlas. Vamos a ver en una entrada rápida unos ejemplos básicos del comando route que nos enseñarán a modificar la tabla de rutas. Partimos de esta base:

$ route -n
Tabla de rutas IP del núcleo
Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Vamos a añadir una nueva ruta cuyo destino tenga la red 169.255.0.0/16. Todo tráfico contra esa red será redirigido a la interfaz eth0 y usará la puerta de enlace (gateway) 192.168.1.1:

$ sudo route add -net 169.255.0.0/16 gw 192.168.1.1 dev eth0
$ route -n
Tabla de rutas IP del núcleo
Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.255.0.0     192.168.1.1     255.255.0.0     UG    0      0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Para eliminar esta ruta en lugar de route add usamos route del:

$ sudo route del -net 169.255.0.0/16 eth0

También podríamos enrutar tráfico de una LAN sin necesidad de pasar por una gateway:

$ sudo route add -net 169.255.0.0/16 dev eth0

O establecer la gateway (puerta de enlace) por defecto. Será utilizada en caso de no haber otra regla efectiva por delante:

$ sudo route add default gw 192.168.2.1

Como siempre, para más información:

$ man route

Recordad que estos cambios no son persistentes a reinicios, tendréis que añadir los comandos a /etc/rc.local.

Routing Tables: ‘netstat -rn’ y ‘route -n’


Algo importante en los sistemas Linux (o Unix) y todo lo relacionado con networking es conocer el estado y configuración de las tablas de rutas IP (routing tables), que nos indican cómo y a través de donde se envía un paquete en las distintas redes.

Para visualizar la tabla de rutas tenemos dos posibilidades, utilizar el comando netstat -rn o route -n, ambos nos ofrecen la misma salida:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.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.1.1     0.0.0.0         UG        0 0          0 eth0

Las tres primeras columnas nos indican, por un lado las redes de destino (Destination), la puerta de enlace que utilizan (Gateway) y la máscara de red (Genmask). En las Flags vemos “U”, que significa que la interfaz de red está levantada y G que indica que esa ruta utiliza la puerta de enlace. 0.0.0.0 es tratado como un wildcard (también se suele representar con un *) y especifica el destino a cualquier red no especificada.

Explicando la salida del comando route anterior, vemos en primer lugar que todo paquete dirigido a las redes 192.168.1.0/255.255.255.0 y 169.254.0.0/255.255.0.0 serán enviados a través de redes LAN (vemos que no hay flag de gateway) por lo que no harán uso de puerta de enlace. En cambio todo paquete con destino 0.0.0.0, es decir, el resto de redes sí que pasará por nuestra puerta de enlace 192.168.1.1. Todas estas rutas trabajan bajo la interfaz de red eth0, si tuviéramos más interfaces levantadas aparecerían marcadas como ethX en la columna Iface.

Snort: FATAL ERROR: OpenPcap() device eth0 open: bind: Network is down


Es común encontrar este error al tratar de arrancar Snort en una instalación nueva, es debido a que en el fichero de arranque (/etc/init.d/snort) por defecto tiene configurado para esnifar en la interfaz eth0, si utilizamos otra interfaz de red para ello encontraremos el error.

Para solucionarlo, acceded al script de configuración y cambiar el parámetro que indico a continuación especificando la interfaz de red que esnifará:

vi /etc/init.d/snort
----------------------------------------------------------
# Specify your network interface here
INTERFACE=eth0
----------------------------------------------------------

Una vez cambiado reiniciamos snort:

/etc/init.d/snort restart

Configurar tarjetas de Red en FreeBSD con sysinstall


Sysinstall es una utilidad de FreeBSD que podemos ejecutar en modo terminal para realizar diversas configuraciones del sistema post-instalación. Hoy vamos a ver como configurar las tarjetas de red:

En primer lugar ejecutamos sysinstall:

$ sysinstall

Sysinstall

Una vez estemos dentro, accedemos a la sección Configure, y después a Networking, donde accederemos a la configuración de las interfaces de red (Interfaces), y veremos algo similar a lo siguiente:

SysInstall, interfaces de red

Ahora seleccionaremos la interfaz que deseemos configurar. Una vez seleccionada, en primera instancia nos preguntará dos cosas:

1) ¿Queremos activar el soporte IPV6?

 User Confirmation Requested
       Do you want to try IPv6 configuration of the interface?

                              Yes   [ No ]

2) ¿ Queremos activar DHCP ?

               User Confirmation Requested
        Do you want to try DHCP configuration of the interface?

                              Yes   [ No ]

En nuestro caso, no queremos ninguna de las dos cosas, vamos a configurar una tarjeta de red con configuración IPV4 y direccionamiento estático:

Configuracion red FREEBSD

Nos podremos mover entre elementos con la tecla [TAB], paso a describiros cada una de las opciones:

Host: El nombre de la máquina (fully-qualified hostname)
Domain: El nombre del dominio en el que la máquina se encuentra.
IPv4 Gateway: Puerta de enlaceault gateway or default route.
Name server: Servidor de nombres que usará el equipo
IPv4 address: La IP estática de la interfaz de red.
Netmask: La máscada de red.

Una vez configurado todo, simplemente vamos con la tecla [TAB] hasta el Ok y presionamos ENTER:

     User Confirmation Requested
        Would you like to Bring Up the ed0 interface right now?

                             [ Yes ]   No

Nos dice si queremos levantar la interfaz de red, si la levantamos comenzará a responder.