Automatize a conexão com a VPN na inicialização

0

Espero automatizar a inicialização de uma conexão VPN na inicialização de uma caixa do CentOS 6.5. Eu tenho um cliente VPN Fortinet que eu corro na linha de comando da seguinte forma:

[centhost]$./forticlientsslvpn_cli --server 10.0.0.50:443 --vpnuser userxyz --keepalive
VPN Password:
Server certificate is invalid. Do you want to connect anyway? [y/n]
Connection successful.
Tunnel running.

Meu desafio ao automatizar essa conexão é que preciso inserir uma senha de VPN e aceitar o certificado inválido. Além disso, parece que o cliente VPN continua a ser executado como um processo do usuário, uma vez conectado, não um daemon, o que é bom, mas vou precisar dele para continuar executando em segundo plano. Além disso, quando eu faço um ps aux | grep forti, noto que não está executando apenas um processo, mas na verdade quatro que são todos iguais, o que também é bom. Só não sei se isso afeta minhas opções de automação. Eu também gostaria de reiniciar automaticamente a conexão se falhar. Alguma sugestão?

    
por Kevin S 19.03.2015 / 03:31

1 resposta

4

Estou usando este código (você precisa instalar o pacote expect primeiro):

Eu instalei forticlientsslvpn_cli em /opt/forticlientsslvpn . Substitua IP_FORTIGATE , PORT_FORTIGATE , VPN_USERNAME e VPN_PASSWORD com seus valores.

#!/usr/bin/expect -f
set force_conservative 0  ;
if {$force_conservative} {
    set send_slow {1 .1}
    proc send {ignore arg} {
            sleep .1
            exp_send -s -- $arg
    }
}
set timeout -1
spawn $env(SHELL)
match_max 100000
send -- "cd /opt/forticlientsslvpn/\r"
send -- "./forticlientsslvpn_cli --server IP_FORTIGATE:PORT_FORTIGATE --vpnuser VPN_USERNAME"
expect -exact "./forticlientsslvpn_cli --server IP_FORTIGATE:PORT_FORTIGATE --vpnuser VPN_USERNAME"
send -- "\r"
expect -exact "\r
Password for VPN:"
send -- "VPN_PASSWORD\r"
expect -exact "\r
STATUS::Setting up the tunnel\r
STATUS::Connecting...\r"
send -- "Y\r"
expect eof
    
por 06.06.2015 / 23:59

Tags