OpenFortIVPN เป็นไคลเอนต์สำหรับบริการอุโมงค์ PPP+TLS VPN มันวางไข่กระบวนการ PPPD และดำเนินการสื่อสารระหว่างเกตเวย์และกระบวนการนี้
มันเข้ากันได้กับ Fortinet VPNs
man openfortivpn
เพียงเชื่อมต่อกับ VPN:
openfortivpn vpn-gateway:8443 --username=foo
เชื่อมต่อกับ VPN โดยใช้ Realm Authentication:
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 nameservers ไปที่ /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 Support ต้องการ openssl pkcs engine
และ opensc
ที่จะติดตั้ง PKCS11-Engine จาก LIBP11 จะต้องรวบรวมด้วยการติดตั้ง P11-kit-devel ตรวจสอบ #464 สำหรับการอภิปรายปัญหาที่รู้จักในพื้นที่นี้
ในการใช้ประโยชน์จาก SmartCard ของคุณให้ใส่อย่างน้อย pkcs11:
ไปยังตัวเลือกการกำหนดค่า CERT หรือ COMMANTLINE ของผู้ใช้ ต้องใช้ PKCs ทั้งหมดหรือบางส่วนที่#11 โทเค็น URI
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 โดยใช้ ID
การแจกแจง 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
ภาพรวมที่สมบูรณ์ยิ่งขึ้นสามารถรับได้จาก repology
สำหรับ distros อื่น ๆ คุณจะต้องสร้างและติดตั้งจากแหล่งที่มา:
ติดตั้งการพึ่งพาการสร้าง
autoconf
/fedora: gcc
automake
openssl-devel
make
pkg-config
gcc
automake
autoconf
libssl-dev
make
pkg-config
gcc
automake
autoconf
pkg-config
openssl
net-dialup/ppp
pkg-config
gcc
automake
autoconf
libopenssl-devel
pkg-config
[email protected]
): automake
autoconf
pkg-config
libressl
: automake
autoconf
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-pppd:
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc --enable-legacy-pppd
make
sudo make install
หากคุณต้องการระบุตำแหน่ง OpenSSL คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม $PKG_CONFIG_PATH
สำหรับการปรับจูนให้ตรวจสอบอาร์กิวเมนต์กำหนดค่าที่มีอยู่ด้วย ./configure --help
โดยเฉพาะอย่างยิ่งเมื่อคุณกำลังรวบรวมข้าม
ในที่สุดติดตั้ง Runtime Dependency ppp
หรือ pppd
OpenFortIVPN ต้องการสิทธิพิเศษที่สูงขึ้นในสามขั้นตอนในระหว่างการตั้งค่าอุโมงค์:
/usr/sbin/pppd
;/etc/resolv.conf
(เมื่ออุโมงค์ขึ้น) ด้วยเหตุผลเหล่านี้คุณต้องใช้ sudo openfortivpn
หากคุณต้องการให้ผู้ใช้ที่ไม่ใช่ผู้ใช้งานสามารถใช้งานได้คุณอาจพิจารณาเพิ่มรายการใน /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 เป็นรูท! ตามที่อธิบายไว้ใน #54 ผู้ใช้ที่เป็นอันตรายสามารถใช้ --pppd-plugin
และ --pppd-log
ตัวเลือกเพื่อเบี่ยงเบนพฤติกรรมของโปรแกรม
ในบางกรณีเซิร์ฟเวอร์อาจต้องการให้ไคลเอนต์ VPN โหลดและโต้ตอบกับหน้าเว็บที่มีจาวาสคริปต์ การตีความหน้าเว็บอาจเกินความซับซ้อนของเว็บเพจทั้งนี้ขึ้นอยู่กับความซับซ้อนของหน้าเว็บ
ในกรณีเช่นนี้คุณอาจใช้โปรแกรมภายนอกวางไข่เว็บเบราว์เซอร์เต็มรูปแบบเช่น OpenFortivPN-WebView เพื่อตรวจสอบสิทธิ์และดึงคุกกี้เซสชัน This cookie can be fed to openfortivpn using option --cookie-on-stdin
. เห็นได้ชัดว่าโซลูชันดังกล่าวต้องใช้เซสชันกราฟิก
อย่าลังเลที่จะส่งคำขอดึง!
รูปแบบการเข้ารหัส C ควรเป็นไปตามสไตล์การเข้ารหัสเคอร์เนล Linux