Openfortivpn é um cliente para serviços de túnel PPP+TLS VPN. Ele gera um processo PPPD e opera a comunicação entre o gateway e esse processo.
É compatível com VPNs Fortinet.
man openfortivpn
Basta conectar -se a uma VPN:
openfortivpn vpn-gateway:8443 --username=foo
Conecte -se a uma VPN usando um reino de autenticação:
openfortivpn vpn-gateway:8443 --username=foo --realm=bar
Armazene a senha com segurança com um programa PinEntry:
openfortivpn vpn-gateway:8443 --username=foo --pinentry=pinentry-mac
Conecte -se com um certificado de usuário e sem senha:
openfortivpn vpn-gateway:8443 --username= --password= --user-cert=cert.pem --user-key=key.pem
Não defina rotas IP e não adicione os servidores de nomes VPN para /etc/resolv.conf
:
openfortivpn vpn-gateway:8443 -u foo --no-routes --no-dns --pppd-no-peerdns
Usando um arquivo de configuração:
openfortivpn -c /etc/openfortivpn/my-config
Com /etc/openfortivpn/my-config
contendo:
host = vpn-gateway
port = 8443
username = foo
set-dns = 0
pppd-use-peerdns = 0
# X509 certificate sha256 sum, trust only this one!
trusted-cert = e46d4aff08ba6914e64daa85bc6112a422fa7ce16631bff0b592a28556f993db
Para a lista completa de opções de configuração, consulte a seção CONFIGURATION
de
man openfortivpn
As necessidades de suporte ao SmartCard openssl pkcs engine
e opensc
a serem instaladas. O motor PKCS11 da libp11 precisa ser compilado com o p11-kit-devel instalado. Verifique #464 para uma discussão sobre questões conhecidas nesta área.
Para fazer uso do seu SmartCard, coloque pelo menos pkcs11:
para a opção Config ou CommandLine de Config ou Command. É preciso o URI token completo ou parcial do PKCS#11.
user-cert = pkcs11:
user-cert = pkcs11: token =someuser
user-cert = pkcs11: model =PKCS%2315%20emulated ; manufacturer=piv_II;serial=012345678;token=someuser
username =
password =
Na maioria dos casos p11tool --list-token-urls
user-cert = pkcs11:
fará isso, mas, se necessário
Atualmente, vários leitores não são suportados.
O suporte do SmartCard foi testado com Yubikey Under Linux, mas outros smartcards habilitados para PIV também podem funcionar. No Mac OS X Mojave, sabe-se que o mecanismo PKCS não é encontrado.
Algumas distribuições Linux fornecem pacotes openfortivpn
:
No MacOS, o Homebrew e o Macports fornecem um pacote openfortivpn
. Instale o homebrew e instale o Openfortivpn:
# Install 'Homebrew'
/usr/bin/ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install ) "
# Install 'openfortivpn'
brew install openfortivpn
ou instale o macports e instale o Openfortivpn:
# Install 'openfortivpn'
sudo port install openfortivpn
Uma visão geral mais completa pode ser obtida da Repologia.
Para outras distribuições, você precisará construir e instalar a partir da fonte:
Instalar dependências de construção.
gcc
automake
autoconf
openssl-devel
make
pkg-config
gcc
automake
autoconf
libssl-dev
make
pkg-config
gcc
automake
autoconf
openssl
pkg-config
net-dialup/ppp
pkg-config
gcc
automake
autoconf
libopenssl-devel
pkg-config
automake
autoconf
[email protected]
pkg-config
automake
autoconf
libressl
pkgconf
No Linux, se você gerenciar seu kernel, certifique -se de compilar esses módulos:
CONFIG_PPP=m
CONFIG_PPP_ASYNC=m
No macOS, instale 'homebrew' para instalar as dependências de construção:
# Install 'Homebrew'
/usr/bin/ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install ) "
# Install Dependencies
brew install automake autoconf [email protected] pkg-config
# You may need to make this openssl available to compilers and pkg-config
export LDFLAGS= " -L/usr/local/opt/openssl/lib $LDFLAGS "
export CPPFLAGS= " -I/usr/local/opt/openssl/include $CPPFLAGS "
export PKG_CONFIG_PATH= " /usr/local/opt/openssl/lib/pkgconfig: $PKG_CONFIG_PATH "
Construir e instalar.
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc
make
sudo make install
Se as plataformas de segmentação com PPPD <2.5.0, como a versão atual do macOS, sugerimos que você configure com a opção --enable-legacy-pppd:
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc --enable-legacy-pppd
make
sudo make install
Se você precisar especificar o local do OpenSSL, poderá definir a variável de ambiente $PKG_CONFIG_PATH
. Para ajuste fino, verifique os argumentos de configuração disponíveis com ./configure --help
especialmente quando você está compilando cruzado.
Por fim, instale ppp
de dependência de tempo de execução ou pppd
.
Openfortivpn precisa de privilégios elevados em três etapas durante o túnel configurado:
/usr/sbin/pppd
Process;/etc/resolv.conf
(quando o túnel está acordado). Por esses motivos, você precisa usar sudo openfortivpn
. Se você precisar ser utilizável por usuários que não são do Sudoer, considere adicionar uma entrada em /etc/sudoers
ou um arquivo em /etc/sudoers.d
.
Por exemplo:
visudo -f /etc/sudoers.d/openfortivpn
Cmnd_Alias OPENFORTIVPN = /usr/bin/openfortivpn
%adm ALL = (ALL) OPENFORTIVPN
Adapte o exemplo acima alterando o caminho openfortivpn
ou escolhendo um grupo diferente de adm
- como um grupo openfortivpn
dedicado.
Aviso : verifique se apenas os usuários confiáveis podem executar o Openfortivpn como root! Conforme descrito no #54, um usuário malicioso poderia usar --pppd-plugin
e --pppd-log
Options para desviar o comportamento do programa.
Em alguns casos, o servidor pode exigir que o cliente VPN carregue e interaja com uma página da Web que contém JavaScript. Dependendo da complexidade da página da web, a interpretação da página da web pode estar além do alcance de um programa de linha de comando, como o Openfortivpn.
Nesses casos, você pode usar um programa externo gerando um navegador da Web completo, como o Openfortivpn-webview para autenticar e recuperar um cookie de sessão. Este cookie pode ser alimentado para o Openfortivpn usando a opção --cookie-on-stdin
. Obviamente, essa solução requer uma sessão gráfica.
Sinta -se à vontade para fazer pedidos de puxar!
C O estilo de codificação deve seguir o estilo de codificação do kernel Linux.