En un terminal instalamos el servidor PPTP
sudo apt-get install pptpd
Una vez finalizado el proceso se iniciará el servidor automáticamente, pero aún no está configurado, para ello haremos lo siguiente:
sudo gedit /etc/pptpd.conf
Se puede usar el editor que se prefiera, yo lo he hecho con nano pero pongo gedit para aquellos que os resulte más familar. En ese archivo configuraremos la ip local y remota, descomentándo las siguientes líneas (quitando la almohadilla # a principio de línea) o añadiéndolas
localip 192.168.1.100
remoteip 192.168.1.250-255
netmask 255.255.255.0
Guardamos y cerramos.
La ip local debe coincidir con la de la máquina que monta el servidor, que se puede saber con el comando ifconfig. Mientras que las remotas deben de no coincidir con ninguna otra máquina de la red. Mediante el guión podemos establecer un rango, en mi ejemplo va de 250 hasta 255, para 5 conexiones externas.
Ahora configuraremos otro archivo para que nos permita el acceso a internet:
sudo gedit /etc/ppp/pptpd-options
En este archivo descomentámos o añadimos las siguientes líneas para que permitan la resolución de DNS y permitan la codificación de un smartphone
# Network and Routing
ms-dns 91.191.136.152
ms-dns 85.229.85.109
netmask 255.255.255.0
# MPPE should be stateless ¡¡Imprescindible para Android!!
nomppe-stateful
Guardamos y cerramos. Yo he usado unas DNS que me gustan pero se pueden usar otras como las de Google (8.8.8.8 - 8.8.4.4) o las de tu ISP.
Ahora vamos a añadir usuarios a nuestra VPN. Para hacerlo modificaremos el archivo chap-secrets:
sudo gedit /etc/ppp/chap-secret
En nuestro ejemplo vamos a usar como usuario/contraseña lo siguiente Jesus/12345. Tened en cuenta que cada espacio se debe añadir con el tabulador, y debe quedar algo como lo siguiente:
# Secrets for authentication using CHAP
# client server secret IP addresses
Jesus * 12345 *
Como siempre guardamos y salimos.
Ahora vamos a proceder a activar el IP forwarding, para ello vamos a modificar el archivo /etc/sysctl.conf:
sudo gedit /etc/sysctl.conf
Buscamos la línea #net.ipv4.ip_forward=1 y le quitamos la # para descomentarla. Quedando así:
net.ipv4.ip_forward=1
Guardamos los cambios y cerramos el archivo. Y activamos este último cambio con el comando
sudo sysctl -p
Hacemos un par de cambios en iptables para permitir el reenvío de conexión
sudo iptables -P FORWARD ACCEPT
sudo iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
Lo ponemos en marcha con las modificaciones que hemos hecho
/etc/init.d/pptpd restart
Ya sólo queda configurar el cliente para que se conecte, y por supuesto abrir un puerto en el router (puerto 1723 por defecto) si es necesario. Bueno, y también poner un servicio de ip dinámica y esas cosas ya al gusto de cada cual. A las malas, si el router no permite abrir el puerto PPTP correctamente, también se puede usar la opción de incluir el servidor en la DMZ del router, aunque no es lo más aconsejable.