Установка openvpn linux debian

Установка и настройка OpenVPN сервера в Debian 10 (Отзыв сертификатов)

OpenVPN — это полнофункциональное открытое средство VPN SSL, которое поддерживает широкий диапазон конфигураций. В этом мануале вы научитесь настраивать сервер OpenVPN на вашем выделенном сервере Debian 10.

Для начала нам необходимо установить сам OpenVPN сервер. Выполняем следующую команду и вводим пароль суперпользователя:

Устанавливаем пакеты openvpn и easy-rsa. Выполняем следующую команду:

apt install openvpn easy-rsa

Для упрощения процедуры создания необходимых ключей и сертификатов традиционно используется утилита EasyRSA, которая позволяет легко управлять локальным центром сертификации (CA) инфраструктуры открытых ключей (PKI).

Выходим из суперпользователя. Выполняем следующую команду:

Копируем файлы easy-rsa в домашний каталог. Выполняем следующую команду:

Переходим в каталог easy-rsa. Выполняем следующую команду:

Выполняем инициализацию PKI. В каталоге EasyRSA есть скрипт easyrsa, который вызывается для выполнения задач, связанных с созданием и управлением CA. Запустите этот скрипт с параметром init-pki, чтобы инициировать инфраструктуру открытого ключа на сервере CA. Выполняем следующую команду:

Генерируем сертификат корневого центра сертификации (CA). Выполняем следующую команду:

Вводим имя корневого центра сертификации, нажимаем enter чтобы продолжить.

Создаем сертификат для сервера OpenVPN. Выполняем следующую команду, где вместо указываем доменное имя или IP-адрес вашего OpenVPN сервера, у меня 172.16.16.1:

./easyrsa build-server-full nopass

Создаем сертификат для клиента OpenVPN. Выполняем следующую команду, где вместо указываем произвольное имя для вашего клиента, у меня john:

./easyrsa build-client-full nopass

Так же генерируем список отозванных сертификатов. Выполняем следующую команду:

Протокол Ди́ффи — Хе́ллмана (англ. Diffie–Hellman, DH) — криптографический протокол, позволяющий двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи. Полученный ключ используется для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования.

Читайте также:  Linux настройка samba клиента

Выполняем следующую команду:

./easyrsa gen-dh
(Это замёт некоторое время, ждите окончания генерации)

После генерируем OpenVPN ta.key — подпись HMAC, чтобы усилить функции проверки целостности TLS.

Выполняем следующую команду:

/usr/sbin/openvpn —genkey —secret ta.key

Переходим в суперпользователя. Выполняем следующую команду и вводим пар:

Создаем каталог для хранения ключевой информации OpenVPN сервера. Выполняем следующую команду:

Копируем сертификат корневого центра сертификации. Выполняем следующую команду:

cp /home/user/easy-rsa/pki/ca.crt /etc/openvpn/certs

Копируем сертификат OpenVPN сервера. Выполняем следующую команду:

cp /home/user/easy-rsa/pki/issued/172.16.16.1.crt /etc/openvpn/certs

Копируем закрытый ключ сертификата OpenVPN сервера. Выполняем следующую команду:

cp /home/user/easy-rsa/pki/private/172.16.16.1.key /etc/openvpn/certs

Копируем ключ DH. Выполняем следующую команду:

cp /home/user/easy-rsa/pki/dh.pem /etc/openvpn/certs

Копируем ключ ta. Выполняем следующую команду:

cp /home/user/easy-rsa/ta.key /etc/openvpn/certs

Копируем список отозванных сертификатов. Выполняем следующую команду:

cp /home/user/easy-rsa/pki/crl.pem /etc/openvpn/certs

Создаем файл конфигурации OpenVPN сервера. Выполняем следующую команду:

Открываем конфигурационный файл OpenVPN сервера любым редактором, например nano. Выполняем следующую команду:

nano -w /etc/openvpn/server/server.conf

Приводим конфигурационный файл к следующему виду. Вместо 172.16.16.1 необходимо вписать свое доменное имя или IP адрес если вы указывали иное при генерации сертификата. Так же можете поменять порт или пул выдаваемых адресов, если хотите.

Запускаем OpenVPN сервер. Выполняем следующую команду:

systemctl start openvpn-server@server

Проверяем работоспособность. Выполняем следующую команду:

systemctl status openvpn-server@server

Можно добавить в автозагрузку. Выполняем следующую команду:

systemctl enable openvpn-server@server

Переходим к настройке клиентской части, на другой машине. Выполняем команду:

Устанавливаем OpenVPN. Выполняем следующую команду:

Создаем каталог для хранения ключевой информации OpenVPN клиента. Выполняем следующую команду:

Далее нам необходимо перенести ключевую информацию, я использую scp (у меня сконфигурирован ssh). А именно файлы: ta.key, john.key, john.crt, ca.crt

Вместо сертификатов на клиента c CN john и его закрытого ключа может быть любой ваш, который вы генерировали (но не сертификат сервера)

Далее переношу ключевую информацию в каталог /etc/openvpn/certs, используя команду mv.

Создаем конфигурационный файл OpenVPN клиента. Выполняя следующую команду:

Открываем конфигурационный фал OpenVPN клиента любым редактором, например nano. Выполняя следующую команду:

nano -w /etc/openvpn/client/client.conf

Читайте также:  Linux скопировать папку рекурсивно

Приводим конфигурационный файл OpenVPN клиента к следующему виду. Если вы изменяли какие-либо параметры их надо изменить и на клиенте

Вместо 172.16.16.1 ваш IP адрес или доменное имя которые вы указывали и порт вместо 1194 если указывали, так же путь к клиентскому сертификату если файл называется по другому

Запускаем OpenVPN клиент. Используем следующую команду:

systemctl start openvpn-client@client

Проверим состояние OpenVPN клиента. Используем следующую команду:

systemctl status openvpn-client@client

Как видим подключение прошло успешно

Проверим связность внутри туннеля выполнив пинг

Так же клиент можно добавить в автозагрузку. Выполнив команду

systemctl enable openvpn-client@client

Настройка доступа к интернету через OpenVPN туннель

Открываем файл /etc/sysctl.conf любым редактором и документируем строчку содержащую:

Выходим из редактора и применяем параметры используя команду:

Настраиваем NAT

Выполняем следующую команду, где enp2s0 это имя вашего интерфейса смотрящего в сеть:

iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE

Сохраняем правила фаервола. Выполняем команду:

Открываем файл /etc/network/interfaces любым редактором например nano, и добавляете:

Что означает автоматическое восстановление правил фаервола. Либо можно сделать через системд сервис который будет запускать скрипт до старта таргета сети

Редактируем конфиг OpenVPN сервера любым редактором, добавляя туда параметры:

push “redirect-gateway def1 bypass-dhcp”

Первый параметр означает то что при старте OpenVPN клиента будет создаваться дефолтный маршрут через туннель. Второй опцией мы можем назначить DNS сервер.

Так же мы можем использовать опцию push для анонсирования маршрутов:

push “route 192.168.88.0 255.255.255.0”

Анонсирует маршрут 192.168.88.0 через туннель.

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

Необходимая вещь для того чтобы отобрать у клиента вашего впн сервера доступ к нем. Выполняем команду:

где john это CN сертификата, т. е. имя клиента которые вы указали

Генерируем список отозванных сертификатов. Выполняя команду:

Переходим в суперпользователя

Копируем список отозванных сертификатов в каталог с ключевой информацией OpenVPN сервера и перезагружаем его.

Видим что клиент не подключается, т.к его сертификат отозван

Спасибо за прочтение данной статьи. Подписывайтесь на YouTube канал, здесь мы на стримах настраиваем Linux, Windows, Cisco. Отдельное Спасибо Роману Заиике за помощь .

Читайте также:  Linux file magic file

Источник

Оцените статью
Adblock
detector