Для создания 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
По умолчанию сертификат будет находиться в директории пользователя.