Автоматизация подключения к VPN

Я надеюсь автоматизировать запуск VPN-подключения при запуске пакета CentOS 6.5. У меня есть клиент VPN Fortinet, который я запускаю в командной строке следующим образом:

[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, я замечаю, что это не работает только один процесс, но на самом деле все четыре одинаковые, что тоже прекрасно. Просто не знаю, влияет ли это на мои варианты автоматизации. Я также хотел бы автоматически перезапустить соединение, если он терпит неудачу. Какие-либо предложения?

  • logmein-hamachi - не может войти в Linux VM
  • Невозможно добавить статический маршрут в мой Ubuntu, SIOCADDRT: сеть недоступна
  • не может ssh на удаленный хост с корнем, неверный пароль
  • Не работает привязка к интерфейсу VPN
  • VPN, один сервер, несколько клиентов
  • Ограничить доступ DD-WRT к VPN
  • ограничение удаленного входа vpn на ip-адрес в CentOS 7
  • Клиенты OpenVPN не могут использовать свое подключение к Интернету
  • One Solution collect form web for “Автоматизация подключения к VPN”

    Я использую этот код (сначала вы должны установить пакет 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 
    Linux и Unix - лучшая ОС в мире.