12
Свой DoubleVPN за 20 минутDeepWebMay 27, 2018
Приветствуем всех! Сегодня будем делать свой DoubleVPN.
Для этого нам потребуется 2 сервера\ vps(если openVZ должны быть включены tun\tap адаптеры). На одном из серверов должно быть 2 ip адреса. В качестве ОС используем debian.
Начнем
Идём на сервер с двумя ip.
apt-get update apt-get install openvpn
Идём в каталог:
cd /usr/share/doc/openvpn/examples/sample-config-files
Распаковываем архив:
gzip -d server.conf.gz
Копируем файлы
cp -R /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn
Можно начинать генерировать сертификаты:
cd /etc/openvpn/2.0 ./clean-all source ./vars ./clean-all ./build-ca
Заполняем все поля
Common Name вписываем server
./build-key-server server
Common Name вписываем server
Challenge password Запоминаем его мы вписывали 12345
./build-dh
Сертификаты для сервера готовы, переходим ко клиентским
./build-key-pass client1
Первым делом у нас спросят пароль для клиентского сертификата (мы указывали 9999)
Common Name вписываем client1. После ввода e-mail адреса запросят Challenge password вспоминаем какой вводили указываем его (в нашем случае 12345)
./build-key-pass client2
Для генерации второго и последующих сертификатов не забываем менять Common Name.
Переходим к настройке и запуску сервера.
cd /etc/openvpn
Очистим файл конфигурации сервера
echo " " > server.conf
Установим консольный текстовый редактор
apt-get install nano nano server.conf
local 46.37.169.30 port 1800 proto tcp dev tun ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt key /etc/openvpn/server.key dh /etc/openvpn/dh1024.pem push "redirect-gateway def1" push "dhcp-option DNS 66.96.208.21" user nobody group nobody server 10.8.0.0 255.255.255.0 keepalive 10 120 persist-key persist-tun comp-lzo max-clients 10 up up down down
Комменты к конфигу:
local - адрес где крутится demon
port - порт на котором запускается demon
push "dhcp-option DNS 66.96.208.21"
66.96.208.21 адрес dns сервера через который будем резолвится. Взять его можно тут:cat /etc/resolv.conf.
Добавим права на выполнение двум скриптам
chmod +x up down nano /etc/default/openvpn
Ищем строку OPTARGS="" и приводим её к виду OPTARGS="--script-security 2"
Теперь включаем ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
Добавим группу nobody
addgroup nobody
копируем файлы сертов:
cp -R /etc/openvpn/2.0/keys/ca.crt /etc/openvpn/ cp -R /etc/openvpn/2.0/keys/server.crt /etc/openvpn/ cp -R /etc/openvpn/2.0/keys/server.key /etc/openvpn/ cp -R /etc/openvpn/2.0/keys/dh1024.pem /etc/openvpn/
Запускаем демон:
/etc/init.d/openvpn start
VPN сервер готов впринципе через него уже можно работать, но у нас целью был DoubleVPN поэтому продолжаем настройку.
Идём на сервер где у вас 1 ip.
apt-get update apt-get install openvpn
Чтобы вновь не объяснять как генерятся сертификаты сгенерил пачку сертификатов и залил для общего пользования: http://www.sendspace.com/file/9eu4s7
Скачиваем эти файлы, коннектимся к серверу через winSCP заходим в папку /etc/openvpn И копируем всё содержимое архива туда(Вместе с папкой ip_1)
В терминале:
cp /etc/openvpn/ip_1/server.conf /etc/openvpn/ nano /etc/openvpn/server.conf
Меняем в строке local ip-адрес на адрес сервера на котором вы сейчас находитесь. И удаляем строки status и log. Этим отключим логирование нашего сервера.
Теперь надо исправить up и down скрипты
nano /etc/openvpn/ip_1/up
Видим ip адрес 184.82.183.28 меняем его на адрес вашего сервера.
nano /etc/openvpn/ip_1/down
Видим ip адрес 184.82.183.28 меняем его на адрес вашего сервера.
Добавим права на выполнение на файлы up и down
chmod +x /etc/openvpn/ip_1/down chmod +x /etc/openvpn/ip_1/up
Далее.
nano /etc/default/openvpn
Ищем строку OPTARGS="" и приводим её к виду OPTARGS="--script-security 2"
Теперь включаем ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
Запускаем openvpn.
/etc/init.d/openvpn start
Возвращаемся к серверу с двумя IP. Скачиваем http://www.sendspace.com/file/vjuiqb
Подключаемся через winSCP в папку /etc/openvpn и закидываем папку из архива ip_
Затем копируем файл конфига
cp /etc/openvpn/ip_1/client.conf /etc/openvpn/ nano /etc/openvpn/client.conf
remote Указываем ip адрес сервера с 1 ip
local указываем второй ip адрес вашего сервера
Удаляем строки status и log
Добавляем файлам права на выполнение
chmod +x /etc/openvpn/ip_1/down chmod +x /etc/openvpn/ip_1/up
И редактируем конфиг
nano /etc/openvpn/server.conf
в local вписываем 192.168.1.2
/etc/init.d/openvpn restart
Клиентская часть
Вот мы и подошли к финальной части настроек, а именно настроек клиентской части. Скачиваем с сервера с двумя ip_адресами из папки /etc/openvpn/2.0/keys
Файлы:
ca.crt
client1.crt
client1.key
Надеюсь что openvpn у вас уже установлен. Идём в папочку
C:\Program Files\OpenVPN\config И там создаём папочку test. В неё помещаем скачанные файлы. Теперь скачиваем образец конфига:
http://www.sendspace.com/file/g89eg2
Скачанный файлик помещаем в папочку test
Теперь редактируем его.
remote 217.12.220.71 1800 217.12.220.71
Меняем на ip сервера на котором один ip адрес.
ca ca.crt
cert client1.crt
key client1.key
Исправляем если сертификаты клиентов имеют иные имена.
Всё готово, осталось скачать утилиту которая будет следить за тем чтобы соединение не разорвалось, подойдёт утилита любого vpn сервиса.
Теперь осталось подключиться к нашему впн и радоваться жизни, трафик идёт по схеме : сервер с 1ip<-->сервер с 2ip<-->сеть.