Найти тему
Иван Карагодин

Свой VPN-server на ubuntu

Для создания OpenVPN-сервера на Ubuntu вам потребуется выполнить несколько шагов. Вот пошаговая инструкция:

Шаг 1: Установка пакетов OpenVPN Откройте терминал и выполните следующую команду, чтобы установить пакеты OpenVPN:

sudo apt update
sudo apt install openvpn easy-rsa

Шаг 2: Настройка инфраструктуры Public Key Infrastructure (PKI) Перейдите в каталог easy-rsa:

cd /usr/share/easy-rsa

Создайте новый каталог PKI и перейдите в него:

sudo mkdir pki
cd pki

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

sudo easyrsa init-pki

Создайте корневой сертификат (CA):

sudo easyrsa build-ca

Во время этого процесса вам будет предложено ввести имя вашей CA. Можете оставить его по умолчанию или ввести свое.

Шаг 3: Создание сертификата и ключа сервера Создайте сертификат и ключ сервера с помощью следующей команды:

sudo easyrsa gen-req server nopass

Сгенерированный сертификат и ключ сервера будут находиться в каталоге /usr/share/easy-rsa/pki/reqs/.

Создайте файл серверной конфигурации, например, server.conf:

sudo nano /etc/openvpn/server.conf

Вставьте следующий содержимое в файл:

port 1194
proto udp
dev tun
ca /usr/share/easy-rsa/pki/ca.crt
cert /usr/share/easy-rsa/pki/issued/server.crt
key /usr/share/easy-rsa/pki/private/server.key
dh /usr/share/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/status.log
verb 3

Сохраните и закройте файл.

Шаг 4: Настройка маршрутизации и IP-перенаправления Разрешите IP-перенаправление, отредактировав файл sysctl.conf:

sudo nano /etc/sysctl.conf

Раскомментируйте строку с настройкой net.ipv4.ip_forward и измените ее значение на 1:

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

Замените "eth0" на имя вашего интерфейса.

Сохраните правила iptables:

sudo iptables-save | sudo tee /etc/iptables.sav

Шаг 5: Запуск и настройка OpenVPN-сервера Запустите службу OpenVPN:

sudo systemctl start openvpn@server

Установите автозапуск OpenVPN-сервера при загрузке системы:

sudo systemctl enable openvpn@server

Проверьте статус OpenVPN-сервера:

sudo systemctl status openvpn@server

Убедитесь, что служба работает без ошибок.

Шаг 6: Создание сертификатов и ключей для клиентов Выполните команду easyrsa, чтобы создать сертификаты и ключи для клиентов:

sudo easyrsa gen-req client1 nopass
sudo easyrsa sign-req client client1

Сертификаты и ключи клиента будут находиться в каталоге /usr/share/easy-rsa/pki/issued/.

Шаг 7: Конфигурация клиента Создайте файл конфигурации клиента, например, client.ovpn:

sudo nano 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 remote-cert-tls server
comp-lzo
verb 3

Замените "your_server_ip" на IP-адрес вашего сервера OpenVPN.

Сохраните и закройте файл.

Шаг 8: Передача файлов клиенту Скопируйте следующие файлы на клиентскую машину:

  • ca.crt
  • client1.crt
  • client1.key
  • client.ovpn

Шаг 9: Подключение клиента к серверу На клиентской машине установите OpenVPN-клиент и выполните следующую команду:

sudo openvpn --config client.ovpn

Теперь ваш OpenVPN-сервер должен быть настроен и работать. Клиенты могут подключаться к серверу с помощью файла .ovpn и используя сертификаты и ключи, созданные для каждого клиента.

Обратите внимание, что эта инструкция является базовой и может потребовать дополнительных настроек в зависимости от вашей сетевой конфигурации и требований.

Ну а для самых ленивых можно запустить скрипт:
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

Он автоматически сделает все настройки, только необходимо ответить на пару вопросов

Для создания клиентских сертификатов .ovpn необходимо запустить скрипт после установки:

bash openvpn-install.sh

По умолчанию сертификат будет находиться в директории пользователя.