Servidor VPN en Windows XP
Windows server 2003
En Ubuntu server
Instalamos openvpn y openssl
a continuación editamos el fichero /etc/default/openvpn
También eliminamos el script de inicio para evitar que no inicie sin configurar con la orden
sudo update-rc.d –f /etc/init.d/openvpn remove
Ahora creamos el fichero openvpn.conf en /etc/openvpn con la siguiente configuración
dev tun
proto tcp
port 1194
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/servidor.crt
key /etc/openvpn/keys/servidor.key
dh /etc/openvpn/keys/dh2048.pem
user nobody
group nogroup
server 10.6.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/clients.txt
status /etc/openvpn/status.txt
persist-key
persist-tun
push "redirect-gateway def1"
push "route 192.168.0.0 255.255.255.0"
keepalive 10 120
verb 3
comp-lzo
max-clients 3
* ca, cert, key y dh = son la entidad, el certificados, la llave y la Diffie Hellman del servidor, mas
adelante los crearemos.
* server 10.6.0.0 255.255.255.0 = es el rango de ip que usara la vpn, usen otro pero, no usar el
mismo que la red real.
* ifconfig-pool-persist ipp.txt = guarda a quien se le asigno cada ip en la vpn
* proto y port = protocolo y puerto, se puede usar tcp y utp, en utp no me dio buenos
resultados, el puerto es pueden cambiarlo.
* duplicate-cn = permite que se use el mismo certificado y llave en varios clientes al mismo
tiempo, recomiendo no activarlo.
* up /etc/openvpn/openvpn.up = es un script que carga openvpn al iniciar, se usa para el
ROUTING y FORWARDING, mas adelante lo creamos.
* client-to-client = es para evitar que los usuario de la vpn se vean entre si, según el caso es
útil.
* comp-lzo = compresión, comprime todo el trafico de la vpn.
* verb 3 = aumenta o disminuye los detalles de error en el server.
* max-clients 30 = cantidad máxima de usuarios conectados simultáneamente al servidor, se
puede aumentar o disminuir.
* push route = permite ver o estar en la red detras del vpn server, ojo no activar client-to-
client.
* push “redirect = oblica al cliente a usar la vpn como gateway.
Ahora crearemos un script para que configure e inicie el servidor vpn, escribimos sudo nano
/etc/init.d/vpnserver
Contenido vpnserver
#!/bin/sh
#
vpnserver_start()
{
echo "VPN Server [OK]"
echo 1 > /proc/sys/net/ipv4/ip_forward
/etc/init.d/networking restart > /dev/null
/sbin/iptables -t nat -A POSTROUTING -s 10.6.0.0/24 -o eth0 -j
MASQUERADE
/usr/sbin/openvpn --config /etc/openvpn/server.conf 2>>
/etc/openvpn/error.txt 1>> /etc/openvpn/normal.txt &
}
vpnserver_stop()
{
echo "VPN Server [NO]"
/usr/bin/killall "openvpn"
iptables -F
iptables -X
/etc/init.d/networking restart > /dev/null
}
vpnserver_restart()
{
vpnserver_stop
sleep 1
vpnserver_start
}
#
case "$1" in
'start')
vpnserver_start
;;
'stop')
vpnserver_stop
;;
'restart')
vpnserver_restart
;;
*)
vpnserver_start
;;
esac
a continacion le damos permisos de ejecución
con sudo chmod +x /etc/init.d/vpnserver
Seguidamente le indicamos que lo ejecute al inicio con la orden sudo update-rc.d vpnserver
defaults
Ahora debemos activar el modulo TUN en el kernel, escribiendo sudo modprobe tun y sudo
echo “tun” >> /etc/modules
A continuación procederemos a crear:
Diffie Hllman de 2048 bits
Crear entidad emisora de certificados
Crear los certificados y llaves del servidor
Crear los certificados y llaves de cada usuario
Comenzamos copiando los ejemplos de easy-rsa para crear la entidad, los certificados, las
llaves y encriptación que usa VPN con sudo cp –R /usr/share/doc/openvpn/examples/easy-rsa
/etc/openvpn
A continuación nos movemos a la carpeta copiada y creamos la carpeta keys dentro de 2.0
A continuación editamos el fichero vars y modificamos el valor export
KEY_DIR=”$EASY_RSA/keys” por export KEY_DIR=”/etc/openvpn/easy-rsa/2.0/keys”
Además configuramos el parámetro export_key_size de 1024 a 2048
Y los datos de la entidad certificadora
A continuación ejecutamos ./vars
Nos pedirá que limpiemos la pantalla, lo hacemos con ./clean-all
A continuaicon generamos la seguridad diffie hellman de 2048 bits.
Ahora emitiremos la entidad emisora con el comando ./build-ca
Nos hara una serie de preguntas escribimos lo mismo que en el fichero vars
A continuación ejecutamos ./build-key-server servidor
Esto hara que se generen las claves del servidor, a continuación debemos copiar el contenido
de la carpeta keys a /etc/openvpn
Ahora debemos comprobar que esta todo en su lugar
A continuación generamos un fichero mas con sudo openvpn –genkey –secret ta.key
A continuación debemos copiar los ficheros ca.crt, cliente.srt y cliente.key a un pendrive
Y arrancancamos el servidor con el comando
Sudo /etc/init.d/vpnserver start
Si no da fallo esta listo
Conexión desde un cliente vpn en windows y Linux
En Windows
En Linux
Instalamos openssl y openvpn y el plugin de network-manager para vpn con:
Sudo apt-get install openvpn
Sudo apt-get install openssl
Sudo apt-get install network-manager-openvpn
Editamos un fichero que tenga cualquier nombre con extensión .conf y agregamos el siguiente
contenido, guardándolo con los ficheros copiados
Para finalizar pinchamos en el gestor de conexiones y pinchamos en la pestaña de VPN
A continuación pinchamos en el botón de importar y seleccionamos el fichero .conf que
acabamos de crear. Al seleccionarlo nos aparecerá esto
Escribimos la contraseña y pulsamos en guardar y la conexión estaría lista