Потребуется 2 сервера\ vps(если openVZ должны быть включены tun\tap адаптеры). На 1 из серверов должно быть 2 ip адреса.
В качестве ос использованы debian.
Идём на сервер с 2мя ip.
Сообщение от
None
apt-get update
apt-get install openvpn
Идём в каталог:
Сообщение от
None
cd /usr/share/doc/openvpn/examples/sample-config-files
Разпаковываем архив:
Сообщение от
None
gzip -d server.conf.gz
Копируем файлы
Сообщение от
None
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
Можно начинать генерить сертификаты:
Сообщение от
None
cd /etc/openvpn/2.0
./clean-all
source ./vars
./clean-all
./build-ca
Заполняем все поля
Common Name вписываем server
Сообщение от
None
./build-key-server server
Common Name вписываем server
Challenge password Запоминаем его я вписывал 12345
Сообщение от
None
./build-dh
Сертификаты для сервера готовы, переходим ко клиентским
Сообщение от
None
./build-key-pass client1
Первым делом запросят пароль для клиентского сертификата(я указывал 9999)
Common Name вписываем client1
После ввода e-mail адреса запросят Challenge password вспоминаем какой вводили указываем его(в моём случае 12345)
Сообщение от
None
./build-key-pass client2
Для генерации второго серта и тд незабываем менять Common Name.
Переходим к настройке и запуску сервера.
Сообщение от
None
cd /etc/openvpn
Очистим файл конфигурации сервера
Сообщение от
None
echo " " > server.conf
Инсталим консольный текстовый редактор
Сообщение от
None
apt-get install nano
nano server.conf
Сообщение от
None
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 сервера через который будем резолвится:
взять можно тут:
Сообщение от
None
cat /etc/resolv.conf
Добавим права на выполнение 2м скриптам
Сообщение от
None
chmod +x up down
nano /etc/default/openvpn
Ищем строку OPTARGS="" и приводим её к виду OPTARGS="--script-security 2"
Теперь включаем ip_forward
Сообщение от
None
echo 1 > /proc/sys/net/ipv4/ip_forward
Добавим группу nobody
Сообщение от
None
addgroup nobody
копируем файлы сертов:
Сообщение от
None
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/
Запускаем демон:
Сообщение от
None
/etc/init.d/openvpn start
VPN сервер готов впринципе через него уже можно работать, но у нас целью был DoubleVPN поэтому продолжаем настройку.
идём на сервер где у вас 1 ip.
Сообщение от
None
apt-get update
apt-get install openvpn
Чтобы вновь не объяснять как генеряться сертификаты сгенерил пачку сертификатов и залил для общего пользования:
Скачиваем эти файлы, конектимся к серверу через winSCP заходим в папку /etc/openvpn Икопируем всё содержимое архива туда(Вместе с папкой ip_1)
В терминале:
Выполняем
Сообщение от
None
cp /etc/openvpn/ip_1/server.conf /etc/openvpn/
Сообщение от
None
nano /etc/openvpn/server.conf
Меняем в строке local ip-адрес на адрес сервера на котором вы сейчас находитесь.
И удаляем строки status и log. Этим отключим логирование нашего сервера.
теперь надо исправить up и down скрипты
Сообщение от
None
nano /etc/openvpn/ip_1/up
Видим ip адрес 184.82.183.28 меняем его на адрес вашего сервера.
Сообщение от
None
nano /etc/openvpn/ip_1/down
Видим ip адрес 184.82.183.28 меняем его на адрес вашего сервера.
Добавим права на выполнение на файлы up и down
Сообщение от
None
chmod +x /etc/openvpn/ip_1/down
chmod +x /etc/openvpn/ip_1/up
Далее.
Сообщение от
None
nano /etc/default/openvpn
Ищем строку OPTARGS="" и приводим её к виду OPTARGS="--script-security 2"
Теперь включаем ip_forward
Сообщение от
None
echo 1 > /proc/sys/net/ipv4/ip_forward
Запускаем openvpn.
Сообщение от
None
/etc/init.d/openvpn start
Возвращаемся к серверу с двумя IP.
Скачиваем
http://www.sendspace.com/file/vjuiqb
Подключаемся через winSCP в папку /etc/openvpn
закидываем папку из архива ip_1
копирем файл конфига
Сообщение от
None
cp /etc/openvpn/ip_1/client.conf /etc/openvpn/
Сообщение от
None
nano /etc/openvpn/client.conf
remote Указываем ip адрес сервера с 1 ip
local указываем второй ip адрес вашего сервера
Удаляем строки status и log
Добавляем файлам права на выполнение
Сообщение от
None
chmod +x /etc/openvpn/ip_1/down
chmod +x /etc/openvpn/ip_1/up
И редактируем конфиг
Сообщение от
None
nano /etc/openvpn/server.conf
в local вписываем 192.168.1.2
Сообщение от
None
/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сеть.