Установите туннель openvpn в сценарии удара

Вот один способ, которым Вы могли сделать это:

sed '1,/firstmatch/d;/secondmatch/,$d' 

Объясненный: От первой строки до строки, соответствующей firstmatch, удалить. От строки, соответствующей secondmatch к последней строке, удалить.

3
12.03.2011, 04:38
4 ответа

хорошо я сумел получить туннельный пароль openvpn, введенный автоматически, и также сумел заставить туннель работать на начальной загрузке. надо надеяться, это помогает кому-то еще, кто пытается сделать то же самое - потому что его взятый меня более чем 20 часов для выяснения чего-то, что теперь выглядит довольно основным. код:

$ cat /etc/init.d/ZZcreate_ovpn_tun.sh
#!/bin/bash

# check if the tunnel already exists before trying to create it
proc=$(ps aux | grep openvpn | grep Userxxx)
if [ "$proc" == "" ]; then
  echo "ovpn tunnel does not exist yet - will create it now"
else
  echo "ovpn tunnel already exists ($proc)"
  exit 0
fi

# load the config file into openvpn - has options to request the pkcs12 password through
# telnet
nohup openvpn /etc/init.d/ovpn/Userxxx.ovpn
sleep 1

# enter the password though a telnet session
/etc/init.d/ovpn/telnet_commands.sh

$ cat /etc/init.d/ovpn/telnet_commands.sh
#!/usr/bin/expect
spawn telnet 127.0.0.1 5558
expect ">PASSWORD:Need 'Private Key' password"
send "password 'Private Key' xxxxxxxxxxxxx\r"
expect "SUCCESS: 'Private Key' password entered, but not yet verified"
send "quit\r"
expect eof

$ cat Userxxx.ovpn
#OpenVPN Server conf
tls-client
client
dev tun
proto udp
tun-mtu 1400
remote xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.com.au 1194
pkcs12 /etc/init.d/ovpn/Userxxx.p12
cipher AES-256-CBC
comp-lzo
verb 3
ns-cert-type server
tls-remote xxxxxxxxxxxxxxxxxxxxxxxxxxx.com.au
management 127.0.0.1 5558
management-query-passwords

$ sudo update-rc.d ZZcreate_ovpn_tun.sh defaults
$ sudo shutdown -r 0

$ # wait for system to boot up again
$ ps aux | grep openvpn
root 5279  0.0  0.1  28224  3728 ? S 22:48 0:00 openvpn /etc/init.d/ovpn/Userxxx.ovpn

можно также хотеть перенаправить весь вывод в файл так, чтобы, если он перестал работать, Вы смогли видеть почему. я назвал файл ZZcreate_ovpn_tun.sh, чтобы удостовериться, что он пришелся последним изо всех сценариев в init.d dir идеально, я просто удостоверюсь, что он только работал на уровне приблизительно 6, но это хорошо работает на данный момент.

1
27.01.2020, 21:11

Я ожидал бы все, что это ищет, пароль для закрытого ключа. Попытайтесь использовать echo -e "xxxxxxxxx\r\n" или echo "xxxxxxxx".

Можно хотеть попытаться использовать expect ответить на запрос пароля. Некоторые программы пароля ищут пароль на a tty введите устройство. Программа ожидает, обрабатывает это.

Можно быть более обеспеченным поиском rc.d сценарий init для запуска туннеля. Это - нормальный метод для стартовых вещей при запуске.

1
27.01.2020, 21:11
  • 1
    , возможно, я не был достаточно ясен. для ручного ввода пароля ЕДИНСТВЕННАЯ вещь, которая требуется, состоит в том, чтобы открыть сессию telnet как так telnet 127.0.0.1 5558 и затем введите пароль как так: password 'Private Key' xxxxxx. это точно, что я имею в своем telnet_commands.sh сценарии, но он не работает. я изучил 'ожидать' программу, но я думаю, что это было бы излишество в этом случае, так как существует только когда-либо одна вещь, которую требуют в рамках сессии telnet. –  mulllhausen 12.03.2011, 04:33
  • 2
    @mullhausen: Я попытался бы использовать, ожидают вводить значение. Это разработано, чтобы сделать такого рода вещь. –  BillThor 12.03.2011, 04:38
  • 3
    хорошо у меня есть он работа. благодарит указать на меня в правильном направлении. в конце я использовал, ожидают и добавил мой сценарий к/etc/init.d - я отправлю решение через секунду –  mulllhausen 15.03.2011, 14:29

Мой рабочий случай с маленьким исправлением:

nohup openvpn /etc/init.d/ovpn/Userxxx.ovpn &
/etc/init.d/ovpn/telnet_commands.sh
2
27.01.2020, 21:11

Просто требуемый, чтобы упомянуть, что (по крайней мере, на Ubuntu 12.04) существует - askpass/your/file аргумент в пользу openvpn, который читает пароль с закрытым ключом из файла.

4
27.01.2020, 21:11
  • 1
    Аналогично существует askpass опция можно использовать в .conf файле. (Полномочия набора к 600 для предотвращения отслеживания.) –  Paul Bissex 01.12.2014, 17:46

Теги

Похожие вопросы