La forma más fácil de configurar Ubuntu como un servidor VPN

68

Sé que hay muchos tutoriales en la red para configurar el cliente y el servidor VPN.

Si encuentra uno que sea simple / corto , solo estoy interesado en la parte del servidor.

Para el cliente, usaré OS X, así que prefiero una solución que use L2TP over IPseco PPTPporque supongo que Cisco IPsec costaría algo.

No quiero pasar muchas horas configurándolo. Ya sabes, tal vez alguien ya hizo un script de configuración :)

Nota: Estoy usando una micro instancia EC2 que ejecuta Ubuntu 12.04 en ella.

Sorin
fuente
3
Nota: CISCO IPSec se puede lograr a través de StrongSwan y muchas configuraciones, pero es complicado. PPTP ya no es seguro. Y L2TP sobre IPSec requiere la configuración de L2TP e IPSec. Elija a su gusto, aunque mi respuesta explica PPTP
Thomas Ward

Respuestas:

24

ACTUALIZACIÓN : a partir de Sierra, macOS ya no es compatible con PPTP vpn. Esta respuesta no es válida para clientes macOS Sierra y más allá.

PPTP a través de PoPToP es fácil

  1. apt-get install pptpd
  2. edite /etc/pptpd.confy configure la opción remoteip en un rango en su red que NO sea atendido por su servidor DHCP.
  3. editar /etc/ppp/chap-secretsy agregar un nombre de usuario y contraseña

p.ej

vpnuser pptpd vpnpassword *

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

Jay _silly_evarlast_ Wren
fuente
También me pregunto qué valores localip y remoteip son los más seguros, teniendo en cuenta que me voy a conectar a este servidor desde cualquier ubicación. Definitivamente los valores predeterminados con 192.168.0.y 192.168.1.son probablemente uno de los peores posibles.
Sorin
12 de mayo 13:28:06 zork pppd [9447]: Complemento /usr/lib/pptpd/pptpd-logwtmp.so cargado. 12 de mayo 13:28:06 zork pppd [9447]: pppd 2.4.5 iniciado por root, uid 0 12 de mayo 13:28:06 zork pppd [9447]: Uso de la interfaz ppp0 12 de mayo 13:28:06 zork pppd [9447 ]: Connect: ppp0 <--> / dev / pts / 3 12 de mayo 13:28:36 zork pppd [9447]: Hangup (SIGHUP) 12 de mayo 13:28:36 zork pppd [9447]: módem hangup 12 de mayo 13 : 28: 36 zork pppd [9447]: Conexión terminada. 12 de mayo 13:28:36 zork pppd [9447]: Salir. ¡Aún no funciona! Su guía está incompleta (todavía);)
sorin
Sí, esto no funciona.
bkerensa
1
no funcionó para mí
Tyler Gillies
@SorinSbarnea esos ips son privados y nunca pasan por Internet, así que no sé qué quieres decir con "más seguro". Tendrás mejor suerte si no tienen el mismo rango de IP que el café o el lugar de trabajo desde el que te estás conectando. Pruebe 192.168.42. * :)
Jay _silly_evarlast_ Wren
86

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

Usé esta guía para configurar un servidor VPN PPTP en mi servidor Ubuntu 12.04.


Sin embargo, para resumir los puntos principales en el enlace:

1: Instalar pptpdy ufw. iptablespuede usarse en lugar de ufw, pero por razones de facilidad, ufwes mejor si no lo sabe iptables.

sudo apt-get install pptpd ufw

2: Abra los puertos necesarios. La guía sugiere 22 (SSH) y 1723 para el pptp vpn.

sudo ufw permite 22
sudo ufw permite 1723
sudo ufw enable

3: Editar /etc/ppp/pptpd-options. Abra el archivo con su editor favorito (el mío es nano, así que el comando para mí es sudo nano /etc/ppp/pptpd-options), y comente estas líneas colocando un #antes, si desea que esto funcione universalmente en todos los sistemas operativos:

papilla
chatarra
rechazar-mschap

Puede comentar esta línea si desea deshabilitar el cifrado: require-mppe-128

4: Mientras edita /etc/ppp/pptpd-options, agregue servidores DNS para la VPN. Este ejemplo usa servidores OpenDNS:

ms-dns 208.67.222.222
ms-dns 208.67.220.220

5: Editar /etc/pptpd.conf. Abra el archivo con su editor favorito (el mío es nano, así que el comando para mí es sudo nano /etc/pptpd.conf). Debe agregar las IP de VPN locales para el sistema, así que agregue:

localip 10.99.99.99
RemoteIP 10.99.99.100-199

Si su sistema es un VPS, use la IP pública para "localip". Si no está y está en una red local, use la IP de red de su computadora. ¡Use diferentes IP y rangos si estas IP existen en su subred! Si no conoce su IP pública de su VPS, búsquela ejecutandodig +short myip.opendns.com @resolver1.opendns.com

6: Editar /etc/ppp/chap-secrets. Abra el archivo con su editor favorito (el mío es nano, así que el comando para mí es sudo nano /etc/ppp/chap-secrets) y agregue los datos de autenticación.
El formato para /etc/ppp/chap-secretses:

[Nombre de usuario] [Servicio] [Contraseña] [Dirección IP permitida]

Un ejemplo sería: sampleuser pptpd samplepassword *

7: reiniciar pptpd. Ejecute este comando en la terminal:sudo /etc/init.d/pptpd restart

8: Editar /etc/sysctl.conf. Abra el archivo con su editor favorito (el mío es nano, así que el comando para mí es sudo nano /etc/sysctl.conf). Descomente la siguiente línea (quitando la que se encuentra #al principio) en /etc/sysctl.conf: net.ipv4.ip_forward=1
Vuelva a cargar la configuración: sudo sysctl -p

9: Este paso asume que tienes ufw.
Edite /etc/default/ufwy cambie la opción DEFAULT_FORWARD_POLICYde DROPaACCEPT

10: Este paso asume que tienes ufw.
Edite /etc/ufw/before.rulesy agregue lo siguiente al principio /etc/ufw/before.ruleso justo antes de las *filterreglas (recomendado):

# Reglas de la tabla NAT
* nat

: ACEPTACIÓN POSTROUTING [0: 0]
# Permitir tráfico directo a eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Procesar las reglas de la tabla NAT
COMETER

Si tiene la versión 3.18 del kernel y más reciente (puede verificar esto ejecutando uname -r), también agregue las siguientes líneas antes de la # drop INVALID packets ...línea:

-A ufw-before-input -p 47 -j ACCEPT

11: Reinicie el firewall, para actualizar los conjuntos de reglas y aplicar las reglas que agregamos a los /etc/ufw/*.rulesarchivos: sudo ufw disable && sudo ufw enable

Advertencia: si tiene otros puertos que necesita abrir, como HTTPS si su servidor aloja un sitio web, debe agregar individualmente esos puertos a la lista permitida consudo ufw allow <PORT>

Thomas Ward
fuente
44
Ahora qué diablos hago: D Lo tengo funcionando en el servidor, no tengo idea de cómo conectarme a él jajaja
Jamie Hutber 02 de
1
@Jamie Hay un montón de otros documentos y entradas aquí en Ask Ubuntu para conectarse a una VPN sin mencionar la documentación dentro de Network Manager. Esta pregunta solo cubre la configuración de la VPN y el lado del servidor. NO la parte de conexión a ella.
Thomas Ward
: D respuesta súper rápida: DI creo que podría haberlo resuelto, debo haber configurado algo incorrectamente. Dicho esto, ufw está activo y permite la mayoría de los puertos.
Jugaré
@Jamie Puedo darte comandos de iptables para usar cuando llegue a casa, prefieres iptables a ufw.
Thomas Ward
1
iptables / netfilter se usa con ufw, ufw es más agradable con el manejo de reglas y comandos para los usuarios finales.
Thomas Ward
19

PPTP VPN en Ubuntu 12.04 Ejemplo

Aquí hay un tutorial rápido para configurar un servidor VPN PPTP básico en Ubuntu 12.04.

Instalar paquetes necesarios

                          sudo apt-get install ppp pptpd

Configurar rangos de IP PPTP en el servidor

                          sudo nano /etc/pptpd.conf

Agregue las siguientes líneas al final

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

Esto configura el servidor PPTP para usar IP 10.89.64.1 mientras distribuye el rango de IP 10.89.64.100 a 10.89.64.150 a clientes PPTP. Cambie estos como desee siempre que sean direcciones IP privadas y no entren en conflicto con las direcciones IP que ya utiliza su servidor.

Configure los servidores DNS para usar cuando los clientes se conectan a este servidor PPTP

                          sudo nano /etc/ppp/pptpd-options

Modificar O Agregar las siguientes líneas al final

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

Crear un usuario PPTP

                          sudo nano /etc/ppp/chap-secrets

Agregue una línea en la parte inferior para que su archivo se vea así:

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

Configurar NAT para conexiones PPTP

Sin este paso, podrá conectarse, pero su conexión no podrá cargar ninguna conexión web desde este servidor.

                          sudo nano /etc/rc.local

Agregue lo siguiente a la parte inferior derecha antes de la línea "salir 0":

                          iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Suponiendo eth0, puede usar ifconfigpara verificar el nombre de la red.

Habilitar el vadeo IPv4:

                          sudo nano /etc/sysctl.conf

Descomente la siguiente línea:

                          net.ipv4.ip_forward=1

Luego vuelva a cargar la configuración:

                          sudo sysctl -p

Reinicie su VPS y todo debería funcionar a la perfección desde cualquier cliente PPTP.


Configuración del lado del cliente

Para Mac, asegúrese de agregar la conexión PPTP VPN. Además de eso, solo necesita configurar la dirección del servidor, el nombre de la cuenta y la contraseña en la configuración de autenticación. No hay dolor aquí.

Para Linux, NetworkManager para agregar conexiones VPN. Asegúrese de haber agregado una conexión VPN PPTP. Y la configuración que uso está aquí:

Cómo depurar y arreglar la conexión de cliente PPTP / VPN

ingrese la descripción de la imagen aquí

Y para Windows

ingrese la descripción de la imagen aquí

Qasim
fuente
¿Este método también funciona en Ubuntu 12.04 sin servidor? ¿Qué número de IP debe usar el cliente para conectarse a esta red VPN?
Rasoul
Sí, también es para la edición que no es del servidor. Debe usar la ip del servidor en el cliente para conectarse a vpn @Rasoul
Qasim
No funciona, servidor Ubuntu 13.04. Cliente atascado en busca de DNS.
knutole
@knutole comprueba que tus reglas de IPTables estén enrutadas correctamente. Asegúrese de tener la interfaz en0 y de que no se llame otra cosa. Debería ver una dirección IP pública en la lista.
Nick Woodhams el
ok, entonces, en tu ejemplo, ¿qué ip es ip del servidor? 10.89.64.1? Luego, en el administrador de red de Ubuntu, ¿el cliente enumeraría 10.89.64.1 como Gateway?
dranxo
9

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, solo son direcciones IP para su interfaz ppp0).

localip 10.0.0.1
remoteip 10.0.0.100-200

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

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Habilitar el reenvío de IP

sudo vim /etc/sysctl.conf

Descomenta esta línea

net.ipv4.ip_forward=1

Guardar cambios

sudo sysctl -p /etc/sysctl.conf

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

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *

Reiniciar PPTP

service pptpd restart

Ejecute ifconfigy encuentre su interfaz predeterminada, en mi caso era br0 (la cambié para permitir que las máquinas virtuales en mi máquina física compartan la interfaz. La suya probablemente será en0 )

ingrese la descripción de la imagen aquí

Copia de seguridad de iptables

iptables-save > ~/iptables.save

Ahora haga que sus cambios de iptables usen su interfaz predeterminada como lo revela ifconfig.

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface br0 -j ACCEPT

Para mantenerlo persistente cuando se reinicia el sistema;

sudo apt-get install iptables-persistent

Agregar VPN en la computadora cliente (Mac)

Preferencias del sistema> Red> [+]> VPN

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Luego elija Configuración de autenticación> Contraseña, luego complete su contraseña aquí

ingrese la descripción de la imagen aquí

Nick Woodhams
fuente
7

Aquí hay un proyecto bastante dulce que elimina el dolor de OpenVPN:

https://github.com/Nyr/openvpn-install

Simplemente ejecútelo e instalará vpn abierto y configúrelo. Al final, aparecerá un archivo client.ovpn que puede usar para configurar su cliente. Parece funcionar bastante bien.

HappyCoder86
fuente
Santa vaca Simplemente funciona Me pregunto por qué no tiene un reconocimiento generalizado.
Marcus