Pertenece a Topic 212: System Security
/etc/openvpn/openvpnOpenVPN es un programa open source para la creación de túneles seguros (VPN, Virtual Private Network).
OpenVPN está disponible en Debian a través del paquete openvpn
A diferencia de las VPN habituales, no se basa en IPsec sino en SSL.
Proporciona servicios de:
Generamos el fichero de clave en el servidor:
openvpn --genkey --secret <archivo_clave.key>
Ejemplo:
# cat archivo_clave.key # # 2048 bit OpenVPN static key # -----BEGIN OpenVPN Static key V1----- ae11344ce37de44dcce059ecf9fa573f a2694d5531bc7ed144a12a099c4ef8ce (...) 1d37552cd4f29ff6b719588056a60777 579cc2aff71bf339f5293bf08f2ce4df -----END OpenVPN Static key V1-----
Es necesario que el cliente tenga la clave creada en el servidor, así que se la pasamos:
scp archivo_clave.key root@cliente:/root
Los archivos de configuración se encuentran por defecto en el directorio /etc/openvpn y suelen llamarse client.conf y server.conf:
remote <servidor> dev tun ifconfig <IP_local> <IP_remota> secret <archivo_clave> route <red_remota> <máscara>
remote servidor: en el cliente únicamente. servidor indica el nombre o la dirección IP del servidor al que se debe conectar la VPN.dev tun: crea una encapsulación de tipo túnel, es decir, point-to-point o site-to-site (tap es para conexión bridge).ifconfig IP_local IP_remota: establece las direcciones locales y remotas de los extremos de la comunicación. Estas direcciones estarán visibles en forma de interfaz virtual en la configuración de red del host.secret archivo_clave: indica qué archivo contiene la clave compartida, idéntica en ambas máquinas.route red_remota máscara: parámetro del cliente: indica la dirección de red privada detrás del servidor para que el tráfico con destino esta red se enrute correctamente por la VPN.Iniciamos el servicio (cliente / servidor):
/etc/init.d/openvpn start
Ejemplo completo:
# En el servidor # vi /etc/openvpn/server.conf dev tun ifconfig 10.8.0.1 10.8.0.2 secret secret.key
# En el cliente # vi /etc/openvpn/client.conf remote vpn.example.com dev tun ifconfig 10.8.0.2 10.8.0.1 secret secret.key route 192.168.1.0 255.255.255.0
Se puede comprobar el correcto funcionamiento con el comando ping.
OpenVPN por defecto, utiliza el puerto 1194/UDP.
Para obtener la información de routing y la lista de clientes actualmente conectados podemos ejecutar en el servidor el comando:
/etc/init.d/openvpn status
Ejemplo de una sesión:
servidor# ifconfig tun0
tun0: error fetching interface information: Device not found
servidor# /etc/init.d/openvpn start
Starting virtual private network daemon: client.
servidor# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet adr:10.8.0.2 P-t-P:10.8.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
servidor# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=0.864 ms