Instalación y configuración del servidor OpenVPN y cliente en Debian 7
- 4989
- 476
- Sr. Eduardo Menchaca
Este artículo detalla cómo obtener IPv6 conectividad OpenVPN usando Debian Linux. El proceso ha sido probado en Debian 7 en un KVM VPS con IPv6 conectividad como servidor y un escritorio de Debian 7. Los comandos deben ejecutarse como root.
Instalar OpenVPN en Debian¿Qué es OpenVpn??
OpenVPN es un programa VPN que utiliza SSL/TLS para crear conexiones VPN seguras y cifradas, para enrutar su tráfico de Internet, evitando así la espada. Open VPN es muy capaz de atravesar transparentemente a través de firewalls. De hecho, si la situación lo requiere, puede ejecutarla 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 usar una variedad de métodos, como claves secretas, certificados o nombres de usuario/contraseñas de usuarios precipitados, para que los clientes se autenticen en el servidor. OpenVPN utiliza el protocolo OpenSSL e implementa muchas características de seguridad y control, como autenticación de respuesta a desafío, capacidad de inicio de sesión único, equilibrio de carga y características de conmutación por error y soporte de múltiples demonios.
¿Por qué usar OpenVPN?
Piense en comunicaciones seguras: piense en OpenVPN. Si no desea que nadie husme en su tráfico de Internet, use OpenVPN para enrutar todo su tráfico a través de un túnel seguro y altamente cifrado.
Esto es especialmente importante cuando se conecta a las redes WiFi públicas en aeropuertos y otros lugares. Nunca puedes estar seguro de quién está husmando tu tráfico. Puede canalizar su tráfico a través de su propio servidor OpenVPN para evitar fisuras.
Si se encuentra en alguno de los países que monitorean rutinariamente todo su tráfico y bloquean los sitios web a voluntad, puede usar OpenVPN a través del puerto TCP 443, para que sea indistinguible del tráfico HTTPS. Incluso puede combinar OpenVPN con otras estrategias de seguridad, como túneles, su tráfico OpenVPN a través de un túnel SSL, para superar las técnicas de inspección de paquetes profundos que podrían identificar las firmas de OpenVPN.
Requisitos del sistema
OpenVPN requiere requisitos muy mínimos para ejecutarse. Un sistema con 64 MB RAM y 1 GB HDD El 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
Instalar OpenVPN en el servidor maestro
Ejecute el siguiente comando para instalar OpenVPN.
# apt-get install OpenVPN
Por defecto, los scripts fáciles de RSA se instalan en '/usr/share/easy-rsa/'Directorio. Entonces, necesitamos copiar estos scripts en la ubicación deseada I.mi. /root/easy-rsa.
# mkdir/root/easy-rsa cp -prv/usr/share/doc/openvpn/ejemplos/easy-rsa/2.0 /root /easy-rsa
Generar certificado CA y clave CA
Abrir documento 'vars'Y realice los siguientes cambios, pero antes de hacer cambios le sugiero que tome una copia de seguridad del archivo original.
# CP Vars ,.orig
Usando su editor de texto, configure los valores predeterminados para Easy-RSA. Por ejemplo.
Key_size = 4096 key_country = "en" key_province = "up" key_city = "noida" key_org = "home" key_email = "[correo electrónico protegido]"
Aquí, estoy usando un 4096 Bit Key. Puedes usar un 1024, 2048, 4096 o 8192 Bit Key como se desea.
Exportar los valores predeterminados ejecutando el comando.
# fuente ./vars
Limpiar los certificados que se generaron anteriormente.
./Limpiar todo
A continuación, ejecute el siguiente comando para generar California certificado y California llave.
# ./Build-Ca
Genere el certificado del servidor ejecutando el comando. Sustituya el 'nombre del servidor' con su nombre de servidor.
# ./nombre del servidor de servidor de construcción de llave
Generar el Diffie Hellman Pem certificado.
# ./Build-DH
Generar el certificado del cliente. Sustituya el 'nombre del cliente' con su nombre de cliente.
# ./nombre de cliente de llave de construcción
Generar el código HMAC.
# OpenVPN--Genkey --secret/root/easy-rsa/keys/ta.llave
Copie los certificados a las máquinas del cliente y del servidor de la siguiente manera.
- Asegúrese de que el California.CRT está presente tanto en el cliente como en el servidor.
- El California.llave La clave debe estar en el cliente.
- El servidor requiere servidor.CRT, DH4096.pem, servidor.llave y ejército de reserva.llave.
- cliente.CRT, cliente.llave y ejército de reserva.llave debería estar en el cliente.
Para configurar las claves y los certificados en el servidor, ejecute los comandos.
# mkdir -p/etc/openvpn/certs # cp -pv/root/easy -rsa/keys/ca.CRT, Key, nombre del servidor.CRT, Key, TA.clave, DH4096.PEM/etc/openvpn/certs/
Configuración del servidor OpenVPN
Ahora necesita configurar el servidor OpenVPN. Abrir documento '/etc/openvpn/servidor.confusión'. Haga cambios como se describe a continuación.
Script Security 3 System Port 1194 Proto UDP Dev Tap CA/etc/Openvpn/Certs/CA.CRT CERT/ETC/OpenVPN/Certs/Server-Name.CRT Key/Etc/OpenVPN/Certs/Server-Name.clave DH/ETC/OpenVPN/Certs/DH4096.PEM TLS-AUTH/ETC/OPERVPN/CERTS/TA.Key 0 Server 192.168.88.0 255.255.255.0 ifconfig-pool-perseísta ipp.txt push "redirect-gateway def1 bypass-dhcp" empuje "dhcp-option dns 8.8.8.8 "Push" DHCP-option DNS 8.8.4.4 "KeepAlive 1800 4000 CIPHER DE-ODE3-CBC # triple-des Comp-lzo Max-Client 10 User Nadie Group NoGroup Persist-Key Persist-Tun #log OpenVpn.registro #status openvpn-status.verbo de registro 5 mudo 20
Habilitar el reenvío de IP en el servidor.
# echo 1>/proc/sys/net/ipv4/ip_forward
Ejecute el siguiente comando para configurar OpenVPN para comenzar en el arranque.
# Update-RC.d -f OpenVPN predeterminados
Iniciar servicio OpenVPN.
# Servicio OpenVPN reiniciar
Instalar OpenVPN en el cliente
Ejecute el siguiente comando para instalar OpenVPN en la máquina del cliente.
# apt-get install OpenVPN
Usando un editor de texto, configure la configuración del cliente OpenVPN en '/etc/openvpn/cliente.confusión', en el cliente. Una configuración de ejemplo es la siguiente:
Script Security 3 System Client Remote VPN_SERVER_IP CA/ETC/OPERVPN/CERTS/CA.CRT CERT/ETC/OpenVPN/Certs/Client.CRT Key/Etc/OpenVPN/Certs/Client.CIPHER DES-ODE3-CBC COMP-LZO Sí Dev Tap Proto UDP TLS-AUTH/ETC/OPERVPN/CERTS/TA.Clave 1 Nobind auth-nocache persist-llave usuarios de tún persisting no grupo nogroup
Ejecute el siguiente comando para configurar OpenVPN para comenzar en el arranque.
# Update-RC.d -f OpenVPN predeterminados
Inicie el servicio OpenVPN en el cliente.
# Servicio OpenVPN reiniciar
Una vez que esté satisfecho de que OpenVPN esté funcionando bien IPv4, Aquí está como conseguir IPv6 Trabajando sobre OpenVPN.
Hacer que IPv6 funcione con OpenVPN en el servidor
Agregue las siguientes líneas al final de la configuración del servidor '/etc/openvpn/servidor.confusión' archivo.
cliente-conexión/etc/OpenVPN/Client-Connect.SH Client-Disconnect/Etc/OpenVPN/Client-Disconnect.mierda
Estos dos scripts construyen/destruyen el IPv6 Túnel cada vez que un cliente se conecta/desconecta.
Aquí está el contenido de la conexión del cliente.mierda.
#!/bin/bash baserange = "2a00: dd80: 003d: 000c" ifconfig $ dev up ifconfig $ dev agre $ baserange: 1001 :: 1/64 ip -6 vecino agregue proxy 2a00: dd80: 003d: 000c: 1001: : 2 Dev eth0 salida 0
Mi anfitrión me asigna IPv6 direcciones del 2a00: DD80: 003d: 000c ::/64 bloquear. Por lo tanto, uso
2a00: DD80: 003d: 000c Como el Baserange. Modifique este valor según lo que su anfitrión le ha asignado.
Cada vez que un cliente se conecta a OpenVPN, este script asigna la dirección 2a00: dd80: 003d: 000c: 1001 :: 1 como el IPv6 dirección del toque interfaz del servidor.
La última línea establece el descubrimiento de vecinos para nuestro túnel. He agregado el IPv6 Dirección del lado del cliente toque conexión como dirección proxy.
Aquí está el contenido de disconín de cliente.mierda.
#!/bin/bash BaseRange = "2a00: dd80: 003d: 000c"/sbin/ip -6 addr del $ baserange :: 1/64 dev $ dev salir 0
Esto solo elimina el IPv6 Dirección de túnel del servidor, cuando el cliente se desconecta. Modificar el valor de Baserange según corresponda.
Hacer que los scripts sean ejecutables.
# CHMOD 700/ETC/OPERVPN/CLIENTE-CONNECT.SH # CHMOD 700/ETC/OPERVPN/CLIENTE-DISCONNECT.mierda
Agregue las siguientes entradas a '/etc/rc.local '(también puede modificar los sysctls apropiados en /etc/sysctl.confusión).
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/todos/reenviar/etc/ en eso.d/firewall stop &&/etc/init.D/Firewall Start
Estas entradas activan el descubrimiento y el reenvío de los vecinos. También he agregado un firewall.
Crear '/etc/init.d/firewall'Y pon el siguiente contenido.
#!/bin/sh # descripción: firewall ipt =/sbin/iptables ipt6 =/sbin/ip6tables Case "$ 1" en inicio) $ IPT -f Enume $ IPT -A Entrada -i ETH0 -M Estado -Estado establecido, relacionado -Relacionado -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 Aceptar $ IPT -A Forward -M State -Estado establecido, Relacionado -j Aceptar $ Ipt -t Nat -f Posttrouting $ Ipt -t nat -a posterior a -s 10.8.0.0/24 -O ETH0 -J MASQUERADA $ IPT -A INPUT -I ETH0 -J Drop $ IPT6 -F INPUT $ IPT6 -A INPUT -I ETH0 -M STATE -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 Aceptar $ IPT6 -A Entrada -i Eth0 -j Drop salida 0 ;; parar) $ IPT -f $ IPT6 -F EXIT 0 ;; *) Uso de echo ": /etc /init.d/firewall start | stop "salida 1 ;; esac
Correr '/etc/rc.local'Y comienza el firewall.
# 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/cliente.confusión'.
# Crear el túnel IPv6 Up/etc/OpenVPN/UP.sh down/etc/openvpn/down.SH # necesita esto, así que cuando el cliente se desconecta, le indica al servidor explícito-exit-notify
Los scripts hacia arriba y hacia abajo construyen/destruyen los puntos finales del cliente IPv6 de la conexión TAP0 del cliente cada vez que un cliente se conecta/desconecta a o desde el servidor OpenVPN.
Aquí está el contenido de UP.mierda.
#!/bin/bash ipv6base = "2a00: dd80: 3d: c" ifconfig $ dev up ifconfig $ dev add $ ipv6base: 1001 :: 2/64 ip -6 ruta agregue predeterminado a través de $ ipv6base: 1001 :: 1 Salir 0
El script asigna la dirección IPv6 2a00: dd80: 3d: c: 1001 :: 2 Como el cliente IPv6 de la dirección y establece la ruta IPv6 predeterminada a través del servidor.
Modificar IPv6Base para que sea lo mismo que Baserange en la configuración del servidor.
Aquí está el contenido de Down.mierda.
#!/bin/bash ipv6base = "2a00: dd80: 3d: c"/sbin/ip -6 addr del $ ipv6base :: 2/64 dev $ dev/sbin/ip enlace set dev $ dev down/sbin/ip ruta del ::/0 a través de $ ipv6base :: 1 salida 0
Esto solo elimina la dirección IPv6 del cliente y derriba la ruta IPv6 cuando el cliente se desconecta del servidor.
Modificar IPv6Base para que sea lo mismo que Baserange en la configuración del servidor y haga que el script sea ejecutable.
# CHMOD 700/ETC/OPERVPN/UP.sh # chmod 700/etc/openvpn/down.mierda
Opcionalmente, modificar '/etc/resolv.conf 'y agregue los servidores de nombres IPv6 de Google para la resolución DNS.
Nameserver 2001: 4860: 4860 :: 8888 Nameserver 2001: 4860: 4860 :: 8844
Reinicie OpenVPN en el servidor y luego conéctelo desde el cliente. Deberías estar conectado. Visite Test-IPV6.com para ver que su conectividad IPv6 sobre OpenVPN está funcionando.
Enlaces de referencia
Página de inicio de OpenVPN
Fuente: Stavrovski
- « Nautilus Terminal Un terminal integrado para el navegador de archivos Nautilus en GNOME
- Más profundamente en complejidades de funciones con scripting de shell - Parte VII »