Быстрый старт OpenVPN Обновлено 7 мин Android, iOS, Windows, macOS

Установка OpenVPN на Ubuntu: пошаговое руководство

Подробная инструкция по установке и настройке OpenVPN на Ubuntu. Описаны установка сервера и клиента, генерация ключей, настройка брандмауэра и решение распространенных ошибок.

OpenVPNUbuntuVPNустановканастройкасертификатыклиент
Содержание
КороткоУстановите OpenVPN через apt, настройте сервер с Easy-RSA, сгенерируйте сертификаты, настройте клиента и включите маршрутизацию. Проверьте подключение.

Введение

OpenVPN — мощное и гибкое решение для создания защищенных VPN-соединений. Эта инструкция поможет установить и настроить OpenVPN на Ubuntu 20.04 или 22.04. Мы рассмотрим как серверную, так и клиентскую части, используя аутентификацию на основе сертификатов. Вы узнаете, как правильно сгенерировать ключи, настроить брандмауэр и решить типичные проблемы.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Сервер под управлением Ubuntu с root-доступом или sudo.
  • Открытый порт 1194 (UDP) в брандмауэре.
  • Статический IP-адрес сервера.
  • Установленный пакет утилит (wget, curl).

Установка OpenVPN и Easy-RSA

Обновите пакеты и установите OpenVPN и Easy-RSA:

sudo apt update
sudo apt install openvpn easy-rsa

Easy-RSA упрощает управление сертификатами. Создайте директорию для PKI (Public Key Infrastructure):

make-cadir ~/easy-rsa
cd ~/easy-rsa

Инициализируйте PKI и постройте корневой сертификат:

./easyrsa init-pki
./easyrsa build-ca nopass

При запросе имени введите что-то вроде MyCA.

Генерация сертификатов сервера и клиента

Создайте сертификат и ключ сервера без пароля:

./easyrsa gen-req server nopass
./easyrsa sign-req server server

Сгенерируйте параметры Диффи-Хеллмана (может занять время):

./easyrsa gen-dh

Создайте ключ TLS (tls-crypt) для дополнительной защиты:

openvpn --genkey --secret ta.key

Теперь сгенерируйте сертификат для первого клиента (например, client1):

./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

Скопируйте необходимые файлы в директорию OpenVPN:

sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem ta.key /etc/openvpn/

Настройка сервера OpenVPN

Создайте файл конфигурации /etc/openvpn/server.conf с таким содержимым:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-crypt ta.key 0
auth SHA256
cipher AES-256-GCM
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

Включите IP-маршрутизацию:

sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf

Настройте NAT через iptables (замените eth0 на ваш сетевой интерфейс):

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT
sudo iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT

Установите пакет iptables-persistent для сохранения правил:

sudo apt install iptables-persistent -y
sudo netfilter-persistent save

Запустите и включите OpenVPN:

sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server

Настройка клиента

Создайте файл конфигурации клиента client1.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
tls-crypt ta.key 1
auth SHA256
cipher AES-256-GCM
verb 3

Затем объедините сертификаты и ключи в один файл (для удобства) или скопируйте их отдельно. Перенесите файл client1.ovpn на клиентскую машину. Импортируйте его в клиентское приложение OpenVPN.

Проверка подключения

На сервере проверьте статус:

sudo systemctl status openvpn@server

На клиенте попробуйте подключиться. Если все правильно, вы получите IP из подсети 10.8.0.0/24. Проверьте доступность сервера и интернет-трафика через ping.

Устранение распространенных ошибок

Если подключение не устанавливается, проверьте:

  • Открыт ли порт 1194 в брандмауэре сервера.
  • Правильные ли пути к сертификатам в конфигах.
  • Синхронизированы ли системные часы (сертификаты могут быть недействительны).
  • Не заблокирован ли порт провайдером.

В логах клиента и сервера (журнал systemd) можно найти конкретные ошибки.

Заключение

Вы успешно установили и настроили OpenVPN на Ubuntu. Теперь вы можете безопасно подключаться к своей сети из любого места. Регулярно обновляйте сертификаты и следите за безопасностью сервера.

Мини-чеклист

  • Убедиться, что порт 1194 UDP открыт на сервере
  • Установить openvpn и easy-rsa
  • Инициализировать PKI и построить CA
  • Сгенерировать сертификаты сервера и клиента
  • Настроить server.conf с правильными параметрами
  • Включить IP-маршрутизацию и настроить NAT
  • Запустить и включить сервис OpenVPN
  • Скопировать конфигурацию на клиент

Частые ошибки

  • Забыть открыть порт 1194 в брандмауэре
  • Использовать неправильные пути к сертификатам в конфиге
  • Не включить IP-маршрутизацию (net.ipv4.ip_forward=0)
  • Игнорировать часовой пояс — сертификаты могут быть недействительны
  • Путать ключи tls-crypt: на сервере 0, на клиенте 1

Источники и документация

FAQ

Как изменить порт OpenVPN?

Измените директиву port в server.conf на нужный номер. Также обновите правило брандмауэра и клиентский конфиг.

Почему клиент не может подключиться, хотя сервер запущен?

Проверьте логи сервера (journalctl -u openvpn@server). Частые причины: неверный IP сервера в конфиге клиента, заблокированный порт, несовпадение сертификатов.

Хотите перейти сразу к рабочему доступу?

Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.

Получить доступ

Дальше по теме

Связанные статьи