OpenFortivpn является клиентом для туннельных услуг PPP+TLS VPN. Он порождает процесс PPPD и управляет связью между шлюзом и этим процессом.
Он совместим с Fortinet VPN.
man openfortivpn
Просто подключитесь к VPN:
openfortivpn vpn-gateway:8443 --username=foo
Подключитесь к VPN, используя сферу аутентификации:
openfortivpn vpn-gateway:8443 --username=foo --realm=bar
Надежно хранить пароль с помощью программы Pinentry:
openfortivpn vpn-gateway:8443 --username=foo --pinentry=pinentry-mac
Подключитесь к сертификату пользователя и без пароля:
openfortivpn vpn-gateway:8443 --username= --password= --user-cert=cert.pem --user-key=key.pem
Не устанавливайте IP -маршруты и не добавляйте VPN -серверы имен в /etc/resolv.conf
:
openfortivpn vpn-gateway:8443 -u foo --no-routes --no-dns --pppd-no-peerdns
Используя файл конфигурации:
openfortivpn -c /etc/openfortivpn/my-config
С /etc/openfortivpn/my-config
содержащий:
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
Полный список параметров конфигурации см. В разделе CONFIGURATION
»
man openfortivpn
Поддержка SmartCard необходимо для установки openssl pkcs engine
и opensc
. PKCS11-двигатель от LIBP11 должен быть составлен с установленным P11-KIT-Devel. Проверьте № 464 для обсуждения известных вопросов в этой области.
Чтобы использовать свою SmartCard, положите как минимум pkcs11:
на конфигурацию пользователя или командную опцию. Это занимает полный или частичный токен 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 =
В большинстве случаев user-cert = pkcs11:
сделает это, но при необходимости вы сможете получить токен-ури с p11tool --list-token-urls
.
Несколько читателей в настоящее время не поддерживаются.
Поддержка SmartCard была протестирована с Yubikey под Linux, но другие SmartCards, включенные в PIV, тоже могут работать. На Mac OS X Mojave известно, что двигатель PKCS-двигатель не найден.
Некоторые распределения Linux предоставляют пакеты openfortivpn
:
На MacOS Homebrew и Macports предоставляют пакет openfortivpn
. Либо установите Homebrew, затем установите OpenFortivpn:
# Install 'Homebrew'
/usr/bin/ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install ) "
# Install 'openfortivpn'
brew install openfortivpn
или установите MacPorts, затем установите OpenFortivpn:
# Install 'openfortivpn'
sudo port install openfortivpn
Более полный обзор может быть получен из репологии.
Для других дистрибуций вам нужно построить и установить из источника:
Установите зависимости сборки.
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
На Linux, если вы сами управляете своим ядром, убедитесь, что собираете эти модули:
CONFIG_PPP=m
CONFIG_PPP_ASYNC=m
В MacOS установите «Homebrew» для установки зависимостей для сборки:
# 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 "
Построить и установить.
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc
make
sudo make install
Если таргетирование платформ с PPPD <2.5.0, например, текущая версия MacOS, мы предлагаем вам настроить с опцией-eNable-legacy-ppppd:
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc --enable-legacy-pppd
make
sudo make install
Если вам нужно указать местоположение OpenSSL, вы можете установить переменную среды $PKG_CONFIG_PATH
. Для получения точной настройки проверьте доступные аргументы настройки с ./configure --help
особенно при скрещивании.
Наконец, установите ppp
-зависимость среды выполнения или pppd
.
OpenFortivpn нуждается в повышенных привилегиях на трех этапах во время установленного туннеля:
/usr/sbin/pppd
;/etc/resolv.conf
(когда туннель встал). По этим причинам вам нужно использовать sudo openfortivpn
. Если вам это нужно, чтобы его можно было использовать пользователями, не являющимися Sudoer, вы можете рассмотреть возможность добавления записи в /etc/sudoers
или файл в разделе /etc/sudoers.d
.
Например:
visudo -f /etc/sudoers.d/openfortivpn
Cmnd_Alias OPENFORTIVPN = /usr/bin/openfortivpn
%adm ALL = (ALL) OPENFORTIVPN
Адаптируйте приведенный выше пример, изменив путь openfortivpn
или выбрав группу, отличную от adm
, такой как выделенная группа openfortivpn
.
Предупреждение : убедитесь, что только надежные пользователи могут запускать Openfortivpn как root! Как описано в #54, вредоносный пользователь может использовать параметры --pppd-plugin
и --pppd-log
чтобы отвлечь поведение программы.
В некоторых случаях сервер может потребовать от клиента VPN загружать и взаимодействовать с веб -страницей, содержащей JavaScript. В зависимости от сложности веб -страницы, интерпретация веб -страницы может быть за пределами досягаемости программы командной строки, такой как OpenFortivpn.
В таких случаях вы можете использовать внешнюю программу, порождающую полноценную веб-браузер, такой как OpenFortivpn-Webview для аутентификации и получения печенья сеанса. Этой печенье можно накормить в OpenFortivpn, используя опцию --cookie-on-stdin
. Очевидно, что такое решение требует графического сеанса.
Не стесняйтесь делать запросы на притяжение!
C стиль кодирования должен следовать стилю кодирования ядра Linux.