Startup

啟動時自動連接到 VPN

  • October 19, 2017

我希望在啟動 CentOS 6.5 機器時自動啟動 VPN 連接。我有一個在命令行上執行的 Fortinet VPN 客戶端,如下所示:

[centhost]$./forticlientsslvpn_cli --server 10.0.0.50:443 --vpnuser userxyz --keepalive
VPN Password:
Server certificate is invalid. Do you want to connect anyway? [y/n]
Connection successful.
Tunnel running.

自動化此連接的挑戰是我需要輸入 VPN 密碼,然後接受無效證書。此外,VPN 客戶端似乎在連接後繼續作為使用者程序執行,而不是守護程序,這很好,但我需要它繼續在後台執行。另外,當我做一個 ps aux | grep forti,我注意到它不僅執行一個程序,而且實際上執行了四個相同的程序,這也很好。只是不知道這是否會影響我的自動化選擇。如果連接失敗,我還想自動重新啟動連接。有什麼建議麼?

我正在使用此程式碼(您必須先安裝expect軟體包):

我已經安裝forticlientsslvpn_cli/opt/forticlientsslvpn. 用您的值替換IP_FORTIGATEPORT_FORTIGATEVPN_USERNAME和。VPN_PASSWORD

#!/usr/bin/expect -f
set force_conservative 0  ;
if {$force_conservative} {
   set send_slow {1 .1}
   proc send {ignore arg} {
           sleep .1
           exp_send -s -- $arg
   }
}
set timeout -1
spawn $env(SHELL)
match_max 100000
send -- "cd /opt/forticlientsslvpn/\r"
send -- "./forticlientsslvpn_cli --server IP_FORTIGATE:PORT_FORTIGATE --vpnuser VPN_USERNAME"
expect -exact "./forticlientsslvpn_cli --server IP_FORTIGATE:PORT_FORTIGATE --vpnuser VPN_USERNAME"
send -- "\r"
expect -exact "\r
Password for VPN:"
send -- "VPN_PASSWORD\r"
expect -exact "\r
STATUS::Setting up the tunnel\r
STATUS::Connecting...\r"
send -- "Y\r"
expect eof

引用自:https://unix.stackexchange.com/questions/191106