tutoriales.com

Configurando un Servidor VPN PPTP para Acceso Remoto Simple y Rápido

Este tutorial te guiará paso a paso en la configuración de un servidor VPN PPTP en un sistema Linux. Descubre cómo establecer una conexión remota simple y rápida para acceder a tu red privada, ideal para usuarios que buscan una solución VPN básica y fácil de implementar.

Principiante15 min de lectura9 views
Reportar error

🚀 Introducción a PPTP y su Utilidad

Bienvenido a este tutorial sobre cómo configurar un servidor VPN PPTP (Point-to-Point Tunneling Protocol). Si bien PPTP no es la opción más segura en el panorama actual de VPN, sigue siendo una de las maneras más rápidas y sencillas de establecer una conexión VPN básica. Es ideal para situaciones donde la seguridad extrema no es la preocupación principal, y la facilidad de implementación y la velocidad son prioritarias, como el acceso a recursos internos de tu red local desde fuera de casa, o para dispositivos que solo soportan este protocolo.

¿Qué es PPTP?

PPTP es uno de los protocolos VPN más antiguos y fue desarrollado por Microsoft. Opera en la capa de Aplicación del modelo OSI y utiliza un tunel GRE (Generic Routing Encapsulation) para encapsular los paquetes PPP. A pesar de su antigüedad, su sencillez lo hace compatible con una amplia gama de dispositivos y sistemas operativos, lo que facilita su configuración tanto en el servidor como en el cliente.

⚠️ Advertencia de Seguridad: Es crucial entender que PPTP tiene vulnerabilidades de seguridad conocidas y no se recomienda para proteger datos altamente sensibles. Si necesitas una VPN con alta seguridad para proteger tu privacidad o datos críticos, considera opciones como OpenVPN o WireGuard. Este tutorial es para fines educativos y para casos de uso específicos donde la seguridad *extrema* no es el factor limitante principal.

Casos de Uso Típicos de PPTP

Aunque no es para todo, PPTP puede ser útil en:

  • Acceso a recursos locales: Acceder a archivos, impresoras o dispositivos en tu red doméstica o de oficina desde una ubicación remota.
  • Dispositivos heredados: Conectar dispositivos antiguos que solo soportan PPTP.
  • Uso temporal o de baja seguridad: Para tareas que no implican datos sensibles y donde la velocidad es clave.
  • Pruebas y aprendizaje: Entender los fundamentos de las VPN de una forma sencilla antes de pasar a protocolos más complejos.

📋 Requisitos Previos

Antes de sumergirnos en la configuración, asegúrate de tener lo siguiente:

  • Un servidor Linux: Preferiblemente una distribución basada en Debian/Ubuntu (este tutorial usa Ubuntu Server). Una máquina virtual o una Raspberry Pi pueden funcionar.
  • Acceso root o sudo: Para instalar paquetes y configurar el sistema.
  • Conexión a internet: Para descargar los paquetes necesarios.
  • Una dirección IP pública estática: O un servicio de DNS dinámico (DynDNS, No-IP, etc.) si tu IP pública cambia. Esto es crucial para que puedas acceder al servidor desde fuera de tu red.
  • Conocimientos básicos de línea de comandos Linux.

Verificación de IP Pública

Para que tu servidor VPN sea accesible desde el exterior, necesita una IP pública. Puedes verificar la tuya visitando sitios como whatismyip.com desde tu servidor o ejecutando:

curl ifconfig.me
💡 Consejo: Si tu servidor está detrás de un router, necesitarás configurar el 'Port Forwarding' para dirigir el tráfico entrante de los puertos PPTP (TCP 1723 y protocolo GRE 47) a la dirección IP privada de tu servidor Linux.

🛠️ Instalación de pptpd en Ubuntu/Debian

El primer paso es instalar el paquete pptpd en tu servidor Linux. Abre tu terminal y sigue estos pasos.

1. Actualizar el Sistema

Siempre es una buena práctica actualizar la lista de paquetes y las actualizaciones existentes antes de instalar software nuevo.

sudo apt update
sudo apt upgrade -y

2. Instalar pptpd

Ahora, instala el servidor PPTP.

sudo apt install pptpd -y

⚙️ Configuración del Servidor PPTP

La configuración de pptpd implica editar varios archivos. Vamos a ir paso a paso.

1. Configurar pptpd.conf

Este archivo define las direcciones IP que usará el servidor PPTP.

Abre el archivo de configuración con tu editor de texto favorito (nano, vim).

sudo nano /etc/pptpd.conf

Descomenta (o añade si no existen) las siguientes líneas al final del archivo. Estas líneas definen la IP local del servidor VPN y el rango de IPs que se asignarán a los clientes VPN.

  • localip: La dirección IP que tu servidor PPTP usará como puerta de enlace para los clientes VPN. Puede ser una IP privada que no esté en uso en tu red, pero dentro del mismo rango de tu servidor principal si lo deseas, o incluso una IP virtual. Para este ejemplo, usaremos una IP que no colisione con tu red local (192.168.1.0/24).
  • remoteip: El rango de direcciones IP que se asignarán a los clientes VPN. Asegúrate de que este rango no se solape con ninguna otra subred en tu red local.
# Local IP address of the PPTP server
localip 192.168.0.1

# Range of IP addresses to assign to VPN clients
remoteip 192.168.0.234-238,192.168.0.245

En este ejemplo:

  • localip 192.168.0.1: El servidor PPTP usará 192.168.0.1 como su IP interna para la VPN.
  • remoteip 192.168.0.234-238,192.168.0.245: Los clientes recibirán IPs desde 192.168.0.234 hasta 192.168.0.238, y también 192.168.0.245. Puedes ajustar este rango según tus necesidades. Asegúrate de que este rango no esté en uso por tu router DHCP local.

Guarda y cierra el archivo (Ctrl + X, Y, Enter en nano).

2. Configurar Servidores DNS en ppp/pptpd-options

Este archivo define las opciones de PPP para PPTP, incluyendo los servidores DNS que los clientes usarán.

sudo nano /etc/ppp/pptpd-options

Busca las líneas ms-dns y descoméntalas (o añádelas) para configurar los servidores DNS. Puedes usar los DNS de Google, Cloudflare, o los de tu ISP.

# Use Google's DNS servers
ms-dns 8.8.8.8
ms-dns 8.8.4.4

# Or Cloudflare's
# ms-dns 1.1.1.1
# ms-dns 1.0.0.1

Otros parámetros importantes que puedes verificar o añadir en este archivo:

  • name pptpd: Define el nombre del servidor VPN.
  • refuse-pap: Recomendado para mayor seguridad (aunque PPTP en sí no es muy seguro).
  • refuse-chap: Similar al anterior.
  • refuse-mschap: Similar al anterior.
  • require-mschap-v2: Requiere MS-CHAPv2 para autenticación. Es la opción más robusta disponible para PPTP.
  • require-mppe-128: Habilita el cifrado MPPE de 128 bits. Es lo máximo que PPTP puede ofrecer.

Asegúrate de que estas opciones estén presentes y descomentadas:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
lock
noipx
mtu 1490
mru 1490

Guarda y cierra el archivo.

3. Crear Usuarios VPN en chap-secrets

Aquí es donde definirás los nombres de usuario y contraseñas que los clientes usarán para conectarse a tu VPN.

sudo nano /etc/ppp/chap-secrets

Cada línea representa un usuario y debe seguir el formato:

username pptpd password *

Por ejemplo:

# CLIENT     SERVER  SECRET           IP_ADDRESS
myuser     pptpd   mypassword       *
anotheruser pptpd   strongpassword   *
  • myuser: El nombre de usuario del cliente.
  • pptpd: El nombre del servidor (debe coincidir con el name en pptpd-options).
  • mypassword: La contraseña para myuser.
  • *: Permite la conexión desde cualquier dirección IP remota.
⚠️ Advertencia: Usa contraseñas fuertes y únicas para tus usuarios VPN.

Guarda y cierra el archivo.


🌐 Habilitar el Reenvío IP (IP Forwarding)

Para que el tráfico pueda fluir entre la interfaz VPN y la interfaz de red pública de tu servidor, debes habilitar el reenvío IP.

1. Editar sysctl.conf

Abre el archivo de configuración sysctl:

sudo nano /etc/sysctl.conf

Busca la línea net.ipv4.ip_forward y descoméntala, o añádela si no existe, asegurándote de que su valor sea 1:

net.ipv4.ip_forward=1

Guarda y cierra el archivo.

2. Aplicar los Cambios

Para aplicar los cambios sin reiniciar el sistema, ejecuta:

sudo sysctl -p

🛡️ Configuración de Firewall (IPTables)

Necesitarás configurar tu firewall para permitir el tráfico PPTP y para que los clientes VPN puedan acceder a internet a través de tu servidor (NAT).

1. Permitir Tráfico PPTP

Permite las conexiones entrantes al puerto PPTP (TCP 1723) y el protocolo GRE (protocolo 47).

sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
sudo iptables -A INPUT -p gre -j ACCEPT

2. Habilitar NAT para Clientes VPN

Esto permitirá que los clientes VPN accedan a Internet a través de tu servidor VPN. Reemplaza eth0 con el nombre de tu interfaz de red pública si es diferente (ej. enp0s3).

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -s 192.168.0.0/24 -j TCPMSS --set-mss 1356
  • 192.168.0.0/24: Es el rango de red que configuraste en pptpd.conf para los remoteip (la IP local del servidor VPN más el rango de clientes). Asegúrate de que este rango coincida con el que definiste. Si tu localip es 192.168.0.1 y tu remoteip está en 192.168.0.x, entonces 192.168.0.0/24 es el rango correcto. Si tu localip y remoteip estuvieran, por ejemplo, en 10.0.0.0/24, deberías usar 10.0.0.0/24 aquí.
📌 Nota: Puedes ver el nombre de tus interfaces de red con `ip a`.

3. Guardar las Reglas de IPTables (Persistencia)

Las reglas de IPTables se pierden al reiniciar. Para hacerlas persistentes, instala iptables-persistent:

sudo apt install iptables-persistent -y

Durante la instalación, se te preguntará si quieres guardar las reglas actuales. Acepta. Si no se te pregunta o quieres guardar manualmente en cualquier momento:

sudo netfilter-persistent save

🔄 Reiniciar el Servidor PPTP

Después de todas las configuraciones, reinicia el servicio pptpd para aplicar los cambios.

sudo systemctl restart pptpd

Verifica el estado del servicio para asegurarte de que se está ejecutando correctamente:

sudo systemctl status pptpd

Deberías ver algo como Active: active (running).

Troubleshooting: Si el servicio no inicia Si `pptpd` no inicia, revisa los logs: ```bash sudo journalctl -u pptpd ``` Verifica errores en `pptpd.conf`, `pptpd-options`, y `chap-secrets`. Asegúrate de que no haya errores de sintaxis y que las IPs no se solapen con tu red local.

💻 Configuración del Cliente VPN

Ahora que tu servidor está en funcionamiento, puedes configurar tus dispositivos cliente para conectarse.

1. Clientes Windows

  1. Ve a Configuración > Red e Internet > VPN.
  2. Haz clic en Agregar una conexión VPN.
  3. En Proveedor de VPN, selecciona Windows (integrado).
  4. En Nombre de conexión, pon un nombre descriptivo (ej. Mi VPN PPTP).
  5. En Nombre o dirección del servidor, introduce la dirección IP pública o el nombre de dominio de tu servidor Linux.
  6. En Tipo de VPN, selecciona Protocolo de tunelización punto a punto (PPTP).
  7. En Tipo de información de inicio de sesión, selecciona Nombre de usuario y contraseña.
  8. Introduce el Nombre de usuario y la Contraseña que configuraste en /etc/ppp/chap-secrets.
  9. Haz clic en Guardar.
  10. Conéctate a la VPN desde la lista de conexiones VPN.

2. Clientes macOS

  1. Abre Preferencias del Sistema > Red.
  2. Haz clic en el botón + para añadir un nuevo servicio.
  3. En Interfaz, selecciona VPN.
  4. En Tipo de VPN, selecciona PPTP.
  5. En Nombre del servicio, pon un nombre descriptivo.
  6. Haz clic en Crear.
  7. En Dirección del servidor, introduce la dirección IP pública o el nombre de dominio de tu servidor.
  8. En Nombre de la cuenta, introduce el nombre de usuario que configuraste.
  9. Haz clic en Ajustes de autenticación... e introduce la contraseña.
  10. Haz clic en Aplicar y luego en Conectar.

3. Clientes Linux (NetworkManager)

  1. Abre la configuración de red (normalmente desde el icono de red en la barra de tareas).
  2. Haz clic en + para añadir una nueva conexión.
  3. Selecciona VPN y luego PPTP (puede que necesites instalar el paquete network-manager-pptp-gnome o similar).
  4. Introduce el nombre de la conexión, la dirección IP pública del servidor, el nombre de usuario y la contraseña.
  5. Puedes configurar opciones avanzadas si es necesario (como el cifrado MPPE).
  6. Guarda y conéctate.

📊 Verificación de la Conexión

Una vez conectado desde el cliente, puedes verificar que todo funciona correctamente.

1. Comprobar la IP Pública

Desde tu cliente conectado a la VPN, abre un navegador y visita whatismyip.com. Deberías ver la dirección IP pública de tu servidor VPN, no la de tu red local.

2. Verificar Logs del Servidor

En tu servidor Linux, puedes ver los logs para confirmar que el cliente se ha conectado.

sudo journalctl -u pptpd -f

Deberías ver entradas que indiquen una conexión exitosa, la asignación de IP al cliente, etc.

Arquitectura de Conexión VPN (PPTP) Cliente (PC / Móvil) Internet Router (Port Forwarding) Servidor Linux (pptpd) Red Local LAN TÚNEL CIFRADO VPN

🔑 Consideraciones Adicionales y Seguridad

Como mencionamos al principio, la seguridad es un factor crítico con PPTP. Aquí hay algunas consideraciones:

  • Usa siempre contraseñas fuertes: No reutilices contraseñas y hazlas complejas.
  • Restringe el acceso: Si sabes desde qué IPs te conectarás, puedes añadir reglas de IPTables para permitir conexiones PPTP solo desde esas IPs específicas.
  • Monitorea los logs: Revisa regularmente los logs de tu servidor para detectar cualquier actividad inusual.
  • Considera alternativas: Para cualquier escenario que requiera alta seguridad o privacidad, migra a protocolos como OpenVPN, WireGuard o IPsec. Son más complejos de configurar, pero ofrecen un nivel de protección significativamente mayor.

Tabla Comparativa de Protocolos VPN (Simplificada)

CaracterísticaPPTPOpenVPNWireGuard
------------
SeguridadBaja (Vulnerabilidades conocidas)Muy Alta (Cifrado robusto)Muy Alta (Criptografía moderna)
VelocidadMuy Alta (Poca sobrecarga)Moderada a Alta (Depende de la CPU)Muy Alta (Diseño ligero)
------------
Facilidad Config.Muy FácilIntermedia (Requiere certificados)Fácil a Intermedia (Generación de claves)
CompatibilidadAmplia (Integrado en muchos SO)Amplia (Requiere cliente específico)Creciente (Clientes específicos)
------------
PuertosTCP 1723, GRE (Protocolo 47)UDP 1194 (por defecto), TCPUDP (Puerto por defecto configurable)
Seguridad PPTP
Seguridad OpenVPN/WireGuard

🔚 Conclusión

Has llegado al final de este tutorial sobre cómo configurar un servidor VPN PPTP. Ahora tienes un servidor VPN funcional que te permite acceder a tu red de forma remota. Recuerda siempre las limitaciones de seguridad de PPTP y úsalo solo cuando sea apropiado para tu caso de uso específico.

Explorar las alternativas más seguras es el siguiente paso lógico para cualquier persona interesada en una protección VPN robusta. ¡Felicidades por tu nuevo servidor VPN!

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!