it4it

Блог обо всем моем

Flower

Создание VPN сети с помощью OpenVPN


Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2879

Потребовалось мне тут на досуге, реализовать VPN сеть для пары десятков компьютеров, находящихся в разных точках Земли. Для этого выбрал OpenVPN, а для сервера использовал свой VPS, который видят все.

Итак, первое что нам необходимо, это установить OpenVPN

apt-get install openvpn

После этого, настрйока сервера и клиентов сводится к генерации ключей, раздачи их клиентам и написании 2-х конфигов (для сервера и клиентов).

Идем в папку /usr/share/openvpn/easy-rsa/2.0 (в этйо папке хранятся скрипты для создания ключей)

cd /usr/share/openvpn/easy-rsa/2.

Теперь, начнем генерацию ключей:

1. Редактируем файл vars, который хранит значения по-умолчанию (чтобы не вводить кучу раз)

nano vars

В самом низу, меняем

export KEY_COUNTRY="RU"
export KEY_PROVINCE="Moscow oblast"
export KEY_CITY="Moscow"
export KEY_ORG="my-network"
export KEY_EMAIL="root@mynet.ru"

Теперь экспортиуре этот файл и генерируем корневой сертификат:

source ./vars
./clean-all
./build-ca

После, генерируем ключ сервера:

./build-key-server server

На последние 2 вопроса, отвечаем Y44

После, генерируем  ключ Диффи-Хэлмана

./build-dh

Он делается несколько минут, придется подождать

Теперь, генерируем ключи для каждого клиента

./build-key client_name

После этого, отдаем клиентам их ключи, а также файл ca.crt

Для большей защиты, на файлы server.key установить права 600, а на server.crt и dh1024.pem права 644

Теперь надо написать конфиг сервера.

port 1194 #порт, на котором работать (рекомендуемый)
ть (ре#протокол, можно tcp
)
proto#устройство, которое будет использоваться
 tun #устройство, которое будет использоваться
ca путь_до_файла_ca.crt
cert путь_до_фай#подсеть и маска для ВПН сети, из нее будут выдаваться адреса клиентам
_файла_dh10#разрешаем общение между клиентами
5.0 #подсеть и маска для В#это позволит выдавать клиентам один и тот же IP
ться#компрессия
 клиент#максимальное количество клиентов
аем общен#каждые 10 секунд пинг, если нет ответа 120 секунд, то откидывать клиента
txt #это #хранить ключи в памяти, не перечитывать с диска
 один #позволять держать соединение
мпрессия
max-clients 2#статус сервера
льн#уровень отладки (нормально 2)
ентов
keepalive 10 120#файл логов

Теперь нам надо подготовить конфиг для клиентов.

На Windows, OpenVPN устанавливается в C:\Program FIles\OpenVPN, а конфиг в папке config (логично :) . Создадим в ней новый конфиг openvpn.ovpn и кинем в нее же сгенерированные ключи и сертификаты.

Впишем в конфиг следующее:

client #указываем что мы клиент
 мы #не цепляться за интерфейс
епл#используемое устройство
фейс
d#протокол
спользуемое #куда конектиться
о
proto udp #прот#количество попыток, infinite-бесконечно
 #куда #хранить ключ в памяти
resolv-retry#держать соединение
еств#сжатие
ыток, infinite-беско#ключи
о
persist-key #хранить к

После этого, запустим OpenVPN, кликнем Connect, дождемся, когда компьютерики станут зелеными (это будет значить, что к серверу успешно подключились). Теперь можно открыть cmd и пропинговать шлюз, если пакеты ходят, то значит что все хорошо :)

Тэги: ,