Tutorial para configurar servidores vpn en ubuntu. La forma más fácil de configurar Ubuntu como servidor VPN. Creación de una autoridad de certificación

If ($answer_counter == 1): ?> endif; ?>

ACTUALIZAR. En cuanto a Sierra, macOS ya no es compatible con PPTP vpn. Esta respuesta no es válida para clientes macOS Sierra y otros.

PPTP sobre PoPToP es fácil

  1. apt-get install pptpd
  2. edite /etc/pptpd.conf y establezca la opción remoteip en un valor en su red que NO sea atendido por su servidor DHCP.
  3. edite /etc/ppp/chap-secrets y agregue nombre de usuario y contraseña

por ejemplo.

vpnuser pptpd vpncontraseña *

Eso es todo lo que se necesita para instalar pptp. Ahora pruébelo con su cliente OS X.

Respondido por Jay _silly_evarlast_ Wren el 06/04/2012 a las 23:24

ADVERTENCIA: ¡PPTP ES UN PROTOCOLO INSEGURO! No solo se ha violado el cifrado, sino que envía su autenticación en texto claro y se intercepta fácilmente. Se ha estimado que la cantidad de tiempo requerida para aplicar fuerza bruta a la contraseña es aproximadamente equivalente al tiempo requerido para aplicar fuerza bruta a una única clave DES. ¡Considere usar OpenVPN u otra arquitectura VPN en lugar de PPTP!

Respondido por Qasim el 10/06/2013 a las 16:09

Las otras respuestas en este hilo fueron solo respuestas parciales en mi caso. Esto es lo que funcionó para mí en Ubuntu 12.04.3

sudo apt-get install pptpd

Agregue lo siguiente a /etc/pptpd.conf: (La dirección IP no importa, estas son solo las direcciones IP para su interfaz ppp0).

localip 10.0.0.1 ip remota 10.0.0.100-200

Agregar servidores DNS a /etc/ppp/pptpd-options

ms-dns 8.8.8.8 ms-dns 8.8.4.4

Habilitar el reenvío de direcciones IP

sudo vim /etc/sysctl.conf

Descomentar esta línea

sudo sysctl -p /etc/sysctl.conf

Edite /etc/ppp/chap-secrets, agregue el usuario de VPN en este formato:

# Secretos para autenticación usando CHAP # cliente servidor direcciones IP secretas nombre de usuario pptpd supersecretpassword *

Reiniciar PPTP

Reinicio del servicio pptpd

Ejecute ifconfig y encuentre su interfaz predeterminada, en mi caso fue br0(Lo cambié para permitir que las VM en mi máquina física compartan la interfaz. Probablemente será en0)

copia de seguridad de iptables

iptables-guardar > ~/iptables.guardar

Ahora haga que los cambios de iptables usen su interfaz predeterminada como se muestra en ifconfig.

Configuración de una conexión VPN en Debian

Aquí hay un ejemplo de cómo configurar una conexión VPN para Debian Linux a través de la línea de comandos. Pero no será menos útil para los propietarios de distribuciones basadas en Debian, por ejemplo, Ubuntu.

  1. Primero necesitas el paquete pptp:
    # apt-get install pptp-linux
  2. Edite (o cree, si no existe) el archivo /etc/ppp/options.pptp. Debe contener los siguientes parámetros:
    cerrar
    noauth
    nobsdcomp
    nodeflate
  3. A continuación, debe agregar una línea como esta al archivo /etc/ppp/chap-secrets:
    “nombre de usuario” PPTP “contraseña” *
  4. Cree un archivo /etc/ppp/peers/XXX (XXX es el nombre de la red). Ingrese lo siguiente en él:
    pty "pptp vpn.XXX.ru --nolaunchpppd"
    nombre "nombre de usuario"
    nombre remoto PPTP
    archivo /etc/ppp/options.pptp
    Ruta por defecto
    "nombre de usuario" y "contraseña" deben reemplazarse con su nombre de usuario y contraseña sin comillas, como se especifica en su contrato. vpn.XXX.ru - dirección del servidor vpn - pregunte a su proveedor.
  5. Para reemplazar automáticamente la ruta predeterminada, cree el archivo /etc/ppp/ip-up.d/routes-up:
    # su toque /etc/ppp/ip-up.d/routes-up
    # su chown a+x /etc/ppp/ip-up.d/routes-up

    E ingrese lo siguiente en él:
    #!/bin/sh
    /sbin/ruta por defecto
    /sbin/route agregar dev predeterminado ppp0
    Cree el archivo /etc/ppp/ip-down.d/routes-down:
    # su toque /etc/ppp/ip-down.d/routes-down
    # su chown a+x /etc/ppp/ip-down.d/routes-down
    E ingrese lo siguiente en él:
    #!/bin/sh
    /sbin/ruta por defecto
    /sbin/route agregar dev predeterminado eth0

  6. Ahora puedes conectarte con el comando:
    # su pon XXX
    Para obtener información detallada sobre el proceso de conexión, escriba:
    # su pon XXX volcado de depuración logfd 2 nodetach
    Puede verificar si está conectado a la VPN escribiendo el comando ifconfig. Si hay una sección ppp0 en su salida, entonces está conectado y puede comenzar a trabajar con Internet. Para desactivar, presione ctrl+c, o escriba:
    # su poff XXX
  7. Para que su computadora reciba rutas de nuestro servidor, las siguientes líneas deben estar presentes en el archivo /etc/dhcp3/dhclient.conf:
    #
    opción rfc3442-classless-static-routes código 121 = matriz de número entero sin signo 8;
    opción ms-classless-static-routes código 249 = matriz de enteros sin signo 8;
    #
    solicitar máscara de subred, dirección de transmisión, compensación de tiempo, enrutadores, nombre de dominio, servidores de nombre de dominio, búsqueda de dominio, nombre de host, servidores de nombre de netbios, alcance de netbios, interfaz-mtu, ruta estática , rfc3442-classless-static-routes, ms-classless-static-routes;
    #
  8. Para conectarse automáticamente a Internet cuando se inicia el sistema operativo, cree el archivo /etc/init.d/XXX
    # toque /etc/init.d/XXX
    # su chown a+x /etc/init.d/XXX
    # su ln -s /etc/init.d/XXX /etc/rc2.d/S99XXX
    Escribámoslo de la siguiente manera:
    #!/bin/sh
    su /usr/bin/ponXXX

En todos los comandos, XXX es el nombre de su red.

Una verdadera red virtual privada o red privada virtual (VPN) es un túnel conectado encriptado entre dos redes que conecta dos puntos confiables. Este no es el protocolo web HTTPS, que considera que todos los clientes son de confianza. Solo aquellos clientes que tienen claves de acceso especiales pueden conectarse a la VPN.

El concepto de VPN se ha estirado mucho en estos días, con la llegada de las redes virtuales privadas que confían en todos y la difusión de HTTPS. Muchas de las redes VPN son soluciones comerciales con un mínimo de configuración para brindar acceso remoto a los empleados. Pero no todos confían en estas decisiones. Una red virtual privada conecta dos redes en una, como la red de una oficina y la red doméstica de un empleado. El servidor VPN es necesario para que el servidor y el cliente puedan autenticarse entre sí.

Configurar la autenticación del servidor y del cliente requiere mucho trabajo y, por lo tanto, las soluciones comerciales con un mínimo de configuraciones pierden en este sentido. Pero en realidad no es tan difícil configurar un servidor OpenVPN. Necesitará dos nodos en diferentes redes para configurar un entorno de prueba, por ejemplo, puede usar varias máquinas virtuales o servidores reales. Como ya entendió, este artículo cubrirá la configuración de OpenVPN en Ubuntu para crear una red virtual privada completa.

Ambas máquinas deben tener instalado OpenVPN, es un programa bastante popular, por lo que puede instalarlo desde los repositorios oficiales. También necesitamos Easy-RSA para trabajar con claves secretas. Para instalar programas en Ubuntu, use el siguiente comando:

sudo apt install openvpn easy-rsa

Ambos paquetes deben instalarse tanto en el servidor como en el cliente. Serán necesarios para configurar el programa. La primera etapa del artículo de instalación y configuración de openvpn ya está completa.

Creación de una autoridad de certificación

Lo primero que debe hacer es configurar una infraestructura de clave pública adecuada en el servidor. Consideramos que el servidor es la máquina a la que se conectarán los usuarios. Tener su propia CA tiene varias ventajas, tendrá su propia CA lo que facilita la distribución y administración de claves. Por ejemplo, puede revocar certificados de cliente en el servidor. Además, ahora no es necesario almacenar todos los certificados de cliente, bastará con que la autoridad certificadora sepa que el certificado está firmado por CA. Además de un sistema de claves complejo, puede usar claves estáticas si solo desea otorgar acceso a algunos usuarios.

Tenga en cuenta que todas las claves secretas deben estar en un lugar seguro. En OpenVPN, la clave pública se llama certificado y tiene una extensión .crt, y la clave privada se llama clave, su extensión es .key.

Primero, cree una carpeta para almacenar los certificados Easy-RSA. De hecho, la configuración de OpenVPN se realiza manualmente, por lo que la carpeta se puede colocar en cualquier lugar:

sudo mkdir /etc/openvpn/easy-rsa

Luego copie todos los scripts easy-rsa necesarios en esta carpeta:

cd /etc/openvpn/easy-rsa/

sudo -i
# fuente ./vars
# ./limpiar todo
# ./construir-ca

Con el primer comando cambiamos a la consola en nombre del superusuario, con el segundo cargamos las variables de entorno desde el archivo ./vars. El comando ./clear-all crea la carpeta de claves si no existe y borra su contenido. Y el último comando inicializa nuestra autoridad de certificación. Ahora todas las claves necesarias han aparecido en la carpeta .keys:

Configuración de certificados de cliente

sudo cp -R /usr/share/easy-rsa /etc/openvpn/

Ahora necesitamos copiar el certificado, un archivo .crt, a la carpeta /etc/openvpn en todos los clientes. Por ejemplo, descarguemos este archivo para nuestro cliente usando scp:

sudo scp usuario@host: /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys

Solo ahora puede crear su clave privada basada en el certificado CA:

cd /etc/openvpn/easy-rsa/

sudo -i
# fuente ./vars
# build-req Sergio

Tenga en cuenta que ca.crt debe estar en la carpeta de claves, de lo contrario, nada funcionará. Ahora la utilidad creará una clave, en función de la cual puede conectarse al servidor OpenVPN, pero aún debe firmarla en el servidor. Envíe el archivo .csr resultante al servidor usando el mismo scp:

scp /etc/openvpn/easy-rsa/keys/Sergiy.csr usuario@host:~/

Luego, en el servidor en la carpeta /etc/openvpn/easy-rsa, debe ejecutar el comando de firma de certificado:

./sign-req ~/Sergiy

La firma del certificado debe ser verificada. Luego, el programa informará que ha sido firmado y agregado a la base de datos. Aparecerá un archivo .crt en la carpeta con el certificado csr, que debe devolverse a la máquina cliente:

sudo scp usuario@host:/home/Sergiy.crt /etc/openvpn/easy-rsa/keys

Solo después de eso, el servidor y el cliente tienen todas las claves necesarias para conectarse y establecer comunicación. Quedan algunos ajustes más. Si planea usar el cifrado TLS, entonces necesita crear un conjunto de datos Diffie-Huffman en el servidor, para esto use el comando:

Configuración de OpenVPN

Ahora configurando el servidor OpenVPN. De forma predeterminada, no hay nada en la carpeta de archivos de configuración de OpenVPN. Debe crearlos usted mismo, según lo que planee configurar, servidor o cliente. El archivo de configuración de OpenVPN requerido se puede encontrar en /usr/share/doc/openvpn/examples/sample-config-files/. Primero, creemos un archivo de configuración para el servidor:

zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Aquí debe ajustar algunas configuraciones:

Puerto y prototipo- puerto y protocolo en el que funcionará el programa;

puerto 1194
prototipo upp

Todas las claves creadas deben registrarse en el archivo de configuración. Nuestras claves se almacenan en /etc/openvpn/easy-rsa/keys:


certificado /etc/openvpn/easy-rsa/keys/ca.crt
clave /etc/openvpn/easy-rsa/keys/ca.key
dh /etc/openvpn/easy-rsa/keys/dh.pem

Configuramos un rango de direcciones para la red virtual, nuestro servidor estará disponible en el primero de ellos: 10.8.0.1:

servidor 10.8.0.0 255.255.255.0

Después de completar la configuración, guarde los cambios en el archivo, puede pegar toda esta configuración usted mismo o editar el archivo con un ejemplo. Configuración del servidor de trabajo listo:

puerto 1194
prototipo upp
comp lzo
melodía de desarrollo
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
certificado /etc/openvpn/easy-rsa/2.0/keys/ca.crt
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
topología de subred
servidor 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf

Puede crear varios archivos de configuración de clientes para conectarse a diferentes servidores. Abra el archivo de configuración y cambie los siguientes parámetros en él:

remoto es la dirección de su servidor OpenVPN, la dirección y el puerto deben coincidir con los configurados en el servidor, por ejemplo:

remoto 194.67.215.125 1194

California- la clave que recibió de la autoridad de certificación, la ubicamos en la carpeta /etc/openvpn/.

certificado y clave- estas son las claves públicas y privadas del cliente, con la ayuda de ellas se conectará al servidor. Como recordará, los guardamos en la carpeta /etc/openvpn/easy-rsa/keys/.

ca /etc/openvpn/easy-rsa/keys/ca.crt

El resto de la configuración se puede dejar como está. Aquí está el archivo de configuración completo, que puede copiar:

cliente
melodía de desarrollo
prototipo upp
remoto 194.67.215.125 1194
resolver-reintentar infinito
sin ataduras
clave persistente
persistir-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
certificado /etc/openvpn/easy-rsa/keys/Sergiy.crt
clave /etc/openvpn/easy-rsa/keys/Sergiy.key
tls-auth ta.clave 1
comp lzo
verbo 3

Guarde la configuración, el cliente ahora está listo para conectarse. Tenga en cuenta que los archivos de configuración deben coincidir tanto como sea posible, la ausencia de ciertas opciones en uno de los archivos puede generar errores. Esto no significa que los archivos serán idénticos, pero los parámetros básicos de openvpn deberían ser los mismos. Todo lo que tiene que hacer es ejecutar OpenVPN en esta máquina usando este archivo de configuración:

openvpn /etc/openvpn/client.conf

Listo, ahora todo funciona, si ejecutas ifconfig, verás que se ha agregado la interfaz tun0:

También puede intentar hacer ping a la dirección 10.8.0.1, esta es la dirección que configuramos para nuestro servidor OpenVPN, los paquetes de ping se enviarán normalmente. Si los paquetes no llegan, o algo más no funciona, preste atención a la salida de ambos programas, puede haber algunos errores o advertencias, también asegúrese de que el firewall del servidor permita el acceso desde el exterior a través de udp en el puerto 1194. Puede También inicie el servidor o el cliente configurando el nivel de verbosidad en la configuración al verbo máximo 9. Muy a menudo, esto ayuda a comprender por qué algo no funciona. Pero aún no puede enrutar el tráfico a través del túnel. Para hacer esto, debe habilitar el reenvío y agregar algunas reglas de iptables. Primero, permitimos el tránsito de paquetes en el servidor:

sysctl -w net.ipv4.ip_forward=1

Luego agregue estas reglas. Permitimos que todos se conecten a nuestro servidor:

iptables -A ENTRADA -p udp --dport 1194 -j ACEPTAR

Permitimos a los usuarios de OpenVPN acceder a Internet:

iptables -I FORWARD -i tun0 -o eth0 -j ACEPTAR
# iptables -I FORWARD -i eth0 -o tun0 -j ACEPTAR
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

conclusiones

En este artículo, analizamos cómo se instala y configura OpenVPN Ubuntu, así como también cómo configurar openvpn para que funcione con autenticación de clave. La organización de redes virtuales privadas puede ser muy útil no solo en organizaciones, sino también, digamos, para intercambiar datos entre tus dos equipos o para mejorar la seguridad de la red.

Instrucción

Compruebe si existe compatibilidad con PPP en el kernel de su sistema operativo. La forma más sencilla de hacer esto es mirar los valores de las opciones con el prefijo CONFIG_PPP en el archivo de configuración del kernel actual. Por lo general, se instala en el directorio /boot y tiene un nombre que comienza con config. Averigüe el nombre de este archivo con el comando
ls /arranque
o
ls /arranque | conferencia grep
Imprime las líneas deseadas con el comando cat, filtrando con grep. Por ejemplo:
cat /boot/config-2.6.30-std-def-alt15 | grep PPP
Analiza líneas que contienen opciones CONFIG_PPP, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY. Si no están precedidos por el símbolo #, está disponible el soporte para la funcionalidad correspondiente (para valores de m, como módulo externo, para valores de y, incluidos en el kernel).

Compruebe si el software de cliente para establecer conexiones VPN está instalado en el sistema. El paquete requerido generalmente tiene un nombre que comienza con pptp. Use apt-cache con la opción de búsqueda para buscar el paquete deseado en los repositorios disponibles y rpm con la opción -qa para verificar si el paquete está instalado. Cuando se trabaja en un entorno gráfico, puede tener sentido utilizar programas como synaptic.

Instale el software que falta. Utilice administradores de paquetes adecuados (apt-get, rpm en la consola, synaptic en el entorno gráfico, etc.). Si ha instalado el paquete ppp con módulos del núcleo para admitir el protocolo adecuado, reinicie su computadora.

Intente configurar la VPN usando scripts de configuración como pptp-command o pptpsetup. A menudo se incluyen con el software del cliente para establecer conexiones VPN. Para obtener ayuda sobre los parámetros de la línea de comandos de estas utilidades, ejecútelas con la opción --help. Por ejemplo:
pptpsetup --ayuda
Si no se han instalado los scripts de configuración, continúe con el próximo paso para configurar manualmente la VPN.

Cree un directorio /etc/ppp y en él un archivo llamado chap-secrets. Abra el archivo en un editor de texto. Añádele una línea como esta:
CONTRASEÑA DEL SERVIDOR DE INICIO DE SESIÓN *
Los valores LOGIN y PASSWORD son el nombre de usuario y la contraseña. Deben ser proporcionados por el proveedor de servicios de acceso VPN. En lugar de SERVIDOR, especifique un nombre de conexión arbitrario o *.

Cree el directorio /etc/ppp/peers. Cree un archivo en él que tenga el mismo nombre que el valor del SERVIDOR del paso anterior (o un nombre arbitrario si se especificó *). Edite este archivo para agregar información como:
pty "SERVIDOR pptp --nolaunchpppd"
nombre INICIAR SESIÓN
SERVIDOR ipparam
SERVIDOR de nombre remoto
cerrar
noauth
nodeflate
nobsdcomp
Los valores LOGIN y SERVER aquí son los mismos que en el paso 5. Esto completa la configuración de VPN en Linux.

¿Quiere tener un acceso seguro a Internet desde su teléfono inteligente o computadora portátil cuando está conectado a una red insegura a través de Wi-Fi de hotel o cafetería? Una red privada virtual (VPN) le permite utilizar redes no seguras como si estuviera en una red privada. Todo su tráfico en este caso pasa por el servidor VPN.

En combinación con el uso de una conexión HTTPS, la configuración que se describe a continuación le permitirá proteger su información privada, como nombres de usuario y contraseñas, así como sus compras. Además, puede eludir las restricciones regionales y la censura, así como ocultar su ubicación y el tráfico HTTP sin cifrar de una red insegura.

Puede transferir un perfil desde su computadora a su teléfono conectando su dispositivo Android a su computadora a través de USB y copiando el archivo. También puede mover el archivo de perfil usando la tarjeta SD copiando el perfil a la tarjeta e insertando la tarjeta en el dispositivo Android.

Inicie la aplicación OpenVPN y haga clic en el menú para importar un perfil.

Compuesto

Para establecer una conexión, presione el botón Conectar. Se le preguntará si confía en la aplicación OpenVPN. Respuesta OK para establecer una conexión. Para detener la conexión, vaya a la aplicación OpenVPN y seleccione Desconectar.

Paso 13: Probar la conexión VPN

Después de que todo esté instalado y configurado, asegúrese de que todo funcione correctamente. Sin establecer una conexión VPN, abra un navegador y vaya a DNSLeakTest.

Este sitio devolverá la dirección IP que le asignó su ISP. Para verificar qué servidores DNS están en uso, haga clic en prueba extendida.

Ahora establezca una conexión usando su cliente VPN y actualice la página en su navegador. La dirección IP que se le ha dado debe ser completamente diferente. Ahora usa esta nueva dirección IP para todos en Internet. Hacer clic prueba extendida de nuevo para comprobar la configuración de DNS y asegurarse de que ahora está utilizando el servidor DNS de su VPN.

Paso 14: Revocar certificados de cliente

De vez en cuando, es posible que deba revocar el certificado del cliente para evitar el acceso al servidor VPN

Para hacer esto, vaya al directorio de su autoridad de certificación e ingrese los comandos:

  • cd ~/openvpn-es
  • variables de origen
  • ./revocar-cliente completo3

La salida de este comando terminará con el error 23. Esto es normal. Como resultado del trabajo, se creará el archivo crl.pem en el directorio de claves con la información necesaria para revocar el certificado.

Mueva este archivo al directorio /etc/openvpn:

  • sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
  • sudo nano /etc/openvpn/server.conf

Agregue crl-verify al final del archivo. El servidor OpenVPN verificará la CRL cada vez que alguien establezca una conexión con el servidor.

/etc/openvpn/servidor.conf

crl-verificar crl.pem

Guarde y cierre el archivo.

Reinicie OpenVPN para completar el proceso de revocación del certificado:

Ahora el cliente no podrá conectarse al servidor OpenVPN usando el certificado anterior.

Para revocar certificados adicionales, complete los siguientes pasos:

    Genere una nueva lista de certificados revocados usando el comando source vars en el directorio ~/openvpn-ca y emitiendo el comando revoke-full con el nombre del cliente.

    Copie la nueva lista de certificados revocados en el directorio /etc/openvpn, sobrescribiendo así la lista anterior.

    Reinicie el servicio OpenVPN.

Este procedimiento se puede utilizar para revocar cualquier certificado que haya creado previamente.

Conclusión

¡Felicidades! Ahora puede acceder a Internet de forma segura, todo su tráfico está protegido contra escuchas telefónicas por parte de censores e intrusos.

Para configurar clientes adicionales, repita los pasos 6 y 11-13 para cada nuevo dispositivo. Para revocar el acceso de un cliente, utilice el paso 14 .