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 경로를 설정하지 말고 /etc/resolv.conf
에 VPN Nameservers를 추가하지 마십시오.
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
설치해야합니다. LIBP11의 PKCS11 엔진은 P11-Kit-Devel 설치로 컴파일해야합니다. 이 분야의 알려진 문제에 대한 논의는 #464를 확인하십시오.
SmartCard를 사용하려면 최소 pkcs11:
사용자 관리 구성 또는 CommandLine 옵션에 넣으십시오. 전체 또는 부분 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
와 함께 토큰 ORI를 얻을 수 있습니다.
여러 독자가 현재 지원되지 않습니다.
SmartCard 지원은 Linux에서 Yubikey에서 테스트되었지만 다른 PIV 활성화 된 SmartCards도 작동 할 수 있습니다. Mac OS X Mojave에서는 PKCS Engine-by-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에서보다 완전한 개요를 얻을 수 있습니다.
다른 배포판의 경우 소스에서 빌드 및 설치해야합니다.
빌드 의존성을 설치하십시오.
gcc
automake
autoconf
openssl-devel
make
pkg-config
gcc
automake
autoconf
libssl-dev
pkg-config
make
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에서 '홈 브루'설치를 설치하여 빌드 종속성을 설치하십시오.
# 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
현재 MACOS의 현재 버전과 같은 PPPD <2.5.0이있는 플랫폼을 타겟팅하는 경우 옵션 -Enable Legacy-PPPD를 구성하는 것이 좋습니다.
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc --enable-legacy-pppd
make
sudo make install
OpenSSL 위치를 지정 해야하는 경우 $PKG_CONFIG_PATH
환경 변수를 설정할 수 있습니다. 미세 조정을 위해 사용 가능한 경우, 특히 크로스 컴파일 할 때 ./configure --help
로 인수를 구성하십시오.
마지막으로 런타임 종속성 ppp
또는 pppd
설치하십시오.
Openfortivpn은 터널 설정 중에 3 단계로 높은 권한이 필요합니다.
/usr/sbin/pppd
프로세스를 스폰 할 때;/etc/resolv.conf
에 Nameservers를 추가 할 때 (터널이 올라올 때). 이러한 이유로 sudo openfortivpn
사용해야합니다. 비 서체 사용자가 사용할 수 있어야하는 경우 /etc/sudoers.d
에있는 /etc/sudoers
또는 파일에 항목을 추가하는 것을 고려할 수 있습니다.
예를 들어:
visudo -f /etc/sudoers.d/openfortivpn
Cmnd_Alias OPENFORTIVPN = /usr/bin/openfortivpn
%adm ALL = (ALL) OPENFORTIVPN
openfortivpn
경로를 변경하거나 전용 openfortivpn
그룹과 같이 adm
과 다른 그룹을 선택하여 위의 예를 적용하십시오.
경고 : 신뢰할 수있는 사용자 만 OpenFortivPN을 루트로 실행할 수 있는지 확인하십시오! #54에 설명 된 바와 같이, 악의적 인 사용자는 --pppd-plugin
및 --pppd-log
옵션을 사용하여 프로그램의 행동을 전환 할 수 있습니다.
경우에 따라 서버는 VPN 클라이언트가 JavaScript가 포함 된 웹 페이지와로드 및 상호 작용하도록 요구할 수 있습니다. 웹 페이지의 복잡성에 따라 웹 페이지를 해석하는 것은 OpenFortivPN과 같은 명령 줄 프로그램의 범위를 벗어날 수 있습니다.
이 경우 Openfortivpn-Webview와 같은 본격적인 웹 브라우저를 산란하여 세션 쿠키를 인증하고 검색하는 외부 프로그램을 사용할 수 있습니다. 이 쿠키는 옵션 --cookie-on-stdin
사용하여 OpenFortivPN에 공급할 수 있습니다. 분명히, 그러한 솔루션에는 그래픽 세션이 필요합니다.
풀 요청을 자유롭게하십시오!
C 코딩 스타일은 Linux 커널 코딩 스타일을 따라야합니다.