OpenVPN es un Software que hace de cliente y servidor según como lo configuremos, aclaro que hay 2 versiones de este:
- OpenVPN Community Software: Es la versión que utilizaremos y es 100% Open Source
- OpenVPN Access Server: Es la versión de pago, puede usar gratis solo hasta 2 usuarios, los usuarios adicionales son muy económicos, además tiene extras como panel de administración web, es súper fácil de configurar y mas.
Introducción
OpenVPN, es un producto de software creado por James Yonan en el año 2001 y que ha estado siendo mejorado desde entonces.
Ninguna otra solución ofrece una mezcla semejante de seguridad a nivel empresarial, seguridad, facilidad de uso y riqueza de características.
Es una solución multiplataforma que ha simplificado mucho la configuración de VPN’s dejando atrás los tiempos de otras soluciones difíciles de configurar como IPsec y haciéndola más accesible para gente inexperta en este tipo de tecnología.
Supongamos que necesitamos comunicar diferentes sucursales de una organización. A continuación veremos algunas soluciones que se han ofrecido como respuesta a este tipo de necesidades.
En el pasado las comunicaciones se realizaban por correo, teléfono o fax. Hoy en día hay factores que hacen necesaria la implementación de soluciones más sofisticadas de conectividad entre las oficinas de las organizaciones a lo largo del mundo.
Dichos factores son:
- La aceleración de los procesos de negocios y su consecuente aumento en la necesidad de intercambio flexible y rápido de información.
- Muchas organizaciones tienen varias sucursales en diferentes ubicaciones así como también tele trabajadores remotos desde sus casas, quienes necesitan intercambiar información sin ninguna demora, como si estuvieran físicamente juntos.
- La necesidad de las redes de computación de cumplir altos estándares de seguridad que aseguren la autenticidad, integridad y disponibilidad.
Fuente: Wikipedia
El Servidor
Esta guía es para Ubuntu 10.04 Server, imagino que funciona en otras versiones y distros, tenemos un ubuntu server ya instalado y funcionando.
Instalamos OpenVPN y también OpenSSL, ya que la seguridad se basa en ssl.
Código: Seleccionar todo
sudo apt-get -y install openvpn
sudo apt-get -y install openssl
Comentamos todo agregando # al comienzo de cada linea.
Código: Seleccionar todo
sudo nano /etc/default/openvpn
Código: Seleccionar todo
sudo update-rc.d -f /etc/init.d/openvpn remove
Código: Seleccionar todo
sudo nano /etc/openvpn/server.conf
Código: Seleccionar todo
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
Ahora creamos el script para que configure e inicie el servidor de vpn.
Código: Seleccionar todo
sudo nano /etc/init.d/vpnserver
Código: Seleccionar todo
#!/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
Código: Seleccionar todo
sudo chmod +x /etc/init.d/vpnserver
Código: Seleccionar todo
sudo update-rc.d vpnserver defaults
Código: Seleccionar todo
sudo modprobe tun
sudo echo "tun" >> /etc/modules
* Crear Diffie Hellman de 2048bits
* Crear la Entidad emisora de certificados.
* Crear los Certificados y llaves del servidor.
* Crear los certificados y llaves de cada usuario.
Copiamos los ejemplo de easy-rsa para crear la entidad, los certificados, llaves y encriptación, que usar OpenVPN,
Código: Seleccionar todo
sudo cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/
Código: Seleccionar todo
sudo cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0
sudo mkdir keys
Código: Seleccionar todo
sudo nano /etc/openvpn/easy-rsa/2.0/vars
Código: Seleccionar todo
export KEY_DIR="$EASY_RSA/keys"
Código: Seleccionar todo
export KEY_DIR="/etc/openvpn/easy-rsa/2.0/keys"
seguimos, también modificamos los parámetros para Diffie Hellman de 2048bits
Código: Seleccionar todo
export KEY_SIZE=1024
Código: Seleccionar todo
export KEY_SIZE=2048
Código: Seleccionar todo
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]"
un ejemplo
Código: Seleccionar todo
export KEY_COUNTRY="VE"
export KEY_PROVINCE="CCS"
export KEY_CITY="Chacao"
export KEY_ORG="Kodeinfect Lab's"
export KEY_EMAIL="[email protected]"
bueno ahora estamos preparados para comenzar, seguir estos pasos al pie de la letra, porque un error y se arruina todo.
Ejecutamos
Código: Seleccionar todo
source ./vars
Código: Seleccionar todo
./clean-all
Código: Seleccionar todo
./build-dh
Código: Seleccionar todo
./build-ca
Código: Seleccionar todo
./build-key-server servidor
les pedirá los mismos datos que en el archivos vars recomiendo completar cada uno, aunque ya están, no importa.
Código: Seleccionar todo
./build-key cliente
ya que copiar la carpeta keys a /etc/openvpn/
Código: Seleccionar todo
sudo cp -R /etc/openvpn/easy-rsa/2.0/keys /etc/openvpn/
Código: Seleccionar todo
cd /etc/openvpn/keys
ahora generamos un archivo mas, este lo genera openvpn
Código: Seleccionar todo
sudo openvpn --genkey --secret ta.key
Listo ya esta todo en el servidor, ahora lo iniciamos para probar que todo esta correcto
Código: Seleccionar todo
sudo /etc/init.d/vpnserver start
El Cliente:
Esta guía es para Ubuntu 10.04 Desktop, imagino que funciona en otras versiones y distros, tenemos un ubuntu ya instalado y funcionando.
Instalamos OpenVPN y también OpenSSL, ya que la seguridad se basa en ssl
y como usaremos el Network Manager de Ubuntu hay que instalar el plugins para OpenVPN
Código: Seleccionar todo
sudo apt-get -y install openvpn
sudo apt-get -y install openssl
sudo aptitude -y install network-manager-openvpn
Con un editor de texto, gedit puede ser, pegan este código
Código: Seleccionar todo
client
dev tun
proto tcp
remote IP-DEL-SERVIDOR PUERTO
resolv-retry infinite
nobind
#user nobody
#group nobody
persist-key
persist-tun
ca ca.crt
cert cliente.crt
key cliente.key
comp-lzo
tun-mtu 1500
keepalive 10 120
verb 4
Guardan el el código con el nombre que quieran pero con extensión .conf y en la misma carpeta de los archivos ca.crt, cliente.crt y cliente.key
Ahora abre el Network Manager de Ubuntu y en la pestaña VPN hay un botón Importar, buscan el archivo .conf que guardamos antes y ya esta todo.
Espero que este tutorial les sea util, fue realizado con información de varios temas.
Un Saludo Kode!