Guia para un PPTP VPN Server en Centos Linux

By Published On: 23 de septiembre de 2013Categories: GNU-Linux, Redes1 Comment


PPTP es un protocolo de red desarrollado para implementar redes privadas virtuales (VPN) que aunque no sea muy seguro por ciertas vulnerabilidades encontradas sigue siendo utilizado por su facilidad de implementación. Protocolos como IPSec y L2TP han ido desplazando a PPTP pero en entornos en donde la seguridad no sea una prioridad podemos implementar PPTP por su facilidad y su gran compatibilidad.

En esta pequeña guia vamos a configurar un servicio de PPTP en un Sistema Linux con Centos como Sistema Base, antes de proceder con la guia asegurate de tener Selinux e Iptables deshabilitados (o con sus respectivas reglas).

Imagen extraída de www.mikrotik.com


Lo primero es instalar los repositorios necesarios para descargar los paquetes de PPTP (Pop Top Repositories):

[[email protected]]#  rpm -Uhv http://poptop.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm

Luego procedemos con la instalación de los paquetes ppp y pptp:

[[email protected]]# yum install ppp pptp

Luego editamos el archivo /etc/pptpd.conf con la siguiente configuración:

localip 192.168.1.1               #Dirección PPTP que tendra el Servidor 
remoteip 192.168.1.10-20    #Rango de IP que seran asignadas a los clientes PPTP

Ahora vamos a configurar los usuarios en el archivo /etc/ppp/chap-secrets de la siguiente manera:

# Secrets for authentication using CHAP
# client           server       secret              IP addresses
ramphische     *              contrasena        *   
ramonperez     *             contrasena2      192.168.1.15
elenasanchez   *             contrasena3       *
felipesantos     *             contrasena4       192.168.1.13

En la configuración anterior los usuarios que tienen el * en vez de direccion IP van a tomar direcciones del rango especificado en el pptpd.conf.

Si queremos especificar los servidores DNS para los clientes PPTP podemos especificarlo en el archivo /etc/ppp/options.pptp:

ms-dns 8.8.8.8
ms-dns 8.4.4.8

Para que nuestro Servidor Linux pueda enrutar es necesario habilitar el IP Forwarding editando el archivo /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Y para que se reflejen los cambios:

[[email protected]]# sysctl -p

Finalmente reiniciamos el servicio PPTP:

[[email protected]]# service pptpd restart

Y ya estaremos Ready para usar nuestro PPTP Server, cualquier duda estamos a las ordenes!

One Comment

  1. l-segunda 1 de julio de 2014 at 21:49 - Reply

    clientes aun no se pueden conectar que mas me podria hacer falta, desactive iptables por el momento para mirar si me lo estaba bloqueando pero aun con iptables desactivado obtengo el mismo resultado este es el log que me sale

    ul 1 15:01:44 localhost pptpd[3267]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
    Jul 1 15:01:44 localhost pptpd[3267]: CTRL: Client 201.232.37.136 control connection finished
    Jul 1 15:02:11 localhost pptpd[3274]: CTRL: Client 201.232.37.136 control connection started
    Jul 1 15:02:11 localhost pptpd[3274]: CTRL: Starting call (launching pppd, opening GRE)
    Jul 1 15:02:11 localhost pppd[3275]: Plugin /usr/lib64/pptpd/pptpd-logwtmp.so loaded.
    Jul 1 15:02:11 localhost pppd[3275]: The remote system is required to authenticate itself
    Jul 1 15:02:11 localhost pppd[3275]: but I couldn't find any suitable secret (password) for it to use to do so.
    Jul 1 15:02:11 localhost pptpd[3274]: GRE: read(fd=6,buffer=611860,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs

Leave A Comment