PDA

Просмотр полной версии : DoubleVPN за час своми руками.


AllianceHost
24.03.2012, 00:51
Потребуется 2 сервера\ vps(если openVZ должны быть включены tun\tap адаптеры). На 1 из серверов должно быть 2 ip адреса.

В качестве ос использованы debian.

Идём на сервер с 2мя 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


Добавим права на выполнение 2м скриптам


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_1

копирем файл конфига


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


Вот мы и подошли к финальной части настроек, а именно настроек клиентской части.

Скачиваем с сервера с 2мя 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 сервера на котором 1ip адрес.

ca ca.crt

cert client1.crt

key client1.key

Исправляем если сертификаты клиентов имеют иные имена.

Всё готово, осталось скачать утилиту которая будет следить за тем чтобы соеденение не разорвалось, подойдёт утилита любого vpn сервиса.

Теперь осталось подключиться к нашему впн и радоваться жизни, трафик идёт по схеме : сервер с 1ipсервер с 2ipсеть.