OpenVPN является открытым ПО с помощью которого можно создавать частные виртуальные сети типа VPN. Программа полностью шифрует сетевой трафик, предоставляет безопасное подключение к интернету и локальной сети. Таким образом OpenVPN защищает данные от провайдера, хакеров и прочих лиц, кого могут заинтересовать ваши данные.
Программа широко известна и популярна как для использования дома, так и для использования в бизнесе. Все это благодаря применению серьезных криптографических алгоритмов (AES-256-CBC, SHA256), вариативности способов верификации. Имеются в виду цифровые сертификаты, пользовательские данные и двухэтапная аутентификация (2FA).
VPN-соединения необходимы в самых разных сценариях:
Удаленный доступ к корпоративной сети. Сотрудники могут безопасно подключаться к внутренним ресурсам компании из любой точки мира.
Безопасный доступ к интернету. VPN шифрует трафик и защищает данные при подключении к открытым Wi-Fi-сетям в кафе, аэропортах и отелях.
Обход географических блокировок. Позволяет получить доступ к ресурсам, недоступным в определенных регионах.
Скрытие реального IP-адреса. Помогает защитить конфиденциальность в интернете и избежать отслеживания со стороны провайдеров или государственных служб.
Плюсы OpenVPN
Среди ключевых достоинств отмечаем:
Высокая степень защиты
Применение в работе высококачественных протоколов шифрования, в том числе TLS и AES-256.
Обладает дополнительной защитой через двухэтапную верификацию.
Предохраняет от атак Man-in-the-Middle (MITM), а также от утечки информации.
Универсальность и поддержка различных платформ
Обладает кроссплатформенностью и функционирует на Windows, Linux, macOS, iOS и Android.
Поддержка разных методов проверки подлинности, среди которых пароли, токены и сертификаты.
Можно преодолевать ограничения доступа, которые установил ваш провайдер с помощью работы через TCP и UDP.
Простота установки и настройки
Легкая инсталляция как на устройствах, так и на сервере.
Универсальность конфигурации параметров сети, в том числе доступа и маршрутизации.
Обладает способностью автосоединения с клиентами.
Рациональное использование ресурсов
OpenVPN способен работать на слабых серверах и в облаке.
Процессор и оперативную память практически не загружает, в отличии от других VPN.
Общедоступный код
Можно проводить анализ кода с целью выявления слабых мест.
Постоянно обновляется, сообщество разработчиков весьма активно.
Эти характеристики делают OpenVPN одним из наиболее надежных и удобных вариантов для создания VPN. В данной статье мы разберем процесс установки и настройки OpenVPN на сервере Ubuntu, а также процесс подключения клиентов.
Этап 1. Инсталляция
Прежде чем переходить к настройкам сервера OpenVPN, нужно проверить обновлены ли системные пакеты.
Чтобы это сделать воспользуйтесь командой обновления системы и инсталляции самого ПО:
sudo apt update && sudo apt upgrade -y
После этого инсталлируйте OpenVPN и требуемые зависимости:
sudo apt install openvpn easy-rsa -y
Виды пакетов:
openvpn
easy-rsa
Когда инсталляция будет завершена, проверьте работоспособность OpenVPN. Для этого выполните команду:
openvpn --version
В представленной информации должны содержаться данные про версию OpenVPN, а также о том, что инсталляция прошла успешно.
Этап 2. Настройка сервера
Создание каталога для ключей и сертификатов
OpenVPN использует инфраструктуру открытых ключей (PKI), поэтому нам необходимо создать сертификаты и ключи.
Сначала скопируем Easy-RSA в каталог
/etc/openvpn/
:
sudo cp -r /usr/share/easy-rsa /etc/openvpn/
sudo mkdir -p /etc/openvpn/easy-rsa
sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa
Инициализируем инфраструктуру PKI:
sudo ./easyrsa init-pki
Генерируем корневой сертификат (CA):
sudo ./easyrsa build-ca
Создаем ключи для сервера:
sudo ./easyrsa gen-req server nopass
sudo ./easyrsa sign-req server server
Генерируем ключи Диффи-Хеллмана (для защиты обмена ключами):
sudo ./easyrsa gen-dh
Создаем ключ HMAC для защиты от атак DoS:
sudo openvpn --genkey --secret /etc/openvpn/server/ta.key
Теперь создадим конфигурационный файл сервера. Открываем
/etc/openvpn/server.conf
:
sudo nano /etc/openvpn/server.conf
Добавляем базовые настройки:
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
tls-auth /etc/openvpn/server/ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3
Сохраняем и выходим
CTRL + X
, затем
Y
,
Enter
.
Перезапускаем OpenVPN:
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
Проверяем статус:
sudo systemctl status openvpn@server
Этап 3. Настройка брандмауэра
Чтобы VPN-клиенты могли подключаться, необходимо открыть порт 1194 (или другой, если вы изменили его в конфигурации).
Открываем порт для OpenVPN в
UFW
:
sudo ufw allow 1194/udp
Включаем пересылку трафика в файле
/etc/sysctl.conf
:
sudo nano /etc/sysctl.conf
Находим строку и раскомментируем (или добавляем, если ее нет):
net.ipv4.ip_forward=1
Применяем изменения:
sudo sysctl -p
Если используется
iptables
, разрешаем трафик:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.rules
Этап 4. Настройка клиента
На клиентском устройстве (Windows, Linux, MacOS) необходимо установить OpenVPN и создать конфигурационный файл.
Создание ключей и сертификатов для клиента
На сервере генерируем клиентские ключи:
cd /etc/openvpn/easy-rsa
sudo ./easyrsa gen-req client1 nopass
sudo ./easyrsa sign-req client client1
Скопируем файлы на клиент:
sudo cp /etc/openvpn/easy-rsa/pki/ca.crt
/etc/openvpn/easy-rsa/pki/issued/client1.crt
/etc/openvpn/easy-rsa/pki/private/client1.key
/etc/openvpn/client/
2. Формирование клиентского файла настроек
На клиенте создаем файл
client.ovpn
:
client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
cipher AES-256-CBC
tls-auth ta.key 1
verb 3
Копируем файлы
ca.crt
,
client1.crt
,
client1.key
,
ta.key
в каталог клиента.
Запускаем клиент OpenVPN:
openvpn --config client.ovpn
Этап 5. Проверка подключения
Тестирование соединения
На клиенте запускаем OpenVPN и смотрим на выходные логи. Должны быть строки:
Initialization Sequence Completed
Проверка соединения с сервером
На сервере проверяем подключенные клиенты:
sudo cat /var/log/openvpn.log
Если клиент не подключается, смотрим возможные ошибки:
- Ошибка
TLS handshake failed
- Ошибка
No route to host
- Ошибка
Connection refused
systemctl status openvpn@server
Если всё работает, проверяем, передается ли трафик через VPN:
curl ifconfig.me
IP-адрес должен совпадать с адресом VPN-сервера.
Итог
Кроссплатформенный инструмент OpenVPN очень популярный и проверенный временем, и если вы настроите его на сервере Ubuntu, то получите стабильный, безопасный и универсальный VPN. Он защитит всю вашу информацию, предоставит защищенный доступ к интернету или к бизнес-сети, применяя свои богатые функциональные возможности и повышенную безопасность.
Тем не менее создание VPN-пространства есть лишь начальным этапом. Если вы хотите сохранять стабильность соединения и хорошую защищенность, не забывайте о некоторых ключевых аспектах:
1. Систематическая актуализация
Регулярно обновляйте ваш OpenVPN, ОС и ее зависимости. Нужно это делать для того, чтобы избегать время от времени возникающих уязвимостей. Актуализация поможет вам исправлять системные недочеты, повысят работоспособность и ликвидируют проблемные моменты безопасности.
2. Отслеживание серверного функционирования
Следите за работой VPN-сервера и активностью клиентов. Опирайтесь в этом процессе на:
- Журналы OpenVPN
/var/log/openvpn.log
- Системные утилиты
systemctl status openvpn, journalctl -u openvpn
3. Повышение защиты
Для улучшения безопасности сервера VPN следует:
- Ограничить IP-доступ — подключите доступ к серверу через файервол в ситуациях, когда с сервером работают конкретные пользователи.
- Включите двухфакторную аутентификацию (2FA).
- Настроить строгие правила файрвола (iptables, UFW) для снижения шансов столкнуться с несанкционированной попыткой получения данных.
- Ограничить число неудачных попыток входа, применив инструменты типа Fail2Ban.
4. Улучшение работоспособности
Когда на сервер ложится большая нагрузка из-за большого количества пользователей, может возникнуть проблема с производительностью. Чтобы предотвратить такие ситуация для улучшения работы OpenVPN выполните следующие действия:
- По возможности замените UDP на TCP, чтобы ускорить соединение.
- Сконфигурируйте инструментом вроде LZO сжатие данных.
- Если вашим оборудованием поддерживается возможность аппаратного ускорения шифрования, то можно использовать это для снижения нагрузки на процессор.
5. Автоматизация и удобство использования
Для упрощенного пользовательского соединения советуем:
- Формировать удобные файлы с настройками для простого импортирования пользователями.
- Включите автоматический запуск OpenVPN во время загрузки системы в случаях, когда активный VPN нужен постоянно.
6. Бэкап настроек
Систематически делайте бэкап файлов конфигураций
/etc/openvpn/
, ключей и сертификатов, чтобы избежать утраты ценных данных. Так вы сможете быстро перенести свой VPN на другой сервер, или восстановить при сбое.
OpenVPN-сервер на Ubuntu при правильной конфигурации и регулярных обновлениях станет для вас не только отличным, комфортным средством удаленного доступа, не только качественным инструментом защиты сети, но и защитит отправляемую информацию от различных угроз, а также предоставит надежный канал соединения пользователям.