Como acessar uma VPN que usa o Contivity no Linux?

Ahoy!!!

Estive, por alguns anos com um problema que me incomodava muito: A empresa que trabalho usa o Contivity da Nortel e ela não disponibiliza o Contivity para GNU/Linux gratuitamente como faz para o Windows.

Bom, por esses dias, finalmente encontrei a solução, que descrevo abaixo:

Passos:

1º passo: Instale as dependências do vpnc

apt-get install build-essentials subversion
apt-get build-dep vpnc

2º passo: Baixe as fontes do vpnc versão 414

svn co -r 414 http://svn.unix-ag.uni-kl.de/vpnc/branches/vpnc-nortel

3º passo: Entre no diretório criado

cd vpnc-nortel

4º passo: Edite o arquivo Makefile

vi Makefile # edite a variável PREFIX e mude para /usr ao invés de /usr/local

5º passo: Compile e instale

make

Se tudo deu certo

sudo make install

6º passo: Construa as variáveis de ambiente

sudo mv /etc/vpnc/default.conf /etc/vpnc/default.conf.install

Crie o arquivo seguinte dentro de /etc/vpnc

vi /etc/vpnc/contivity-ip-split.conf

#===== /etc/vpnc/contivity-ip-split.conf
IPSec gateway XXX.XXX.XXX.XXX
IPSec ID COMPANY_GROUP_ID
IPSec secret COMPANY_GROUP_ID_PSK

# This is specific to  Nortel Contivity Server Config
# please update accodingly
Vendor nortel
Nortel Client ID V06_01
IKE DH Group dh5
IKE Authmode gpassword

## To add your username and password,
## use the following lines:
Xauth username MY_LOGIN
Xauth password MY_PASSWD

Script /etc/vpnc/contivity-ip-split-script

# No Detach # This is for debugging purposes only... runs vpnc in foreground
# Debug 99  # Again for debug purposes check vpnc --long-help for verbosity levels
#            # NEVER post debug99 log on the internet, it  contains username and passwd

Modifique os dados conforme a instalação da sua empresa e mude as permissões do aquivo

sudo chmod 600 /etc/vpnc/contivity-ip-split.conf

Como descobrir os dados? Aí entra o Windows. Acesse o Contivity e pegue as informações após se conectar.

7º passo: Crie o script abaixo

vi /etc/vpnc/contivity-ip-split-script

#!/bin/sh
# ===== /etc/vpnc/contivity-ip-split-script

add_ip ()
{
        export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_ADDR=$1
        export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASK=255.255.255.255
        export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASKLEN=32
        export CISCO_SPLIT_INC=$(($CISCO_SPLIT_INC + 1))
}

# Initialize empty split tunnel list
export CISCO_SPLIT_INC=0

# Delete DNS info provided by VPN server to use internet DNS
# Comment following line to use DNS beyond VPN tunnel
unset INTERNAL_IP4_DNS

# List of IPs beyond VPN tunnel
# These should be listed in /etc/hosts also...

add_ip 10.XXX.XXX.XXX  #email server
add_ip 10.YYY.YYY.YYY # www server
add_ip 10.AAA.BBB.CCC # your workstation
add_ip 10.ZZZ.ZZZ.ZZZ # some other server

# Execute default script
. /etc/vpnc/vpnc-script

# End of script

Modifique conforme as suas necessidades e depois mude as permissões do script.

sudo chmod 700 /etc/vpnc/contivity-ip-split-script

8º passo: Pontos finais

Entre no diretório dos arquivos de configuração

cd /etc/vpnc/

mv default.conf default.bkp
ln -s contivity-ip-split.conf default.conf

Coloque as seguintes linhas no seu .bashrc

alias vpnc=’sudo vpnc’
alias vpnc-disconnect=’sudo vpnc-disconnect’

Antes de colocar o alias do vpnc, faça uma tentativa de acesso com sudo vpnc e veja se o vpnc não irá pedir parâmetros adicionais. No meu caso, ele pediu o –enable-1des, pois a minha empresa utiliza o protocolo de criptografia DES.

Nesse caso, o meu alias ficou da seguinte forma:

alias vpnc=’sudo vpnc –enable-1des’

Esse procedimento foi testado em três máquinas distintas: um desktop AMD64 com Debian, um notebook AMD64 com Debian e um netbook i386 com o Ubuntu. Em todos os casos, sucesso total.

O procedimento original encontra-se em

http://ubuntuforums.org/showthread.php?t=1202896

Ja ne!!!

6 comentários

Faraódezembro 24th, 2009 at 13:08

Valeu cara!!! Funcionou aqui em casa!!! Abraçao!!

Stilldezembro 25th, 2009 at 13:06

Blz! :)

Vito Stavejunho 19th, 2011 at 15:14

A brilliant blog post, I just given this onto a university student who was doing a little research on that. And he in fact bought me breakfast because I discovered it for him.. :) .. So let me rephrase that: Thanks for the treat! But yeah Thnkx for spending the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you become expertise, would you mind updating your blog with more info? It is highly helpful for me. Two thumb up for this share!

all about puppiesagosto 12th, 2011 at 19:26

Great sheet of info! May I reference thing about this on my little blog plainly post a backlink to this fact webpage? Thx.

Wendell Raunovembro 4th, 2011 at 17:02

Do you have a spam problem on this blog; I also am a blogger, and I was curious about your situation; many of us have created some nice procedures and we are looking to swap solutions with other folks, please shoot me an email if interested.

Army AKOnovembro 28th, 2011 at 10:53

Tubes in a row: Thats the internets.

Deixe um comentário

Your comment