Установка и настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint

Установка и настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint

В данной теме «Установка и настройка OpenVPN сервера на Debian, Ubuntu, Linux Mint», я расскажу как можно установить openVPN сервер на Debian, Ubuntu, Linux Mint, так же покажу как можно его настроить под себя. Приведу готовые примеры для хорошего понимания.

OpenVPN является полнофункциональным приложением с открытым исходным кодом и решение SSL VPN, что позволяет использовать широкий диапазон конфигураций. OpenVPN эффективное и легкое решение которое целенаправленно расчитано для рынков МСП и предприятий.

Установка OpenVPN сервера на Debian/Ubuntu/Linux Mint.

Для этого достаточно выполнить команду:

# sudo apt-get install bridge-utils openvpn libssl-dev openssl

Это займет некоторое время, после установки нужно будет немного настроить (сконфигурировать) наш сервер с OpenVPN.

Настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint.

Первым шагом будет создание сертификата для OpenVPN сервера, по этому выполните команду:

Если вы используете старую  версию OpenVPN, выполните команду:

# mkdir /etc/openvpn/easy-rsa
# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa

Начиная с 2013-го года программа «easy-rsa» не имеется в пакете с OpenVPN по этому ее нужно установить и скопировать ключи с другого места.

# sudo apt-get install easy-rsa

У меня была ошибка, сообщение вывело такое «Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?», которое я решил так:

# sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock  
# sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock
# sudo dpkg --configure -a

После установки этой утилиты создаем папку и копируем в нее ключик:

# mkdir /etc/openvpn/easy-rsa
# cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
# mv /etc/openvpn/easy-rsa/easy-rsa /etc/openvpn/easy-rsa/2.0

Сейчас  нужно подредактировать переменные ключей, для этого выполним команду:

# cd /etc/openvpn/easy-rsa/2.0/
# vim vars

В этом файлике нужно поправить кое что под себя ( город, страну, почту и так далее). Можно оставить все как и есть.

Скопируем конфиг:

# cp openssl-1.0.0.cnf openssl.cnf

Выполним команду и подгружаем переменные :

# . ./vars

Удаляем наши старые ключи и создаем сертификат для своего сервера:

# ./clean-all
# ./build-ca

После чего создаем ключик для нашего сервера:

# ./build-key-server server

Создадим еще один ключик (Диффи Хельман)

# ./build-dh

Cоздадим ключик для  нашей tls-аутификации

# openvpn --genkey --secret keys/ta.key

Сделаем перемещение наших сертификатов в другую папку:

# cp -r /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn/

Копируем  файлик для конфигурации  нашего сервера

# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
# cd /etc/openvpn && gunzip -d /etc/openvpn/server.conf.gz
# vim /etc/openvpn/server.conf

Выложу свой конфиг и в нем указано что я поправил:
server.conf

Скачать его можно:

# wget http://linux-notes.org/wp-content/uploads/files/OpenVPN/Debian_Ubuntu_Linux-Mint/server.conf

Запускаем наш OpenVPN сервер:

# service openvpn restart

Настроим маршрутизацию на сервера

Создадим файлик в папке ccd с таким именем что и ключик для клиента, т.е. /etc/openvpn/ccd/client
Сейчас добавим маршруты в сеть где будет установлен наш клиент, это нужно для доступа к сетевым устройствам в сети клиента. Если не нужно это, то не прописывайте.

# iroute 192.168.116.0 255.255.255.0

Зададим маршруты для нашего клиента, для того чтобы он мог видеть  сеть и за пределами OpenVPN-сервера.

# push "route 192.168.117.0 255.255.255.0"

Включим ipv4_forwarding в /etc/sysctl.conf

# vim /etc/sysctl.conf
[...]
net.ipv4.ip_forward=1
[...]
# sudo sysctl -p

Создание и настройка клиента для OpenVPN

Перейдем в уже  созданную нами папку,  и начнем генерацию ключиков, а так же сертификатов для клиента

# cd /etc/openvpn/easy-rsa/2.0
# . ./vars

Создаем сейчас ключик для самого клиента, выполняем:

# ./build-key client

Если есть необходимость сгенерировать ключик с паролем, то используйте:

# ./build-key-pass client

Если эту команду ввели, то вам нужно будет вводить пароль каждый раз пароль на ключик.

ВНИМАНИЕ! Не забываем что нужно скопировать ключики (ca.crt, dh1024.pem, client.crt, client.key, ta.key) в папку нашего клиента  в OpenVPN — /etc/openvpn/keys/

# vim /etc/openvpn/client.conf

читаем что я правил в конфиге тут, чтобы скачать файл:

# wget http://linux-notes.org/wp-content/uploads/files/OpenVPN/Debian_Ubuntu_Linux-Mint/client.conf

После того как внесли все изменения, можно и запустить клиент:

# service openvpn restart

Отзыв сертификата

# cd /etc/openvpn/easy-rsa/2.0
# . ./vars
# ./revoke-full client2

revoke-full -этот скрипт создает CRL-файл (certificate revocation list, список отозванных сертификатов) с названием crl.pem в подпапке keys. Этот файлик нужно скопировать в папку, в котором сервер OpenVPN может получить к нему доступ. До этого я прописывал в конфиге что он должен лежать в /etc/openvpn, туда и скопируем.

Включим ipv4_forwarding по необходимости. Выполнить нужно все так же как и с сервером.

Чтобы отключить автозапуск OpenVPN запустите:

# vim /etc/default/openvpn

и убираем коммент в строке:

[...]
AUTOSTART="none"
[...]

На этом моя статья «Установка и настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint» завершена.

6 thoughts on “Установка и настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint

  1. Куда копать если не нахожу у себя каталога
    /usr/share/doc/openvpn/examples/easy-rsa/
    Использую
    Linux ubuntu-srv1 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

  2. После установки openVPN на Mint дошёл до пункта:
    # . ./vars
    Но такой папки нет, в чём может быть проблема?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.