Este equipo de especialistas pasados varios días de trabajo y recopilación de de información, hemos dado con la solución, queremos que resulte de gran utilidad en tu plan.
Solución:
La configuración mínima absoluta del servidor
Lo que sigue son las instrucciones mínimas absolutas que necesita para obtener un servidor VPN PPTP básico que se ejecute en Ubuntu. A continuación, los clientes podrán realizar una VPN en el servidor y enrutar su tráfico de Internet para que pase a través del servidor a Internet. Como siempre, consulte la documentación completa para comprender qué está haciendo todo.
Primero, instale el software requerido:
sudo apt-get install pptpd
En segundo lugar, habilite ip_forward
en el kernel para IPv4 descomentando la línea asociada en /etc/sysctl.conf:
sudo sed -i -r 's/^s*#(net.ipv4.ip_forward=1.*)/1/' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p
En tercer lugar, habilite NAT (si aún no está habilitado) para que los usuarios de la red VPN privada puedan tener sus paquetes enrutados a Internet:
OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*devs+(S+).*/1/'`
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "$i$CMDn" /etc/rc.local
Nota: Esta guía asume que no tiene un firewall configurado en el servidor. Si tiene un firewall en el servidor, como UFW, consulte la documentación correspondiente.
Cuarto, para cada usuario de VPN, cree una cuenta en el archivo. / etc / ppp / chap-secrets. Reemplazar $USER
con el nombre de usuario real que desea utilizar para ese usuario de VPN.
KEY=`head -c 20 /dev/urandom | sha1sum | nawk 'print $1'`
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets
Finalmente, estás listo para …
Configurar el cliente
En el subprograma de Network Manager, seleccione Conexiones VPN → Configurar VPN, luego haga clic en Agregar. En la siguiente pantalla, seleccione PPTP para el tipo de VPN, luego haga clic en Crear.
En esta ventana, ingrese el nombre de host o IP de su servidor junto con el nombre de usuario y key que agregaste al / etc / ppp / chap-secrets archivo en el servidor.
Ahora haga clic en Avanzado.
En esta ventana, habilite “Usar cifrado punto a punto (MPPE)” y seleccione 128 bits seguridad. Deshabilitar el uso de MSCHAP autenticación (dejar MSCHAPv2 activado).
Finalmente, haga clic en OK y luego Ahorrar para cerrar la ventana anterior.
Ahora puede probar la conexión VPN yendo al subprograma Network Manager → Conexiones VPN y seleccionando la conexión que acaba de crear. Asegúrese de recibir un mensaje que diga que la conexión VPN fue exitosa, luego navegue a un sitio web de verificación de IP para verificar que su IP ahora aparezca como la IP del servidor.
Si recibe un mensaje que dice que la conexión VPN al servidor falló: primero verifique que ingresó correctamente la configuración del cliente; segundo, verifique que el cliente tenga conectividad de red al puerto TCP 1723 en el servidor; finalmente, verifique el archivo de registro / var / log / messages en el servidor para obtener más pistas. Si su conexión VPN tiene éxito, pero posteriormente no puede navegar a ningún sitio web desde el cliente, consulte esta guía de diagnóstico increíblemente útil en el sitio web pptpd.
Notas
Si la red local a la que está conectado utiliza las subredes 192.168.0.0/24 y 192.168.1.0/24, tendrá problemas porque eso es lo que utiliza el servidor PPTP de forma predeterminada. Tendrá que configurar PPTP para usar diferentes subredes en pptpd.conf.
Es posible que desee realizar muchos otros cambios de configuración. Por ejemplo, todas sus búsquedas de nombres de dominio se seguirán consultando utilizando su servidor DNS local en lugar de pasar por el servidor PPTP. Tómese el tiempo para leer la documentación completa para descubrir cómo cambiar esta configuración y muchas otras.
Este tutorial que escribí lo guiará. Debería ayudarlo a evitar errores comunes que cometen las personas que usan VPS.
Primero inicie sesión en su panel VPS y habilite TUN / TAP y PPP. Si no tiene esta opción, comuníquese con su ISP para que la habilite.
Primero instale este paquete:
sudo apt-get install pptpd
Como no queremos que nuestra VPN sea pública, vamos a crear usuarios.
Estoy usando VI, puedes usar NANO o cualquier editor de texto que quieras
vi /etc/ppp/chap-secrets
El formato es
[username] [service] [password] [ip]
Ejemplo
john pptpd johnspassword *
*
significa que se permite el acceso desde todas las direcciones IP, especifique la IP solo si tiene static uno.
Editar la configuración de PPTPD
vi /etc/pptpd.conf
Busque la configuración de localip y remoteip. Eliminar el #
(carácter de comentario) para ambos para que se reconozcan realmente estos ajustes. Cambie localip a la IP de su servidor. Si no conoce la IP de su servidor, puede buscar en el panel de control de su VPS.
El RemoteIP es básicamente el rango de IP que se asignarán a los clientes (computadoras que están conectadas a su VPN). Por ejemplo, si desea el siguiente rango de IP: 192.168.120.231-235, su servidor VPN podrá asignar 192.168.120.232, 192.168.120.233, 192.168.120.234 y 192.168.120.235 a los clientes. Depende de usted lo que desee utilizar para este campo.
Personalmente elijo esta configuración:
localip 10.0.0.1
remoteip 10.0.0.100-200
Entonces puedo conectar unos 200 clientes.
Agregar servidores DNS a /etc/ppp/pptpd-options
ms-dns 8.8.8.8
ms-dns 8.8.4.4
Puede agregar esto al final del archivo o encontrar esas líneas, descomentarlas y cambiar las IP a su DNS público deseado.
Configurar reenvío
Es importante habilitar el reenvío de IP en su servidor PPTP. Esto le permitirá reenviar paquetes entre IP públicas y privadas que configure con PPTP. Simplemente edite /etc/sysctl.conf y agregue la siguiente línea si aún no existe allí:
net.ipv4.ip_forward = 1
Para hacer cambios activos, ejecute sysctl -p
Cree una regla NAT para iptables
Esta es una parte importante, si está usando VPS probablemente no use eth0 sino venet0 en su lugar, debe verificar qué interfaz tiene ejecutando ifconfig
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save
Si también desea que sus clientes PPTP se comuniquen entre sí, agregue las siguientes reglas de iptables:
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 eth0 -j ACCEPT
Nuevamente, debe reemplazar eth0 con venet0 si está usando VPS.
Recomendaría correr
sudo iptables-save
Ahora su servidor PPTP también actúa como enrutador.
Puede ejecutar este comando para que el servicio VPN se inicie en el arranque
systemctl enable pptpd
Recomiendo instalar iptables-persistent para que las reglas permanezcan incluso después del reinicio
sudo apt-get install -y iptables-persistent
Siga este tutorial: Servidor VPN PPTP con Ubuntu
En la selección de software, seleccione el servidor OpenSSH, para la gestión remota de la máquina, y la selección manual del paquete para el paquete pptpd real. Si desea más servicios, por ejemplo, si desea utilizar la computadora también como servidor web, por supuesto, puede seleccionar el software adicional. Por razones de seguridad, generalmente aconsejo a las personas que solo ejecuten uno desde el servicio accesible desde el exterior por máquina si se configura en un entorno crítico, pero realmente eso depende de usted.
En la selección manual, navegue hasta paquetes no instalados> net donde encontrará pptpd. Selecciónelo y presione ‘g’ dos veces para instalar el paquete.
Deje que finalice la instalación y reinicie su sistema.
SSH en su máquina recién configurada y ejecute
sudo aptitude update && sudo aptitude safe-upgrade
primero en actualizar todos los paquetes. Reinicie si es necesario.Abra el archivo pptpd.conf:
sudo nano /etc/pptpd.conf
Ajuste la configuración de IP en la parte inferior según sus necesidades. Bajo IP local, ingresa la IP en la red local de su servidor VPN (si no lo sabe, escriba ‘sudo ifconfig’ y le mostrará sus interfaces de red y las IP asignadas). Para el caso, recomiendo configurar un static IP en / etc / network / interfaces o en la configuración de su enrutador.Si lo desea, puede cambiar el nombre de host en
/etc/ppp/pptpd-options
Especifique los nombres de usuario y las contraseñas a las que desea dar acceso a su vpn:
sudo nano /etc/ppp/chap-secrets
. Si cambió el nombre de host en el paso anterior, asegúrese de escribir el mismo nombre de host ahora enserver
Ejemplo:
# client server secret IP addresses eubolist pptpd myübersecretpassword *
Como en pptp, la seguridad del archivo de claves no depende únicamente de la contraseña. Es por eso que debe elegir una contraseña larga (por ejemplo, 32 caracteres) y aleatoria. Puede generar dicha contraseña aquí.
Ahora necesitamos configurar ip-masquerading:
sudo nano /etc/rc.local
Agregue las siguientes líneas encima de la línea que dice ‘salida 0’
# PPTP IP forwarding iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Opcionalmente, recomiendo proteger su servidor SSH contra ataques de fuerza bruta:
#SSH Brute Force Protection iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j
SOLTAR
(también debe insertarse encima de ‘salida 0’)
Es posible que deba cambiar ‘eth 0’ a otra interfaz, según la interfaz que esté configurada para conectarse a Internet en su máquina.
Por último, descomente esta línea en
/etc/sysctl.conf
:net.ipv4.ip_forward=1
Reiniciar
Si su servidor vpn no se conecta directamente a Internet, es posible que deba reenviar el puerto 1723 TCP y GRE a la IP LAN de su servidor vpn. Consulte el manual de su enrutador o visite portforward.com para obtener instrucciones específicas del proveedor. Nuevamente, es posible que deba asignar un static
ip en/etc/network/interfaces
.
Si sostienes alguna sospecha y capacidad de aumentar nuestro reseña puedes dejar una acotación y con mucho placer lo analizaremos.