Quero acessar minha unidade de rede pessoal na minha universidade via VPN de casa. No passado, eu tenho usado NetworkManager
para isso o que funcionou completamente bem. No entanto, recentemente me mudei para ConnMan
e não sei muito bem como configurá-lo lá.
Graças ao GAD3R eu descobri que existe uma máscara de entrada gráfica disponível para configurar uma conexão VPN na interface ConnMan
do .CMST
A configuração VPN anterior (funcionando com sucesso) NetworkManager
parecia assim:
[openconnect]
Description=My Company
Host=vpngw2-out.net.provider.com
CACert=(null)
Protocol=anyconnect
Proxy=
CSDEnable=1
CSDWrapper=/home/user/.cisco/csd-wrapper.sh
UserCertificate=(null)
PrivateKey=(null)
FSID=0
StokenSource=disabled
StokenString=
No entanto, esta configuração de VPN funcionando com sucesso NetworkManager
estava usando um chamado CSD-wrapper
da Cisco.
O desafio ConnMan
agora é: Ao criar o arquivo de provisionamento VPN necessário, qual variante do OpenConnect devo selecionar para corresponder às especificações superiores? Ao criar o novo arquivo de provisionamento via ConnMan
- CMST
existem várias OpenConnect
-opções disponíveis:
Provider OpenConnect
OpenConnect.ServerCert
OpenConnect.CACert
OpenConnect.ClientCert
OpenConnect.MTU
OpenConnect.Cookie
OpenConnect.VPNHost
Qual devo escolher para corresponder à configuração anterior da NetworkManager
configuração? Tenho que mencionar algo especial para incluir o CSD-Wrapper
arquivo ConnMan
?
Graças a um comentário do GAD3R e da
Connman
lista de discussão do desenvolvedor , um amigo descobriu como configurar a conexão VPN. Embora ainda exista um pequeno erro, conseguimos funcionar principalmente.1. Situação inicial
Os seguintes pacotes devem ser instalados em sua máquina cliente de onde você deseja acessar o servidor host:
connman
connman-vpn
cmst
openconnect
Além disso, o script
csd-wrapper.sh
foi executado no/home
diretório -clients e criou o diretório/home/.cisco
com vários arquivos de autenticação de sua máquina.2. Gerando as informações de autenticação VPN necessárias por meio do envolvimento
OpenConnect
Em uma segunda etapa, você deve executar a
OpenConnect
solicitação de autenticação para obter o certificado do servidor (FINGERPRINT
) e umCOOKIE
queConnman
usará para se conectar à VPN. Essas informações serão criadas utilizando oOpenConnect
pacote que posteriormente exibirá um certificado de servidor e um cookie no terminal. Geramos essas informações no terminal executandoDepois, este comando exibirá quatro variáveis:
POST
,COOKIE
,HOST
eFINGERPRINT
. Assim, a impressão digital (começando comsha256:...
) atua como um certificado de servidor enquanto oCOOKIE
é o que parece.3. Criando o arquivo de provisionamento VPN para
Connman
Em contraste com
NetworkManager
oConnman
está usando os chamados arquivos de provisionamento VPN para cada conexão VPN de onde obtém as informações sobre como se conectar ao host VPN. Portanto, em uma terceira etapa, os dados de autenticação gerados anteriormente devem ser colados nesse arquivo de provisionamento de VPN queConnman
será utilizado para se conectar ao servidor. Para isso, criamos o arquivo/var/lib/connman-vpn/<connection-name>.config
com base na seguinte estrutura:Depois salve e feche o arquivo.
4. Reinicie sua máquina e verifique a conexão VPN
Reinicie seu sistema e você encontrará sua conexão VPN agora criada listada no piloto
VPN
da GUI Connman System Tray (CMST
). Marque-o, clique em "conectar" e após alguns segundos a conexão VPN ao seu host VPN será estabelecida. Agora você pode acessar facilmente o host da VPN no gerenciador de arquivos de sua escolha.5. Eyesore: O cookie gerado é válido apenas por algumas horas
Depois de algumas horas, sua conexão VPN que funcionava com sucesso não funcionará mais. Ao verificar
/var/log/syslog
a abordagem de conexão irá reclamar sobre a falha na verificação do certificado do servidor:Com isso, a autenticação inicial
COOKIE
foi alterada, portanto, o cookie gerado anteriormente não é mais válido. Portanto, você deve repetir o procedimento superior todas as poucas horas para criar um novoCOOKIE
e colar este novo em seu arquivo de provisionamento de VPN (/var/lib/connman-vpn/<yourvpnname>.config
) enquanto substitui o cookie antigo. Depois reinicieConnman
e sua VPN funcionará muito bem novamente nas próximas horas.Importante:
Parece que ele
NetworkManager
pode estimular a recriação do novoCOOKIE
por si mesmo, enquantoConnman
precisa ser alimentado com o novocookie
em seu arquivo de provisionamento de VPN. ProvavelmenteConnman
está faltando algum tipo de interface para iniciar oOpenConnect
-comando sozinho.6. Solução alternativa para tornar a recriação do novo cookie um pouco mais confortável
Você pode usar um script bash para gerar o novo cookie e substituir o antigo. Basta copiar o seguinte texto em um
*.sh
arquivo -, torná-lo executável e executá-lo. O novo cookie será colocado na/var/lib/connman-vpn/vpnname.config
posição correta automaticamente. Depois reinicieConnman
e a VPN funcionará bem novamente.Este script irá:
OpenConnect
solicitação de autenticação para obter o certificado do servidor (FINGERPRINT
) e umCOOKIE
username
no prompt do usuáriopassword
no prompt do usuáriogroup
no prompt do usuáriocookie
cookie
pelo/var/lib/connman-vpn/vpnname.config
novocookie
Depois, você pode se reconectar ao seu host VPN sem problemas. Graças a este script é mais confortável e muito mais rápido recriar novos
cookies
quando necessário.