Решаем задачу организации vpn туннеля. Для этого нам потребуется сделать настройки на сервере и на клиенте (далее по тексту под сервером, понимается серверный компьютер, под клиентом - клиентский компьютер). Я набросал несколько скриптов, которые можно найти на https://github.com/Beggy2000/openvpnscripts. Все это проверялось на Ubunutu 18.04
Установка на сервере:
- Если была установлена предыдущая версия, то имеет смысл сделать полную очистку, предварительно сохранив настройки (в основном, это /etc/openvpn).
- Для сервера:
cp /etc/openvpn/easy-rsa/vars ./backup/
aptitude purge openvpn easy-rsa
rm -rf /etc/openvpn
rm /etc/network/if-up.d/iptable_openvpn
sed -i "s|^[[:space:]]*net\.ipv4\.ip_forward=1|#net.ipv4.ip_forward=1|g" "/etc/sysctl.conf"
sysctl -p
- Для клиента:
cp /etc/openvpn/easy-rsa/vars ./backup/
aptitude purge openvpn easy-rsa openvpn-systemd-resolved
rm -rf /etc/openvpn
- Для сервера:
sudo vim environment.sh
- нужно отредактировать как минимум SERVER_IP, SERVER_NAME, а как максимум - все остальное, если есть желание.sudo ./install.sh
- установит все необходимые пакетыsudo vim /etc/openvpn/easy-rsa/vars
- это может быть не обязательно, но если хочется, то можно отредактировать значения. Не рекомендуется использовать пустые значения для country, provice и т.д.sudo ./setupServer.sh
- создаст конфигурационные файлы и ключи для сервера. Есть тонкость, состоящая в том, что на данный момент переменная KEY_CONFIG в vars расчитывается неверно. Если это так, то скрипт не станет работать и предложит отредактировать vars:
т.е. жестко прописать KEY_CONFIG.
#export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
export KEY_CONFIG="${EASY_RSA}/openssl-1.0.0.cnf"
sudo systemctl start openvpn@server
- запустит сервер с файлом конфигурации server.confsudo systemctl enable openvpn@server
- будет запускать сервер с файлом конфигурации server.conf как системную службу, в том числе при рестарте
./createClient.sh <client name>
- регистрирует клиента с именем<client name>
и создает набор конфигурационных файлов для него. Файл(ы) размещаются в архиве с именем<client name>.tar.gz
./revokeClient.sh <client name>
- удаляет клиента с именем<client name>
.
- персональный компьютер с Ubuntu:
- Перенесите на клиент архив с настройками и ключами(<client name>.tar.gz), который был получен с помощью createClient.sh(см. выше)
sudo aptitude install openvpn easy-rsa openvpn-systemd-resolved
- установить софт на клиентеsudo tar xzf <client name>.tar.gz -C /etc/openvpn/
- распаковать содержимое архива в /etc/openvpn/sudo systemctl start openvpn@<configuration name>
- запустить клиент с файлом конгурации<configuration name>.conf
sudo systemctl enable openvpn@<configuration name>
- по аналогии с сервером(см. выше) - будет запускать клиента с файлом конгурации<configuration name>.conf
как системную службу
- Android устройство<непроверено!>:
- Установите openvpn connect - https://play.google.com/store/apps/details?id=net.openvpn.openvpn
- все последующие шаги можно, наверное, выполнить и на самом устройстве, но, по-моему, удобнее на "большом" компьютере, а после перенести результат.
- Распакуйте архив с настройками и ключами(<client name>.tar.gz), полученный с помощью createClient.sh(см. выше), в какой-нибудь каталог и перейдите в него
mv "<client name>.conf" "<client name>.ovpn"
- переименовать <client name>.conf в <client name>.ovpnmv ./easy-rsa/keys/* ./
- перенести файлы с сертификатами из easy-rsa/keys в текущий каталогsed -i "s|easy-rsa/keys/||g" <client name>.ovpn
- исправить пути к файлам- Все пять полученных файлов нужно перенести на устройство
- Запустить openvpn connect, в правом верхнем углу выбрать Import-Import Profile from SD card и выбрать <client name>.ovpn файл
No comments:
Post a Comment