OpenFortivpn هو عميل لخدمات نفق PPP+TLS VPN. يولد عملية PPPD ويدير التواصل بين البوابة والعملية.
وهو متوافق مع Fortinet VPNs.
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 رمز 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 =
في معظم الحالات p11tool --list-token-urls
user-cert = pkcs11:
سيفعل ذلك ، ولكن إذا ل
لا يتم دعم القراء المتعددين حاليًا.
تم اختبار دعم بطاقة SmartCard مع Yubikey تحت Linux ، ولكن قد تعمل بطاقات Smartcards الأخرى الممكّنة أيضًا. على Mac OS X Mojave ، من المعروف أنه لم يتم العثور على محرك PKCS.
توفر بعض توزيعات Linux حزم openfortivpn
:
على MacOS يوفر كل من homebrew و macports حزمة openfortivpn
. إما تثبيت homebrew ثم تثبيت exproftivpn:
# Install 'Homebrew'
/usr/bin/ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install ) "
# Install 'openfortivpn'
brew install openfortivpn
أو تثبيت macports ثم قم بتثبيت exproftivpn:
# Install 'openfortivpn'
sudo port install openfortivpn
يمكن الحصول على نظرة عامة أكثر اكتمالا من repology.
للحصول على توزيعات أخرى ، ستحتاج إلى البناء والتثبيت من المصدر:
تثبيت تبعيات بناء.
openssl-devel
pkg-config
CENTOS/FEDORA make
gcc
automake
autoconf
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 ، إذا كنت تدير kernel بنفسك ، تأكد من تجميع تلك الوحدات:
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 ، فإننا نقترح عليك التكوين مع الخيار-القابل للتمكين--PPPD:
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc --enable-legacy-pppd
make
sudo make install
إذا كنت بحاجة إلى تحديد موقع OpenSSL ، فيمكنك تعيين متغير البيئة $PKG_CONFIG_PATH
. من أجل ضبط الأداء ، تحقق من الوسيطات التكوين المتاحة مع ./configure --help
أخيرًا ، قم بتثبيت ppp
أو pppd
وقت التشغيل.
يحتاج exproftivpn إلى امتيازات مرتفعة في ثلاث خطوات أثناء إعداد النفق:
/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
المخصصة.
تحذير : تأكد من أن المستخدمين الموثوق بهم فقط يمكنهم تشغيل exploffpn كجذر! كما هو موضح في #54 ، يمكن للمستخدم الضار استخدام خيارات- --pppd-plugin
و- --pppd-log
لتحويل سلوك البرنامج.
في بعض الحالات ، قد يتطلب الخادم من عميل VPN تحميل وتفاعل مع صفحة ويب تحتوي على JavaScript. اعتمادًا على تعقيد صفحة الويب ، قد يكون تفسير صفحة الويب خارج نطاق برنامج سطر الأوامر مثل exploffpn.
في مثل هذه الحالات ، يمكنك استخدام برنامج خارجي يميز متصفح ويب كامل مثل exproffpn-webview لمصادقة واسترداد ملف تعريف الارتباط للجلسة. يمكن تغذية ملف تعريف الارتباط هذا إلى OpenFortivpn باستخدام الخيار- --cookie-on-stdin
. من الواضح أن هذا الحل يتطلب جلسة رسومية.
لا تتردد في تقديم طلبات سحب!
يجب أن يتبع نمط الترميز C نمط ترميز Kernel Linux.