Потребуется 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сеть.