Установка и настройка OpenVPN

OpenVPN программный комплекс, позволяющий шифровать передаваемый трафик внутри туннеля. Отлично подходит для объединения нескольких офисов в единый сегмент сети. А также для организации удаленного доступа к сети, рабочему месту. В качестве севрера будем использовать операционную систему на базе Linux. В данной статье будет рассмотрен лишь вариант клиент-серверной работы. Будт выложена отдельная статья как создать решение net to net (точка-точка). Все данное ниже будет устанавливаться на Debian 8, но применимо к любому другому дистрибутиву Linux. Отличие лишь в менеджере пакетов.
- Обновляем список пакетов apt-get update
- Обновляем пакеты в системе (если есть доступные обновления) apt-get upgrade
- Устанавливаем сервер OpenVPN apt-get install openvpn
Создаем сертификаты.
Обязательным условием для корректной работы требуется наличие сертификатов клиента и сервера.
Переходим в каталог установки сервера.
# cd /etc/openvpn
Генерация ключей просиходит при помощи утилиты easy-rsa. Но для начала нам надо создат папку для хранения ключей.
# make-cadir rsa-key
# cd rsa-key
Для небольшой автоматизации генерации ключей зададим заранее известные переменные. Для этого отредактируем файл vars со следующими параметрами:
export KEY_COUNTRY= «US»
export KEY_PROVINCE= «CA»
export KEY_CITY= «SanFrancisco»
export KEY_ORG= «Fort-Funston»
export KEY_EMAIL= «me@myhost.mydomain»
KEY_COUNTRY — укажите код страны (RU, UA и т.д.);
KEY_PROVINCE — данный пункт не актуален, если вы не проживаете в США.:) Можно заменить на XX;
KEY_CITY — ваш город, где вы проживаете;
KEY_EMAIL — адрес вашей электропочты.
А также раскомментируйте строку export KEY_CN, в качестве значения для которой укажите имя сервера:
export KEY_CN= «example.com»
Все переменные заполняются латиницей.
Сохраните файл и запустите его.
#. vars
Очищаем старые сертификаты:
#. /clean-all
Создаем корневой сертификат:
#. /build-ca
Создаем сертификат и ключ на сервер:
#. /build-key-server server (server – имя сервера)
Далее надо создать сертификат и ключ на клиента:
#. /build-key client (client – имя клиента)
Создаем ключ Диффи-Хеллмана:
#. /build-dh
Далее настраиваем конфигурационные файлы для сервера и клиента. Конфигурационный файл openvpn для сервера:
port 1194
proto tcp
dev tun
ca /etc/openvpn/ccd/keys/ca.crt
cert /etc/openvpn/ccd/keys/gateway14.itlab77.ru.crt
key /etc/openvpn/ccd/keys/gateway14.itlab77.ru.key # This file should be kept secret
dh /etc/openvpn/ccd/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/ccd
keepalive 10 120
comp-lzo
max-clients 100
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 4
topology subnet
tcp-nodelay
tun-mtu 1500
mssfix
crl-verify /etc/openvpn/ccd/keys/crl.pem
Конфигурационный файл для клиента:
client
dev tun
proto tcp
remote IP-server 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
verb 3
pull
route 192.168.1.0 255.255.255.0
push «route 192.168.1.0 255.255.255.0»
Автор статьи: Андрей Гаркин
Благодарность за статью 100 рублей.