Proxmox VPN sobre un servidor VPS

Este manual ha sido probado desde una instalación nueva de Proxmox version 1.9 y un servidor VPS con Debian versión 6, descargada directamente desde la consola web del propio Proxmox.

1. Instalación de Proxmox como lo haríamos normalmente.

2. Una vez instalado Proxmox, procedemos a descargar una plantilla desde el menú de Proxmox (Plantilla de Aplicaciones) la cual usaremos para instalar una máquina virtual de prueba para el VPN.

En este ejemplo hemos optado por descargar la version 6 de Debian.

3. Una vez descargada la imagen, instalamos un VPS (Maquinas Virtuales -> Crear) como tipo:

Container (OPenVZ)

seleccionando la imagen que hemos descargado y poniendo los datos de red que sean necesarios, según nuestra configuración y preferencias de red dentro del entorno donde esté instalado nuestro hipervisor Proxmox.

4. Desde la consola del servidor Proxmox (como root) activamos el soporte TUN/TAP en el kernel

modprobe tun  

comprobamos que esté activado

lsmod | grep tun  

teniendo que ver una salida como esta:

tun                    18815  1 vhost_net  

Para que esto sea permanente, debemos poner que el módulo "tun" sea cargado en el inicio del servidor. Para ello usamos la siguiente orden:

echo tun >> /etc/modules  

Podemos reiniciar Proxmox y ejecutar la orden anterior para verificar que se ha cargado el módulo al inicio.

5. Damos permisos para que nuestra máquina virtual pueda hacer uso del dispositivo tun/tap

vzctl set 101 --devnodes net/tun:rw --save  

En nuestro caso, como solo tenemos una máquina virtual, esta tiene el ID 101.

La salida del comando anterior deberá ser:

Setting devices
Saved parameters for CT 101

6. Desde la consola del servidor Proxmox editamos el fichero

nano -w /etc/vz/vz.conf  

y en la línea donde pone (sobre la linea 46)

## IPv4 iptables kernel modules to be enabled in CTs by default  
IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length"  

añadimos al final

ipt_state iptable_nat  

dejamos esa línea como sigue:

IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat"  

Con este paso hacemos accesible los módulos de "nat" y "state" de iptables a los VPS

7. Permitimos a nuestro VPS abrir el interface TUN/TAP, asegurándonos primero que el VPS esté apagado.

vzctl stop 101  
vzctl set 101 --devices c:10:200:rw --save  
vzctl set 101 --capability net_admin:on --save  

8. Instalamos algunos módulos más en nuestro servidor Proxmox antes de iniciar el VPS

modprobe ipt_mark  
modprobe ipt_MARK  
modprobe tun  

Haciéndolos permanentes del mismo modo que hicimos en el paso 4.

echo ipt_mark >> /etc/modules  
echo ipt_MARK >> /etc/modules  

9. Iniciamos el VPS

vzctl start 101  

10. Creamos el dispositivo "tun net" en nuestra máquina virtual

vzctl exec 101 mkdir -p /dev/net  
vzctl exec 101 mknod /dev/net/tun c 10 200  
vzctl exec 101 chmod 600 /dev/net/tun 

1 Respuesta

  1. reparación de portátiles

    Perfecto el tutorial. Me ha valido para instalar la VPN en mi ubuntu 12.04 LTS OPenvz.

    Quería saber si existe algún método de hacer que los valores:
    vzctl exec 101 mkdir -p /dev/net
    vzctl exec 101 mknod /dev/net/tun c 10 200
    vzctl exec 101 chmod 600 /dev/net/tun

    se carguen al reinicar la máquina…?

    Gracias.