Red Hat Enterprise Linux 3: Manual de seguridad | ||
---|---|---|
Anterior | Capítulo 6. Redes privadas virtuales | Siguiente |
Después de configurar y probar exitosamente el servidor CIPE, puede desarrollar la conexión en la máquina cliente.
Los clientes CIPE deberían poder conectarse y desconectarse de la conexión CIPE de una forma automática. Además, CIPE contiene mecanismos incorporados para personalizar las configuraciones para usos individuales. Por ejemplo, un empleado remoto puede conectarse al dispositivo CIPE en la LAN escribiendo lo siguiente:
/sbin/ifup cipcb0 |
El dispositivo debería mostrarse automáticamente, las reglas del cortafuego y la información del enrutador también deberían configurarse con la conexión. El empleado remoto debería poder terminar la conexión con lo siguiente:
/sbin/ifdown cipcb0 |
La configuración de clientes requiere la creación de scripts localizados que son ejecutados después que el dispositivo es cargado. La configuración del dispositivo mismo puede ser realizado localmente a través de un archivo creado por el usuario llamado /etc/sysconfig/network-scripts/ifcfg-cipcb0. Este archivo contiene parámetros que determinan si la conexión CIPE ocurre en tiempo de arranque, cuál es el nombre del dispositivo CIPE, entre otras cosas. Lo siguiente es el archivo ifcfg-cipcb0 para un cliente remoto conectándose a un servidor CIPE:
DEVICE=cipcb0 ONBOOT=yes BOOTPROTO=none USERCTL=no # This is the device for which we add a host route to our CIPE peer through. # You may hard code this, but if left blank, we will try to guess from # the routing table in the /etc/cipe/ip-up.local file. PEERROUTEDEV= # We need to use internal DNS when connected via cipe. DNS=192.168.1.254 |
El dispositivo CIPE es llamado cipcb0. El dispositivo CIPE es activado en el momento del arranque (configurado a través del campo ONBOOT) y no utilizará un protocolo de arranque (por ejemplo, DHCP) para recibir una dirección IP para el dispositivo. El campo PEERROUTEDEV determina el nombre del dispositivo servidor CIPE que se conecta al cliente. Si no se especifica un dispositivo en este campo, se determinará alguno luego que el dispositivo haya sido cargado.
Si las redes internas están detrás de un cortafuegos, necesita especificar reglas que permitan a la interfaz CIPE en la máquina cliente, enviar y recibir paquetes UDP. Consulte el Capítulo 7 para más información sobre la configuración de un cortafuegos. Para esta configuración de ejemplo, se implementan las reglas iptables.
![]() | Nota |
---|---|
Los clientes se deben configurar de forma tal que los parámetros localizados sean colocados en un archivo creado por el usuario llamado /etc/cipe/ip-up.local. Los parámetros locales deberían ser revertidos cuando la sesión CIPE sea apagada usando /etc/cipe/ip-down.local. |
Las cortafuegos se deberían configurar en las máquinas clientes para aceptar paquetes UDP CIPE encapsulados. Las reglas pueden variar ampliamente, pero básicamente se requiere la aceptación de paquetes UDP para poder establecer la conectividad CIPE. Las siguientes reglas iptables permiten transmisiones CIPE UDP en la máquina remota cliente conectándose a la LAN; las reglas finales incorporan enmascaramiento de IP para permitir al cliente remoto comunicarse a la LAN y a la Internet.
/sbin/modprobe iptables /sbin/service iptables stop /sbin/iptables -P INPUT DROP /sbin/iptables -F INPUT /sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.1 /sbin/iptables -A INPUT -j ACCEPT -i cipcb0 /sbin/iptables -A INPUT -j ACCEPT -i lo /sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE |
Añada reglas a la máquina cliente para acceder a los nodos detrás de la conexión CIPE como que si estos estuviesen en la red local. Esto se puede hacer ejecutando el comando route. Para nuestro ejemplo, la estación de trabajo del cliente necesitará la siguiente ruta de red:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.1.2 |
A continuación se muestra el script final /etc/cipe/ip-up.local para la estación de trabajo cliente:
#!/bin/bash -v if [ -f /etc/sysconfig/network-scripts/ifcfg-$1 ] ; then . /etc/sysconfig/network-scripts/ifcfg-$1 else cat <<EOT | logger Cannot find config file ifcfg-$1. Exiting. EOF exit 1 fi if [ -n ${PEERROUTEDEV} ]; then cat <<EOT | logger Cannot find a default route to send cipe packets through! Punting and hoping for the best. EOT # Use routing table to determine peer gateway export PEERROUTEDEV=`/sbin/route -n | grep ^0.0.0.0 | head -n 1 \ | awk '{ print $NF }'` fi #################################################### # Add The routes for the remote local area network # #################################################### route add -host 10.0.1.2 dev $PEERROUTEDEV route add -net 192.168.1.0 netmask 255.255.255.0 dev $1 #################################################### # IP TABLES Rules to restrict traffic # #################################################### /sbin/modprobe iptables /sbin/service iptables stop /sbin/iptables -P INPUT DROP /sbin/iptables -F INPUT /sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.2 /sbin/iptables -A INPUT -j ACCEPT -i $1 /sbin/iptables -A INPUT -j ACCEPT -i lo /sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE |