Установка и настройка 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.

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

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

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

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

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

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

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

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

3 lines
# 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

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

3 lines
# 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

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

2 lines
# cd·/etc/openvpn/easy-rsa/2.0/
# vim·vars

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

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

# cp openssl-1.0.0.cnf openssl.cnf

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

#·. ./vars

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

2 lines
#·./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/

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

3 lines
# 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
3 lines
[...]
net.ipv4.ip_forward=1
[...]
# sudo sysctl -p

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

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

2 lines
# 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

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

3 lines
# 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

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

3 lines
[...]
AUTOSTART="none"
[...]

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

Было ли это полезно?

0 / 0