Estou usando o Yocto para um alvo rpi4. Eu estava usando um serviço systemd para ativar minha VPN através do openvpn na inicialização:
[Unit]
Description=OpenVPN connection to .ovpn file
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn-client/%i.status 10 -cd /etc/openvpn/client/ --config /etc/openvpn/client/%i.ovpn
ExecReload=/bin/kill -HUP $MAINPIDy
WorkingDirectory=/etc/openvpn/client
[Install]
WantedBy=multi-user.target
Eu estava usando o pacote Networkmanager + Openvpn no yocto. Ultimamente descobri o pacote Networkmanager-openvpn . Qual é o objetivo deste pacote? Como usá-lo ?
NetworkManager oferece suporte a tipos de rede externos por meio de uma API de plug-in. Muitas vezes é chamado de "plug-ins VPN do NetworkManager" e API do plug-in VPN.
Nesse caso, você instala o plugin e cria perfis de conexão do NetworkManager do tipo
connection.type=vpn
.Existem vários plug-ins VPN, como openvpn, openconnect, libreswan, strongswan, etc.
Nesse caso, você não executa mais o
openvpn
executável diretamente. O NetworkManager e o plugin farão isso quando você ativar o perfil.A vantagem é que esses plug-ins se integram ao NetworkManager. Por exemplo,
/etc/resolv.conf
(o que não funciona, como alternativa a esse problema, os serviços poderiam usar a ferramenta resolvconf ou resolvido pelo systemd) .Os plugins geralmente também fornecem uma parte GTK, que se integra com
gnome-shell
,gnome-control-center
,nm-applet
,nm-connection-editor
. O KDEplasma-nm
não usa a parte GTK, mas implementa a sua própria. Portanto, há suporte para GUI e eles se integram à forma como a rede é configurada em seu ambiente de desktop.Uma desvantagem do NetworkManager-openvpn é que ele não elimina tantos privilégios quanto deveria. Esse é um bug/recurso ausente. Se você executar o binário openvpn diretamente, poderá colocá-lo em sandbox melhor.
Para usar o plugin NetworkManger-openvpn, instale-o (pode ser necessário reiniciar o serviço NetworkManager). Depois, como sempre. Crie um perfil de conexão no NetworkManager e ative-o com
nmcli connection up "$PROFILE"
. Veja o conteúdo comnmcli connection show "$PROFILE"
.Você pode usar
nmcli connection import --type openvpn --file my-vpn.ovpn
para criar um perfil de conexão.Ou use nm-connection-editor para importar/editar o perfil (se você também instalar a parte GTK, que pode estar em um pacote separado). Talvez você não tenha uma GUI no seu yocto, mas você pode fazer isso na sua estação de trabalho, usar a GUI para configurar um perfil e depois copiar o arquivo do
/etc/NetworkManager/system-connection
. Ou pelo menos use a GUI para ver quais opções existem e como elas são implementadas nonmcli
arquivo. Caso contrário, pode ser um pouco difícil descobrir todas as opções, pois falta documentação.