VPN PPTP Server em Ubuntu – How to

Set 19
2009

A necessidade por vezes, coloca-nos em frente a coisas que se resolvem de maneira rápida e eficaz. Neste caso, eu preciso de aceder do meu Iphone por VPN a casa por várias razões. A principal é o facto de ter um Draytek 2700V já com dois tuneis IPSEC  ligados entre a minha casa e dois escritórios. Como tal, tive de aproveitar o meu servidor caseiro ( Ubuntu 9.04 onde está o zoneminder – dvr do alarme -, maquinas virtuais – ippbx e blueonyx de testes, XBMC, samba etc…) para criar um pequeno servidor PPTP para aceder a casa e consequentemente aos recursos que não quero ter mapeados numa NAT Forward.

Tendo em conta que vão utilizar Ubuntu ( a partir da 7.10 podem usar etes tuturial ) vamos instalar o Poptop, que é um servidor PPTP bem conhecido para linux. Este suporta:

  • MSCHAPv2, MPPE 40 – 128 bit RC4 encryption
  • Multiplos Cliente
  • Integração total com Redes Microsoft ( AD ) utilizando LDAP, SAMBA com um plugin RADIUS
  • Funciona com clientes PPTP Windows 95/98/Me/NT/2000/XP/Vista/windows 7/ Iphone etc…
  • É gratuito sob licença Geral  GNU

Para instalar e configurar chegam cerca de 2 minutos, os passos são:

# sudo apt-get install pptpd -y

este comando vai instalar o servidor.

Após instalado vamos configurar o servidor para as nossas necessidades, para isso basta editar o ficheiro que está em: /etc/pptpd.conf

# sudo nano /etc/pptpd.conf

Este ficheiro tem o seguinte aspecto:

 ###############################################
    # $Id: pptpd.conf 4255 2004-10-03 18:44:00Z rene $
    #
    # Sample Poptop configuration file /etc/pptpd.conf
    #
    # Changes are effective when pptpd is restarted.
    ###############################################

    # TAG: ppp
    #    Path to the pppd program, default ‘/usr/sbin/pppd’ on Linux
    #
    #ppp /usr/sbin/pppd

    # TAG: option
    #    Specifies the location of the PPP options file.
    #    By default PPP looks in ‘/etc/ppp/options’
    #
    option /etc/ppp/pptpd-options

    # TAG: debug
    #    Turns on (more) debugging to syslog
    #
    #debug

    # TAG: stimeout
    #    Specifies timeout (in seconds) on starting ctrl connection
    #
    # stimeout 10

    # TAG: noipparam
    #       Suppress the passing of the client’s IP address to PPP, which is
    #       done by default otherwise.
    #
    #noipparam

    # TAG: logwtmp
    #    Use wtmp(5) to record client connections and disconnections.
    #
    logwtmp

    # TAG: bcrelay <if>
    #    Turns on broadcast relay to clients from interface <if>
    #
    #bcrelay eth1

    # TAG: localip
    # TAG: remoteip
    #    Specifies the local and remote IP address ranges.
    #
    #       Any addresses work as long as the local machine takes care of the
    #       routing.  But if you want to use MS-Windows networking, you should
    #       use IP addresses out of the LAN address space and use the proxyarp
    #       option in the pppd options file, or run bcrelay.
    #
    #    You can specify single IP addresses seperated by commas or you can
    #    specify ranges, or both. For example:
    #
    #        192.168.0.234,192.168.0.245-249,192.168.0.254
    #
    #    IMPORTANT RESTRICTIONS:
    #
    #    1. No spaces are permitted between commas or within addresses.
    #
    #    2. If you give more IP addresses than MAX_CONNECTIONS, it will
    #       start at the beginning of the list and go until it gets
    #       MAX_CONNECTIONS IPs. Others will be ignored.
    #
    #    3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238,
    #       you must type 234-238 if you mean this.
    #
    #    4. If you give a single localIP, that’s ok - all local IPs will
    #       be set to the given one. You MUST still give at least one remote
    #       IP for each simultaneous client.
    #
    # (Recommended)
    #localip 192.168.0.1
    #remoteip 192.168.0.234-238,192.168.0.245
    # or
    localip 192.168.101.1      <— THIS IS YOUR SERVER IP
    remoteip 192.168.101.200-245  <—- THIS WILL BE THE IP’S FOR THE CLIENTS

Aqui interessa editar as ultimas linhas, que vão definir exactamente qual é o ip do nosso servidor pptp e qual a pull de ips a atribuir a clientes ( no fundo detrminar quantos vão poder-se ligar )

Depois temos de tr atenção ao ficheiro onde serão colocados os utilziadores:

# nano /etc/ppp/chap-secrets

Que é deverá ser configurado desta forma:

  # Secrets for authentication using CHAP
    # client    server    secret            IP addresses

    user      pptpd     password               “*”

No campo IP addresses como entendem, também podemos limitar o acesso a partir de um ip ouuma rede. Neste caso permite ligações de todo o lado “*”

Feito isto basta reiniciar o nosso novo servidor, para tal basta:

# sudo killall pptpd

# sudo pptpd

Se quiserem alterar parametros específicos, que vão desde o nome do servio aos tipos de encriptação permitidos na ligação, está tudo no ficheiro:

/etc/ppp/options.pptpd

E ao fim de menos de dois minutos, temos o nosso servidor VPN PPTP pronto e a correr. Temos agora apenas nos nossos routers certeficar-nos de que:

  • As portas 1723 e 47 ( ligação e GRE ) estão encaminhadas para o nosso IP interno
  • Que existe um PassTrough no nosso router para poder encaminhar pedidos de ligação PPTP para dentro da nossa rede (no caso do meu draytek tem de ser ).

Boas Ligações!

Leave a Reply

You must be logged in to post a comment.

Clica-me!