domingo, 4 de febrero de 2007

Instalando openVPN

Quiero instalarme una VPN en mi servidor para poder acceder a él. Había pensado en instalar PPTP pero he leído que PPTP no es del todo seguro, así que voy a probar con openVPN.

Para instalar y configurar openvpn he seguido el "OpenVPN 2.0 HOWTO" de openvpn.net y el "Cómo de openVpn en Linux" de www.ubuntu-es.org.

Instalar el paquete "openvpn":
sudo apt-get install openvpn
Crear el certificado de la CA y el certificado y clave privada del servidor y clientes: Si no tenemos los certificados de la CA y el servidor y la clave privada del certificado de servidor o queremos crealos para un nuevo cliente, tendremos que crealos usando openssl.

Crear un fichero de configuración de openVPN, p.ej /etc/openvpn/tunel.conf (podemos copiar el que hay en )con un contenido similar a éste:
#################################################
# Ejemplo para crear una red con multiples #
# clientes #
#################################################

# En que ip local escucha
;local a.b.c.d

# Puerto en el que escucha
# Se pueden levantar varias VPNs en puertos distintos
port 1194

# protocolo TCP o UDP?
proto tcp
;proto udp

# "dev tun" => tunel IP
# "dev tap" => tunel ethernet
dev tun
;dev tap

# ca - certificado de la CA
# cert - certificado del servidor
# key - clave asociada al certificado del servidor
ca /usr/share/doc/openvpn/examples/easy-rsa/keys/ca/ca.crt
cert /usr/share/doc/openvpn/examples/easy-rsa/keys/servidor/servidor.crt
key /usr/share/doc/openvpn/examples/easy-rsa/keys/servidor/servidor.key # Mantener en secreto

# Parametros Diffie hellman
# Se pueden generar asi:
# openssl dhparam -out dh1024.pem 1024
dh /usr/share/doc/openvpn/examples/easy-rsa/keys/dh1024.pem

# Red a la que se asignan los clientes => 192.168.10.0/255.255.255.0
# El servidor será 192.168.10.1
server 192.168.10.0 255.255.255.0

# Mantiene una lista de ip-ip_virual que permite reconectar clientes a la misma IP
ifconfig-pool-persist ipp.txt

# Metemos una ruta para que los clientes puedan llegar a la red 192.168.1.0/255.255.255.0
push "route 192.168.1.0 255.255.255.0"

# Permite hacer de gateway (y redirigir todo el tráfico del cliente al servidor, p.ej. tráfico web)
;push "redirect-gateway"

# Hay que descomentar la linea siguiente para que los clientes puedan verse entre sí
;client-to-client

# Hay que descomentar la linea siguiente para que un mismo cliente puede abrir varias conexiones
duplicate-cn

# El primer parametro indica cada cuanto tiempo probar la conexion (en segundos)
# El segundo, el tiempo transcurrido sin respuesta hasta que se corta la conexion con el cliente
keepalive 10 120

# Permitir compresion
comp-lzo

# Numero maximo de clientes concurrentes
max-clients 25

# Quitamos privilegios al demonio
user nobody
group nobody

# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# configuracion del log
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 4

Crear los parámetros de Diffie-Hellman: si no lo has hecho ya, ejecuta:
sudo openssl dhparam -out dh1024.pem 1024Y te creará dh1024.pem.

Reinicia openvpn: sudo /etc/init.d/openvpn restart

Si surge algún error, comprueba los logs en /etc/log/openvpn/openvpn.log.
Asegúrate de tener bien todas las rutas a ficheros en el fichero de configuración.

Para configurar el cliente:
Instala openvpn en la máquina cliente y copia los ficheros cliente.crt, cliente.key y ca.crt
a /etc/openvpn/keys/

Copia el fichero de configuración de ejemplo que hay en /usr/share/doc/openvpn/examples/sample-config-files/cliente.conf
a /etc/openvpn y edítalo manualmente. Reinicia openvpn y si hay algún problema, mira los logs.

No hay comentarios: