Table of Contents
Instalación y configuración de clientes y servidores OpenVPN en Debian 7
Este artículo detalla cómo obtener conectividad IPv6. en OpenVPN. usando Debian Linux. El proceso se ha probado en Debian 7. en un VPS KVM. con conectividad IPv6. como servidor y un escritorio Debian 7. Los comandos deben ejecutarse como root.
Instalar OpenVPN en Debian ¿Qué es OpenVPN?
OpenVPN. es un programa de VPN que utiliza SSL/TLS para crear conexiones VPN seguras y cifradas, para enrutar su tráfico de Internet, evitando así el espionaje. Open VPN es muy capaz de atravesar cortafuegos de forma transparente. De hecho, si la situación lo requiere, puede ejecutarlo en el mismo puerto TCP que HTTPS (443), lo que hace que el tráfico sea indistinguible y, por lo tanto, prácticamente imposible de bloquear.
OpenVPN. puede utilizar una variedad de métodos, como claves secretas previamente compartidas, certificados o nombres de usuario/contraseñas, para permitir que los clientes se autentiquen en el servidor. OpenVPN utiliza el protocolo OpenSSL e implementa muchas funciones de seguridad y control, como autenticación de respuesta a desafío, capacidad de inicio de sesión único, funciones de equilibrio de carga y conmutación por error y compatibilidad con múltiples demonios.
¿Por qué usar OpenVPN?
Piense en comunicaciones seguras, piense en OpenVPN. Si no quiere que nadie espíe su tráfico de Internet, use OpenVPN para enrutar todo su tráfico a través de un túnel seguro y altamente encriptado.
Esto es especialmente importante cuando se conecta a redes WIFI públicas en aeropuertos y otros lugares. Nunca puedes estar seguro de quién está fisgoneando en tu tráfico. Puedes canalizar tu tráfico a través de tu propio servidor OpenVPN para evitar espionaje.
freestar.config.enabled_slots.push
Si estás en cualquiera los países que monitorean rutinariamente todo su tráfico y bloquean sitios web a voluntad, puede usar OpenVPN sobre el puerto TCP 443. para que sea indistinguible del tráfico HTTPS. Incluso puede combinar OpenVPN con otras estrategias de seguridad, como tunelizar su tráfico OpenVPN a través de un túnel SSL, para superar las técnicas de inspección profunda de paquetes que podrían identificar firmas OpenVPN.
Requisitos del sistema
OpenVPN requiere requisitos mínimos para ejecutarse . Un sistema con 64 MB de RAM. y 1 GB de disco duro. de espacio es suficiente para ejecutar OpenVPN. OpenVPN se ejecuta en casi todos los sistemas operativos principales.
Instalación y configuración de OpenVPN en Debian 7
Instale OpenVPN en el servidor maestro
Ejecute el siguiente comando para instalar OpenVPN.
# apt-get install openvpn
De forma predeterminada, los scripts easy-rsa se instalan en el directorio ‘/usr/share/easy-rsa/‘. Entonces, necesitamos copiar estos scripts en la ubicación deseada, es decir, /root/easy-rsa.
# mkdir/root/easy-rsa cp-prv/usr/share/doc/openvpn/examples/easy-rsa/2.0/root/easy-rsa Generar certificado de CA y clave de CA
Abra el archivo ‘ vars. y realice los siguientes cambios, pero antes de realizar cambios le sugiero que realice una copia de seguridad del archivo original.
# cp vars ,. orig
Con su editor de texto, configure los valores predeterminados para easy-rsa. Por ejemplo.
KEY_SIZE = 4096 KEY_COUNTRY = “IN” KEY_PROVINCE = “UP” KEY_CITY = “Noida” KEY_ORG = “Inicio” KEY_EMAIL = “[correo electrónico protegido]”
Aquí, estoy usando un Clave de 4096. bits. Puede utilizar una clave de bits 1024. 2048. 4096. o 8192. como desee.
Exporte los valores predeterminados ejecutando el comando.
# source ./vars
Limpie los certificados que se generaron anteriormente.
./clean-all
A continuación, ejecute el siguiente comando para genera el certificado CA. y la clave CA.
# ./build-ca
Genera el certificado del servidor ejecutando el comando. Sustituya el ‘nombre del servidor’ por su nombre-servidor.
# ./build-key-server nombre-servidor
Genere el certificado Diffie Hellman PEM.
#./build-dh
Genera el certificado de cliente. Sustituya el ‘nombre del cliente’ por su nombre-cliente.
# ./build-key nombre-cliente
Genere el código HMAC.
# openvpn–genkey–secret/root/easy-rsa/keys/ta.key
Copie los certificados en las máquinas cliente y servidor de la siguiente manera.
- Asegúrese de que ca.crt. esté presente tanto en el cliente como en el servidor.
- ca.key. debe estar en el cliente.
- El servidor requiere server.crt. dh4096.pem. server.key. y ta.key.
- client.crt. client.key. y ta.key. debe estar en el cliente.
Para configurar las claves y certificados en el servidor, ejecute los comandos.
# mkdir-p/etc/openvpn/certs # cp-pv/root/easy-rsa/keys/ca.crt,key,server-name.crt,key,ta.key,dh4096.pem/etc/openvpn/certs/Configuración del servidor OpenVPN
Ahora necesita configurar el servidor OpenVPN. Abra el archivo “/etc/openvpn/server.conf. . Realice los cambios como se describe a continuación.
Script security 3 puerto del sistema 1194 proto udp dev tap ca/etc/openvpn/certs/ca.crt cert/etc/openvpn/certs/server-name.crt key/etc/openvpn/certs/server-name.key dh/etc/openvpn/certs/dh4096.pem tls-auth/etc/openvpn/certs/ta.key 0 servidor 192.168.88.0 255.255.255.0 ifconfig-pool-persist ipp.txt push ” redirect-gateway def1 bypass-dhcp “push” dhcp-option DNS 8.8.8.8 “push” dhcp-option DNS 8.8.4.4 “keepalive 1800 4000 cifrado DES-EDE3-CBC # Triple-DES comp-lzo max-clients 10 usuario nadie group nogroup persist-key persist-tun #log openvpn.log #status openvpn-status.log verbo 5 mute 20
Habilita el reenvío de IP en el servidor.
# echo 1>/proc/sys/net/ipv4/ip_forward
Ejecute el siguiente comando para configurar OpenVPN para que se inicie en el arranque.
# update-rc.d-f openvpn por defecto
Inicie el servicio OpenVPN.
# service openvpn restart Instale OpenVPN en Cliente
Ejecute el siguiente comando para instalar OpenVPN en el cliente machine.
# apt-get install openvpn
Usando un editor de texto, configure la configuración del cliente OpenVPN en “/etc/openvpn/client.conf. , en el cliente. Un ejemplo de configuración es el siguiente:
script security 3 system client remote vpn_server_ip ca/etc/openvpn/certs/ca.crt cert/etc/openvpn/certs/client.crt key/etc/openvpn/certs/client. cifrado de clave DES-EDE3-CBC comp-lzo sí dev tap proto udp tls-auth/etc/openvpn/certs/ta.key 1 nobind auth-nocache persist-key persist-tun usuario nadie grupo nogroup
Ejecute el siguiente comando para configurar OpenVPN para que se inicie en el arranque.
# update-rc.d-f valores predeterminados de openvpn
Inicie el servicio OpenVPN en el cliente.
# service openvpn reiniciar
Una vez que esté satisfecho con que OpenVPN funciona bien en IPv4. aquí se explica cómo hacer que IPv6. funcione en OpenVPN.
Hacer que IPv6 funcione con OpenVPN en el servidor
Agregue las siguientes líneas al final del archivo de configuración del servidor ‘/etc/openvpn/server.conf. .
conexión de cliente/etc/openvpn/client-connect.sh desconexión de cliente/etc/openvpn/client-disconnect.sh
Estos dos scripts crean/destruyen el Túnel IPv6. cada vez que un cliente se conecta/desconecta.
Aquí está el contenido de client-connect.sh.
#!/Bin/bash BASERANGE = “2a00: dd80: 003d : 000c “ifconfig $ dev up ifconfig $ dev add $ BASERANGE: 1001 :: 1/64 ip-6 neigh add proxy 2a00: dd80: 003d: 000c: 1001 :: 2 dev eth0 exit 0
Mi host asigna me direcciones IPV6. del bloque 2a00: dd80: 003d: 000c ::/64. Por lo tanto, utilizo 2a00: dd80: 003d: 000c. como BASERANGE. Modifique este valor según lo que su host le haya asignado.
Cada vez que un cliente se conecta a OpenVPN, este script asigna la dirección 2a00: dd80: 003d: 000c: 1001 :: 1. como la dirección IPV6. de la interfaz tap0. del servidor.
La última línea configura el Descubrimiento de Vecinos para nuestro túnel. He agregado la dirección IPv6. de la conexión tap0. del lado del cliente como la dirección proxy.
Aquí está el contenido de desconexión del cliente. sh.
#!/bin/bash BASERANGE = “2a00: dd80: 003d: 000c”/sbin/ip-6 addr del $ BASERANGE :: 1/64 dev $ dev exit 0
Esto simplemente elimina la dirección de túnel IPv6. del servidor, cuando el cliente se desconecta. Modifique el valor de BASERANGE según corresponda.
Haga que los scripts sean ejecutables.
# chmod 700/etc/openvpn/client-connect.sh # chmod 700/etc/openvpn/client-disconnect.sh
Agregue las siguientes entradas a ‘/etc/rc.local’ (también puede modificar los sysctls apropiados en /etc/sysctl.conf. .
echo 1>/proc/sys/net/ipv6/conf/all/proxy_ndp echo 1>/proc/sys/net/ipv4/ip_forward echo 1>/proc/sys/net/ipv6/conf/all/forwarding/etc/init.d/firewall stop &&/etc/init.d/firewall start
Estas entradas activan el descubrimiento y reenvío de vecinos. También agregué un firewall.
Cree “/etc/init.d/firewall. y coloque el siguiente contenido.
#!/bin/sh # descripción: Firewall IPT =/sbin/iptables IPT6 =/sbin/ip6tables caso “$ 1” en inicio) $ IPT-F ENTRADA $ IPT-A ENTRADA-i eth0-m estado–estado ESTABLECIDO, RELACIONADO-j ACEPTAR $ IPT-A ENTRADA-i eth0-p tcp–dport 22-j ACEPTAR $ IPT-A ENTRADA-i eth0-p icmp-j ACEPTAR $ IPT-A ENTRADA-i eth0-p udp–dport 1194-j ACEPTAR $ IPT-A ENTRADA-i tap +-j ACEPTAR $ IPT-A FORWARD-i tap +-j ACCEPT $ IPT-A FORWARD-m estado–estado ESTABLECIDO, RELACIONADO-j ACEPTAR $ IPT-t nat-F POSTROUTING $ IPT-t nat-A POSTROUTING-s 10.8.0.0/24-o eth0-j MASQUERADE $ IPT-A INPUT-i eth0-j DROP $ IPT6-F INPUT $ IPT6-A INPUT-i eth0-m estado–estado ESTABLECIDO, RELACIONADO-j ACEPTAR $ IPT6-A ENTRADA-i eth0-p tcp–dport 22-j ACEPTAR $ IPT6-A ENTRADA-i eth0-p icmpv6-j ACEPTAR $ IPT6-A FORWARD-s 2a00: dd80: 003d: 000c ::/64-i tap0-o eth0-j ACCEPT $ IPT6-A INPUT-i eth0-j DROP exit 0 ;; detener) $ IPT-F $ IPT6-F salir 0 ;; *) echo “Uso:/etc/init.d/firewall inicio ” salida 1 ;; esac
Ejecute ‘/etc/rc.local. e inicie el cortafuegos.
# sh/etc/rc.local
Esto completa las modificaciones del lado del servidor.
Hacer que IPv6 funcione con OpenVPN en el cliente
Agregue lo siguiente como las últimas líneas del archivo de configuración de su cliente ‘/etc/openvpn/client.conf. .
# cree el túnel ipv6 up/etc/openvpn/up.sh down/etc/openvpn/down.sh # lo necesito para que cuando el cliente se desconecte le diga al servidor explícitamente-salir-notificar
Los scripts de arriba y abajo construyen/destruyen el extremo del cliente IPV6 puntos de la conexión tap0 del cliente cada vez que un cliente se conecta/desconecta hacia o desde el servidor OpenVPN.
Aquí está el contenido de up.sh.
#!/bin/bash IPV6BASE = “2a00 : dd80: 3d: c “ifconfig $ dev up ifconfig $ dev add $ IPV6BASE: 1001 :: 2/64 ip-6 route add default via $ IPV6BASE: 1001 :: 1 exit 0
El script asigna la dirección IPV6 2a00: dd80: 3d: c: 1001 :: 2. como la dirección IPV6 del cliente y establece la ruta IPV6 predeterminada a través del servidor.
Modifique IPV6BASE para que sea el mismo que BASERANGE en la configuración del servidor.
Aquí está el contenido de down.sh.
#!/bin/bash IPV6BASE = “2a00: dd80: 3d : c “/sbin/ip-6 addr del $ IPV6BASE :: 2/64 dev $ dev/sbin/ip link set dev $ dev down/sbin/ip route del ::/0 via $ IPV6BASE :: 1 salir 0
Esto simplemente elimina la dirección IPV6 del cliente y elimina la ruta IPV6 cuando el cliente se desconecta del servidor.
Modifique IPV6BASE para que sea igual que BASERANGE en la configuración del servidor y haga script ejecutable.
# chmod 700/etc/openvpn/up.sh # chmod 700/etc/openvpn/down.sh
Opcionalmente, modifique ‘/etc/resolv.conf’ y agregue los servidores de nombres IPV6 de Google para DNS resolución.
nameserver 2001: 4860: 4860 :: 8888 nameserver 2001: 4860: 4860 :: 8844
Reinicie openvpn en el servidor y luego conéctese a él desde el cliente. Deberías estar conectado. Visite test-ipv6.com para ver que su conectividad IPV6 a través de OpenVPN está funcionando.
Enlaces de referencia
Página de inicio de OpenVPN
Fuente. stavrovski