Блог о Gentoo и около-линуксовым штукам

14 декабря 2017 г.

ovpnWrapper

05:07 Опубликовал Дмитрий Исаенко , , , Нет комментариев
При использовании OpenVPN удобнее всего выдавать пользователю один файл со всеми настройками, ключами и необходимыми сертификатами. К счастью, их легко встроить в файл .ovpn. 
Итак встраивать, как известно, нужно:
ca.crt
client.crt
client.key
Не плохо было бы автоматизировать процесс. Для этого и написан ovpnWrapper. Это достаточно простой скрипт на python для генерирования и/или агрегирования всех необходимых файлов в один. (Ссылка в конце.)
Используется он в паре с easyrsa3 (семантика более ранних версий не поддерживается). Его нужно поместить в ту же папку, что и easyrsa и немного настроить.

Рассмотрим поближе.
В первой строке необходимо указать путь до интерпретатора python 3. 
#!/usr/bin/python3.5
Далее нам интересна строка, где мы указываем путь до папки, в которой хотим хранить сгенерированные файлы .ovpn.
ovpnFolder = os.environ['HOME']+"/ovpn/"
Как видно, по-умолчанию она указывает на папку ovpn/ в домашней директории.
Исправим serverCA, который определяет полный путь к файлу ca.crt
serverCA = '/etc/openvpn/server/ca.crt'
Исправим также commonTLS который должен указывать на нужный файл  (добавлено в версии 0.2. Если вам это не нужно, используйте 0.1)
commonTLS = '/etc/openvpn/server/tls.ta'
И последнее, но не по значимости, head. Тут указываются все предопределённые настройки.
head = "\
client                                     \n\
tls-client                                 \n\
dev tun                                    \n\
proto udp                                  \n\
remote your.host.name.located.here.! 1194  \n\
cipher AES-256-CBC                         \n\
resolv-retry infinite                      \n\
nobind                                     \n\
persist-tun                                \n\
persist-key                                \n\
verb 3                                     \n\                                                                                                                                                                                          
" 
Теперь меняем права файлику:
# chmod +x ovpnWrapper.sh
И запускаем, передавая в качестве единственного параметра имя для файлов-сертификата, ключа и сгенерированного .ovpn.
# ./ovpnWrapper.sh client42
Он проверит, не существует ли уже сгенерированных ключа+сертификата клиента, и если нет, то создаст их. Если есть — просто создаст .ovpn файл в указанной выше директории.
Всё что требуется, читать вывод скрипта (Будьте бдительны: английский).
Вообще у меня easyrsa на каком-то этапе ругался на openssl-1.1.0f но всё что нужно генерировал.

На этом всё. Приложение качать отсюда: https://github.com/developersu/ovpnWrapper/releases/

0 коммент.:

Отправить комментарий