Openbsd 4.8 OpenVPN

Периодами возникает необходимость быстро развернуть VPN на шифрованных каналах к внутренним ресурсам предприятия - сервера/коммутаторы/маршрутизаторы. Один из простых способов это реализовать использовать пакет OpenVPN. Ниже процесс настройки и установки из исходных кодов, с примерами конфигурационных файлов.

Скачиваем с  сайта последний архив с исходным кодом, распаковываем, компилируем, устанавливаем. Это не составляет труда, необходимо только при конфигурировании указать путь к файлам заголовков и библиотек пакета компрессии lzo, если Вы ее собираетесь вообще использовать, иначе отключаем. Остальные опции на Ваше рассмотрение.
Осталось только создать конфигурационный файл на стороне сервера и подготовить сертификаты и ключи. Я предпочитаю X509 PKI, так как масштабируемое решение, можно дать одновременный доступ нескольким сотрудникам к внутренним ресурсам, отзывать сертификаты ограничив их доступ. Если Вы единственный пользователь, то возможно симметричного ключа вполне достаточно, что посути завершает и упрощает настройку OpenVPN`а в пару строчек.  Всё что касается конфигурационных файлов, я храню в /etc, поэтому в нем же создам папку openvpn, где и будет хранится один конфигурационный фал, а так же необходимые ключи и сертификаты. Назову конфигурационный файл server.conf. Самый простой способ генерировать сертификаты и ключи - использовать easy-rsa, который поставляется совместно с исходными текстами. Заходим в папку easy-rsa(я использую 2.0) исходных кодов и делаем make install DESTDIR=/etc/openvpn/easy-rsa. После этого все необходимые файлы копируются в /etc/openvpn/easy-rsa

Далее генерируем сертификат и секретный ключ, которым будем подписывать всё остальное, но прежде чем начать что-то генерировать, подправьте под себя файл vars, что бы меньше вводить, а просто жать на ввод. После корректировки под себя, загружаем его ksh# . vars находясь в каталоге /etc/openvpn/easy-rsa

ksh#./build-ca

Далее отвечаем на вопросы. По завершению получим сертификат - ca.crt и секретный ключ ca.key в каталоге /etc/openvpn/easy-rsa/keys, в этом каталоге будут генериться разные сертификаты и ключи. Не забывайте копировать нужное в /etc/openvpn или корректно прописывать путь в server.conf

Теперь генерируем сертификат и ключ на сам сервер.

ksh#./build-key-server server

Аналогично отвечаем на вопросы и на выходе получаем server.crt и server.key. Копируем их в /etc/openvpn

Осталось только нагенерировать клиентских сертификатов и подписать их все тем же easy-rsa, последовательно отвечая на вопросы.

ksh#./build-key myhome

На выходе имеем сертификат myhome.crt и ключ myhome.key

Главное не "потерять" ключи, сертификаты не так страшно. На клиентской стороне понадобится: ключ и сертификат клиента, а также сертификат корневой.

Diffie Hellman параметры генерируем через

ksh#./build-dh

Они нужны для рукопожатия.

Для авто запуска OpenVPN после перезагрузки сервера прописыаем в /etc/rc.local

if [ -x /usr/local/sbin/openvpn ]; then
         /usr/local/sbin/openvpn --daemon --config /etc/openvpn/server.conf
     fi
 

Сами конфигурационные файлы ниже.

#cat /etc/openvpn/server.conf
local x.x.x.x(ваш реальный ip)
port 1234
mode server
tls-server
cipher DES-EDE3-CBC
proto udp
dev tun0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key  # This file should be kept secret
dh /etc/openvpn/dh1024.pem
crl-verify /etc/openvpn/crl.pem
server 10.0.0.0 255.255.255.0
push "route 172.16.100.0 255.255.255.0"
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
user nobody
group users
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
 

Все параметры в текстовом файле интуитивно понятны, crl-verify параметр необходим только когда отзываем сертификаты.

[root@client]# cat /etc/openvpn/client.conf
client
dev tun
proto udp
remote x.x.x.x 1234
nobind
persist-key
cipher DES-EDE3-CBC
tls-client
ns-cert-type server
ca /etc/openvpn/ca.crt
cert /etc/openvpn/myhome.crt
key /etc/openvpn/myhome.key
comp-lzo
verb 3
 

Приватная сеть предприятия, как Вы понимаете - 172.16.100.0/24, а при подключении на VPN получаете адрес из пула 10.0.0.0/24. Так  же необходимо создать /etc/hostname.tun0 и записать в него слово up.

Level Up
Sponsors:

Контактная информация

Если у Вас есть какие-либо вопросы, Вы можете связаться с нами:

Отдел продаж: (с 10:00 до 18:00)

Icq: 155-10-6525

E-mail: sales@golas.ru