Разворачиваем за минуту openvpn-сервер с пользовательскими ключами
Вступление
Про правильную настройку OpenVPN на пользовательском компьютере (клиенте) мы уже писали, сегодня речь пойдёт о мгновенном развёртывании OpenVPN-сервера и генерации пользовательских ключей.
Для этого можно использовать самую дохлую и дешёвую (3-5$ в год(!)) vps’ку, либо RaspberryPI.
Представленный ниже скрипт тестировался и работает на более-менее современных версиях Debian, Ubuntu, CentOS.
Установка OpenVPN на сервер
Вся установка сводится к скачиванию и запуску соответствующего скрипта (назвал его OpenVPN Paranoid Installer):
$ sudo su
# wget https://raw.githubusercontent.com/cryptopunks/openvpn_paranoid_installer/master/openvpn_paranoid_installer.sh --no-check-certificate -O openvpn_paranoid_installer.sh; bash openvpn_paranoid_installer.sh
Особые параноики могут скачать скрипт самостоятельно, ознакомится с его содержанием и лишь после запустить; это - самое правильное решение для всего что качается из интернетов и github не исключение.
Инсталлятор запросит на какой из IP вешать OpenVPN, какой порт для него использовать (советую поставить нестандартный, либо 443, если он не занят https), какой DNS-сервер использовать (на выбор предоставит несколько вариантов), необходимый размер ключа, пароль (если требуется), после чего запросит имя первого клиентского файла с конфигом и ключами (их размер и пароль) и начнёт устанавливать необходимые пакеты и генерировать ключи.
При этом все необходимые sysctl-переменные и правила iptables пропишутся автоматически в автозагрузку (используются файлы /etc/sysctl.conf и /etc/rc.local).
Для большей безопасности можете воспользоваться советами из статьи Безопасное хранение ключей OpenVPN на сервере без шифрованного диска.
Работа с клиентом
После окончания работы скрипта в домашней директории появится файл с расширением .ovpn который и будет являться пользовательским конфигом (конфигом и всеми необходимыми ключами, всё-в-одном). Его необходимо скопировать на клиентскую машину и запустить:
$ sudo openvpn --config client.ovpn
Файл этот необходимо хранить в тайне, потому как если он утечёт - можно будет расшифровать весь ваш трафик.
Если вы работаете в *nix-системе, то советую скопировать его в /etc/openvpn, сменить владельца на root и выставить чтение/запись только root:
# cp client.ovpn /etc/openvpn
# chown -R root:root /etc/openvpn
# chmod -R 600 /etc/openvpn
Ну и запускать соответственно под root:
$ sudo openvpn --config /etc/openvpn/client.ovpn
Что ещё умеет OpenVPN Paranoid Installer
На момент написания статьи скрипт умеет при повторном запуске управлять пользовательскими ключами (создавать и отзывать их) и имеется функция удаления всего что он поставил и прописал в системе.
Советую подписаться на репозиторий: https://github.com/cryptopunks/openvpn_paranoid_installer, либо при поднятии нового VPN обращаться всегда к свежей версии, т.к. допиливаться сей инструмент планируется.
Свои пожелания и предложения по улучшению можете отправлять на почту.