viernes, 11 de mayo de 2012

Servidor a Lan y virtuales con Zeroshell

Vamos a configurar un servidor que tendrá el siguiente esquema:

Vamos a ir paso a paso, pero lo que primeramente configuraremos la conexión entre la salida a internet (por WIFI) y el virtual de zeroshell. En el virtual de Zeroshell tenemos que tener 3 tarjetas de red virtuales: ETH00, ETH01 y ETH02.
Configuramos la ETH00 de Zeroshell así:


...y la puerta de enlace (gateway) la 192.168.1.254, que es la dirección de nuestro proveedor de internet.

Ahora tenemos que crear un puente (bridge) entre la WIFI física y la interface ETH00 del virtual de Zeroshell, para que le llegue internet (en "edit/virtual network editor" del VMWare):



Si hacemos ping 192.168.1.254 desde el Shell Prompt de Zeroshell, deberíamos tener, con lo que ya tenemos acceso a la red.

Ahora tenemos que configurar la conexión entre la interface ETH02 de Zeroshell y la ETH00 del Debian, para ello nos vamos de nuevo a "edit/virtual network editor" del VMWare y creamos una nueva red (si no está ya creada), en mi caso crearé la VMnet8 (NAT). Y la seleccionamos en la tercera tarjeta virtual de Zeroshell y en la primera de Debian.


Si pulsamos en "NAT Settings" vemos que la puerta de enlace de dicha red es 192.168.197.2...


...con lo que esta será la dirección IP que le tendremos que poner a la ETH02 de Zeroshell...


...y será la puerta de enlace de la ETH00 de debian. Así pues, en debian, nos vamos a la terminal y en "nano /etc/network/interfaces" ponemos lo siguiente:
iface eth0 inet static
        address 192.168.197.100
        netmask 255.255.255.0
        gateway 192.168.197.2

Con esto le estamos dando una IP a la ETH00 de debian y la conectamos con la puerta de enlace del Zeroshell, que es 192.168.197.2. Con esto deberíamos tener ping entre ambos virtuales, así como internet.

Ya tenemos conectados la WIFI con Zeroshell y éste con Debian. Ahora trataremos de conectar Debian con nuestra virtual de Windows XP, para lo cual habrá que crear otra red virtual en "edit/virtual network editor"; yo creo VMnet4 (Custom) y la selecciono para la segunda tarjeta de debian y para la única que tendrá windows XP virtual.


Vemos que la dirección de subred es 192.168.222.0, con lo que en usaremos dicha dirección para configurar la ETH01 de debian...
auto eth1
iface eth1 inet static
        address 192.168.222.101
        netmask 255.255.255.0

...y para la ETH00 de windows XP:


Vemos que la puerta de enlace se corresponde con la IP de debian, con lo que, si hacemos ping el resultado será positivo, aunque no tendremos internet. Para que windows lo tenga habrá que trabajar con las IPTABLES de debian, y concretamente con la MASQUERADE = Enmascarar. Significa que el router (en este caso nuestro ordenador hace de router con Iptables) reemplaza la información que viene de un paquete, o sea, le pone su propia IP y número de puerto y lo envía a su destino. Los paquetes de regreso llegan al router y este revisa a que ordenador van dirigidos (de los que estén especificados en el mismo router), les quita el enmascaramiento y los envía al host que envió la petición origen.

Por tanto, en la configuración de las IPTABLES de debian, lo hacemos de la siguiente manera:
## SCRIPT de IPTABLES - ejemplo del manual de iptables
## Ejemplo de script para proteger la propia máquina
echo -n Aplicando Reglas de Firewall...
## FLUSH  de reglas
iptables  -F
iptables  -X
iptables  -t nat -F

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.222.0/24 -j MASQUERADE
echo " OK . Verifique que lo que se aplica con: iptables -L -n"

# Fin del script

Se puede observar que lo único destacable es la línea de MASQUERADE:
-t = Especifica la tabla de reglas, en este caso nat.
nat = (Network Address Translation). Es la tabla de manipulación de direcciones y puertos.
-A = Agrega un comando o una regla a la tabla.
POSTROUTING = Modifica el destino del paquete/s luego de que se decide si irá al ordenador local (server o el que tiene el firewall) o a otro ordenador de la red.
-o = Sirve para especificar la interface, en este caso output (salida)
eth0 = La interface de red a la que se sale a internet, en nuestro caso la ETH00 de debian, que es la puerta de acceso a internet
-j = Aplicar

(Más info sobre compartir internet con Iptables: Sarckz's weblog)

Con esto, el virtual de windows XP ya debería tener acceso a la red a través de debian, con lo que la parte izquierda del esquema ya lo tenemos configurado; ahora nos queda la parte derecha, que consiste en conectar, a través de Zeroshell, una serie de ordenadores físicos a la red. Esto se realiza de la misma manera que en el post anterior del blog, pero vamos a verlo de nuevo...

Lo primero que haremos será crear una cuarta red virtual, que habrá que puentear con nuestra Conexión de área local (LAN) física:


Conectamos los ordenadores físicos al switch, así como el del administrador.

Configuramos la ETH01 del Zeroshell:


Ahora, los ordenadores físicos que absorben red del administrador deben configurar su Conexión de área local (LAN) tal que así:


Ahora abrimos un navegador en el ordenador físico del administrador y escribimos la ip de la ETH00 de Zeroshell, en mi caso 192.168.1.123 y accedemos a la plataforma de Zeroshell mediante usuario y contraseña.

En el menú superior clicamos en NAT y se nos abre una ventana:


En "NAT Enabled Interfaces" seleccionamos la ETH00 y la ETH01 y pulsamos SAVE.

En teoría, y si todo ha salido perfecto, los ordenadores físicos tendrán conexión a internet.

Ya tenemos montado el servidor, y desde Zeroshell podemos administrar toda la red, mediante Portal cautivo, HTTP Proxy, Firewall, etc...

No hay comentarios:

Publicar un comentario