OpenForttivpn adalah klien untuk layanan terowongan PPP+TLS VPN. Ini memunculkan proses PPPD dan mengoperasikan komunikasi antara gateway dan proses ini.
Ini kompatibel dengan VPN Fortinet.
man openfortivpn
Cukup terhubung ke VPN:
openfortivpn vpn-gateway:8443 --username=foo
Terhubung ke VPN menggunakan ranah otentikasi:
openfortivpn vpn-gateway:8443 --username=foo --realm=bar
Simpan kata sandi dengan aman dengan program pinentry:
openfortivpn vpn-gateway:8443 --username=foo --pinentry=pinentry-mac
Terhubung dengan sertifikat pengguna dan tanpa kata sandi:
openfortivpn vpn-gateway:8443 --username= --password= --user-cert=cert.pem --user-key=key.pem
Jangan atur rute IP dan jangan tambahkan jasa nama VPN ke /etc/resolv.conf
:
openfortivpn vpn-gateway:8443 -u foo --no-routes --no-dns --pppd-no-peerdns
Menggunakan file konfigurasi:
openfortivpn -c /etc/openfortivpn/my-config
Dengan /etc/openfortivpn/my-config
berisi:
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
Untuk daftar lengkap opsi konfigurasi, lihat bagian CONFIGURATION
man openfortivpn
Kebutuhan Dukungan SmartCard openssl pkcs engine
dan opensc
akan diinstal. PKCS11-mesin dari LIBP11 perlu dikompilasi dengan P11-KIT-Devel terpasang. Periksa #464 untuk diskusi tentang masalah yang diketahui di bidang ini.
Untuk memanfaatkan SmartCard Anda, putlah setidaknya pkcs11:
ke opsi konfigurasi pengguna atau garis komandan. Dibutuhkan URI URI PKC#11 yang penuh atau parsial.
user-cert = pkcs11:
user-cert = pkcs11: token =someuser
user-cert = pkcs11: model =PKCS%2315%20emulated ; manufacturer=piv_II;serial=012345678;token=someuser
username =
password =
Dalam kebanyakan kasus, user-cert = pkcs11:
akan melakukannya, tetapi jika perlu Anda bisa mendapatkan token-URI dengan p11tool --list-token-urls
.
Beberapa pembaca saat ini tidak didukung.
Dukungan SmartCard telah diuji dengan Yubikey di bawah Linux, tetapi kartu pintar PIV lainnya mungkin berfungsi juga. Pada Mac OS X Mojave diketahui bahwa engine-by-id PKCS tidak ditemukan.
Beberapa distribusi Linux menyediakan paket openfortivpn
:
Di macOS, baik homebrew dan macports menyediakan paket openfortivpn
. Entah instal homebrew lalu instal OpenForttivpn:
# Install 'Homebrew'
/usr/bin/ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install ) "
# Install 'openfortivpn'
brew install openfortivpn
Atau instal macports lalu instal OpenForttivpn:
# Install 'openfortivpn'
sudo port install openfortivpn
Tinjauan yang lebih lengkap dapat diperoleh dari repologi.
Untuk distro lainnya, Anda harus membangun dan menginstal dari sumber:
Instal Build Dependencies.
gcc
automake
autoconf
openssl-devel
make
pkg-config
gcc
automake
autoconf
libssl-dev
make
pkg-config
automake
autoconf
gcc
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
Di Linux, jika Anda mengelola kernel Anda sendiri, pastikan untuk menyusun modul -modul itu:
CONFIG_PPP=m
CONFIG_PPP_ASYNC=m
Pada macOS, instal 'Homebrew' untuk menginstal dependensi build:
# 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 "
Bangun dan instal.
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc
make
sudo make install
Jika platform penargetan dengan PPPD <2.5.0 seperti versi macOS saat ini, kami sarankan Anda mengonfigurasi dengan opsi --Senable-legacy-pppd:
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc --enable-legacy-pppd
make
sudo make install
Jika Anda perlu menentukan lokasi OpenSSL, Anda dapat mengatur variabel lingkungan $PKG_CONFIG_PATH
. Untuk fine-tuning periksa argumen konfigurasi yang tersedia dengan ./configure --help
terutama saat Anda melintasi kompilasi.
Akhirnya, instal runtime dependency ppp
atau pppd
.
OpenForttivpn membutuhkan hak istimewa yang ditinggikan pada tiga langkah selama pengaturan terowongan:
/usr/sbin/pppd
;/etc/resolv.conf
(saat terowongan naik). Untuk alasan ini, Anda perlu menggunakan sudo openfortivpn
. Jika Anda membutuhkannya untuk digunakan oleh pengguna non-sudoer, Anda dapat mempertimbangkan untuk menambahkan entri di /etc/sudoers
atau file di bawah /etc/sudoers.d
.
Misalnya:
visudo -f /etc/sudoers.d/openfortivpn
Cmnd_Alias OPENFORTIVPN = /usr/bin/openfortivpn
%adm ALL = (ALL) OPENFORTIVPN
Adaptasi contoh di atas dengan mengubah jalur openfortivpn
atau memilih kelompok yang berbeda dari adm
- seperti kelompok openfortivpn
khusus.
PERINGATAN : Pastikan hanya pengguna tepercaya yang dapat menjalankan OpenForttivpn sebagai root! Seperti yang dijelaskan dalam #54, pengguna jahat dapat menggunakan opsi --pppd-plugin
dan --pppd-log
untuk mengalihkan perilaku program.
Dalam beberapa kasus, server mungkin mengharuskan klien VPN untuk memuat dan berinteraksi dengan halaman web yang berisi JavaScript. Bergantung pada kompleksitas halaman web, menafsirkan halaman web mungkin berada di luar jangkauan program baris perintah seperti OpenForttivpn.
Dalam kasus seperti itu, Anda dapat menggunakan program eksternal yang memunculkan browser web penuh seperti OpenForttivpn-Webview untuk mengotentikasi dan mengambil cookie sesi. Cookie ini dapat diumpankan ke OpenForttivpn menggunakan opsi --cookie-on-stdin
. Jelas, solusi seperti itu membutuhkan sesi grafik.
Jangan ragu untuk membuat permintaan tarik!
Gaya pengkode C harus mengikuti gaya pengkodean kernel Linux.