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!!!

2 comentários

Faraódezembro 24th, 2009 at 13:08

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

Stilldezembro 25th, 2009 at 13:06

Blz! :)

Deixe um comentário

Your comment