Itnull

Admin
Регистрация
22.05.13
Сообщения
28.887
Реакции
13.359
Веб-сайт
itnull.me
Настройка VPN-сервера на Ubuntu (OpenVPN)

OpenVPN — проверенное временем решение для организации VPN-сервера. Поддерживается практически всеми устройствами и ОС, хорошо документировано, гибко настраивается. Ниже — полная инструкция для Ubuntu 22.04/24.04.

1. Быстрая установка через скрипт

Самый простой и надёжный способ — использовать готовый скрипт автоматической установки от angristan (он сам настроит сертификаты, ключи, файрвол и т.д.):

Bash:
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh

Скрипт задаст несколько вопросов:

IP-адрес или домен сервера
Протокол (UDP рекомендуется, быстрее TCP)
Порт (по умолчанию 1194)
DNS для клиентов (Cloudflare, Google и т.д.)
Имя первого клиента

После завершения появится файл
Bash:
/root/имя_клиента.ovpn
— это готовый конфиг для клиента.

2. Ручная установка (для тех, кто хочет разобраться в деталях)

2.1. Установка пакетов


Bash:
sudo apt update
sudo apt install openvpn easy-rsa -y

2.2. Настройка Easy-RSA и центра сертификации

Bash:
mkdir ~/easy-rsa
ln -s /usr/share/easy-rsa/* ~/easy-rsa/
cd ~/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass

2.3. Создание ключей и сертификатов сервера

Bash:
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh
openvpn --genkey secret ta.key

2.4. Создание сертификата клиента

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

2.5. Копирование файлов

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

2.6. Конфигурация сервера

Создайте файл
Bash:
/etc/openvpn/server/server.conf
:

Bash:
port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0

server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"

keepalive 10 120
cipher AES-256-GCM
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

2.7. Включение форвардинга пакетов

Bash:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

2.8. Настройка NAT (iptables)

Замените
Bash:
eth0
на имя вашего внешнего интерфейса (
Bash:
ip a
):

Bash:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

2.9. Запуск сервера

Bash:
sudo systemctl enable --now openvpn-server@server
sudo systemctl status openvpn-server@server

2.10. Открытие порта в файрволе

Bash:
sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo ufw enable

3. Сборка клиентского конфига (.ovpn)

Создайте файл
Bash:
client1.ovpn
, объединив шаблон и содержимое сертификатов:

Bash:
client
dev tun
proto udp
remote ВАШ_IP_СЕРВЕРА 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3

<ca> (содержимое ca.crt) </ca> <cert> (содержимое issued/client1.crt) </cert> <key> (содержимое private/client1.key) </key> <tls-auth> (содержимое ta.key) </tls-auth> key-direction 1

Готовый файл передаётся клиенту и импортируется в приложение OpenVPN Connect (Windows/macOS/Android/iOS) или через
Bash:
openvpn --config client1.ovpn
на Linux.

4. Проверка работы

На клиенте после подключения проверьте IP:

Bash:
curl ifconfig.me

Должен отобразиться IP вашего VPN-сервера.




Если возникнут вопросы по настройке под конкретный дистрибутив или облачный сервер — пишите в комментариях.
 

Создайте аккаунт или войдите в систему, чтобы комментировать

Вы должны быть зарегистрированным, чтобы оставить комментарий

Создать аккаунт

Создайте аккаунт в нашем сообществе.

Войти

У вас уже есть аккаунт? Войдите здесь.

Назад
Сверху Снизу