Configuración de VPN segura
C@mpus - @cademia Linux

Introducción 

OpenVPN es una aplicación completa para la solución de VPN's.  Ofrece ventajas sobre una VPN bajo PPTP al utilizar solamente TCP/UDP además de utilizar diferentes tipos de cifrado.  LXE recomienda el uso de este tipo de enlace antes que PPTP.


Paquetes necesarios

  • OpenVPN 2+

Configuración del Servidor

OpenVPN utiliza a partir de su versión 2 el esquema de cliente servidor (soportando Peer-to-Peer de la versión 1.x).  Como requisito para utilizar esta opción es necesario contar con una infraestructura de llave pública (PKI).  El presente documento no cubre este aspecto, pero la documentación está disponible en el sitio.

Para lograr esto se tiene que editar el archivo /etc/openvpn/server.conf de una forma similar:

/etc/openvpn/server.conf
port 1194
proto udp
dev tun
server 192.168.8.0 255.255.254.0
ifconfig-pool-persist ipp.txt
push "route 192.168.3.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"
push "dhcp-option DNS  192.168.3.1"
push "dhcp-option DNS  192.168.1.1"
push "dhcp-option WINS 192.168.3.1"
push "dhcp-option WINS 192.168.1.1"
push "dhcp-option DOMAIN linuxchange.com"
push "dhcp-option NBDD 192.168.3.1"
push "dhcp-option NBDD 192.168.1.1"
push "dhcp-option NTP 192.168.3.1"
push "dhcp-option NTP 192.168.1.1"
client-to-client
keepalive 10 120
comp-lzo
max-clients 200
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
management localhost 7505
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
dh /etc/ssl/dh1024.pem
ca /etc/ssl/cacert.pem
cert /etc/ssl/01.pem
key /etc/ssl/01.key.pem

Con esto el servidor estará listo para trabajar.  Al levantarlo existirá una interfase tun0 (según la configuración) con las dos primeras IP's del segmento asignado.  En este ejemplo, 192.168.8.1 y 192.168.8.2.

La autenticación del cliente se realizara mediante PAM.  Por lo tanto, el servidor de VPN deberá pasar por el proceso de Instalación Común .


Seguridad

El servidor deberá permitir el tráfico entre las interfases tunX y tapX además de hacer forwarding entre las redes asignadas a la vpn y aceptar el tráfico entrante por el puerto  1194/tcp o 1194/udp.

Para efectos de este documento, la siguiente información es reunida:

  • Segmentos de VPN: 192.168.8.0/23
  • VPN por puerto 1194/udp
  • Utilización de interface TUN
  • Permitir IP Forwarding

Las siguientes reglas de iptables ayudarán a permitir el tráfico de la VPN.

Reglas de IPTables
iptables -I INPUT -p udp -m multiport --dports 1194 -j ACCEPT
iptables -I tun+ -j ACCEPT
iptables -I FORWARD -s 192.168.8.0/255.255.254.0 -i tun+ -j ACCCEPT
iptables -I FORWARD -i tun+ -j ACCEPT

Para permitir el IP Forwarding se tendrá que ejecutar este comando:

echo 1 > /proc/sys/net/ipv4/ip_forward


Configuración del Cliente

La siguiente configuración configuración aplica tanto para clientes Linux como Windows.  LXE al apoyar clientes con Windows ha probado bajo esta plataforma.

El siguiente archivo configura el cliente:

/etc/openvpn/client.ovpn

client
dev tun
proto udp
remote tao.linuxchange.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca cacert.crt
cert 03.pem
key 03.key.pem
comp-lzo
verb 3
auth-user-pass


Certificados 

La creación de los certificados para servidores utilizada por OpenPN puede ser cubierta en la sección de PKI.  Para esto es indispensable tener una CA, LinuXchangE recomienda altamente tener una instalada ante certificados firmados por sí mismos.