Startup
啟動時自動連接到 VPN
我希望在啟動 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_FORTIGATE
、PORT_FORTIGATE
、VPN_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