Как настроить сервер OpenVPN за 5 минут в Linux Ubuntu, Debian, CentOS

Не забудьте изучить развернутое руководство по установке OpenVPN, чтобы понимать что же вы сделали.

Рекомендую проводить установку OpenVPN по этому руководству, только на чистую операционную систему. Любая автоматическая установка, всегда ломается под вывертом мозга вашего супер-пупер программиста или системного администратора.

Для работы OpenVPN не нужен дорогой VPS. Стоит обращать внимание на скорость интернета провайдера для вашего тарифа, чтобы фильмы не тормозили при просмотре и торренты качались. Посмотрите подборку Лучшие VPS для хостинга VPN.

Итак, Вы купили VPS с каким-нибудь Linux, не важно что это Ubuntu, Debian или CentOS. Просто, выбирайте посвежее версии дистрибутива приглянувшегося вам Линукса.

Вам нужно обязательно обновить свою операционку, перед установка скрипта OpenVPN. Ubuntu, Debian вводим команды и ждем их выполнения:

apt update
apt upgrade

CentOS используем утилиту Yum:

yum update -y

На этом шаге загружаем скрипт с GitHub автора angristan, при помощи команды wget. Далее будут использоваться команды, которые одинаковые во всех дистрибутивах и CentOS и Ubuntu и Debian.

Перейдем в каталог, куда будем скачивать скрипт, обычно это домашняя директория пользователя, а так как вы только что купили VPS, пользователь у вас будет root!

cd /root
wget https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh

Сделаем скрипт исполняемым:

chmod +x openvpn-install.sh

И запустим установку:

./openvpn-install.sh
  • Первый вопрос будет о вашем ip адресе, ничего не вводим жмем клавишу Enter.
Welcome to the OpenVPN installer!
The git repository is available at: https://github.com/angristan/openvpn-install

I need to ask you a few questions before starting the setup.
You can leave the default options and just press enter if you are ok with them.

I need to know the IPv4 address of the network interface you want OpenVPN listening to.
Unless your server is behind NAT, it should be your public IPv4 address.
IP address:
  • Второй вопрос хотим ли мы включить IPv6, который по умолчанию отключен. На современных дистрибутивах соглашаемся. Если интересно, что это такое прочитайте статью о IPv6.
Do you want to enable IPv6 support (NAT)? [y/n]: y
  • По умолчанию OpenVPN использует порт 1194, нажимаем 1
What port do you want OpenVPN to listen to?
   1) Default: 1194
   2) Custom
   3) Random [49152-65535]
Port choice [1-3]: 1
  • Выберите протокол и конечно выбираем UDP (если конечно вы не планируете подключать к VPN оборудование фирмы MikroTik). Набираем 1.
What protocol do you want OpenVPN to use?
UDP is faster. Unless it is not available, you shouldn't use TCP.
   1) UDP
   2) TCP
Protocol [1-2]: 1
  • Теперь вам нужно выбрать поставщика DNS, если нет каких-либо предпочтений, выберите DNS от Google, для этого вводим 9:
What DNS resolvers do you want to use with the VPN?
   1) Current system resolvers (from /etc/resolv.conf)
   2) Self-hosted DNS Resolver (Unbound)
   3) Cloudflare (Anycast: worldwide)
   4) Quad9 (Anycast: worldwide)
   5) Quad9 uncensored (Anycast: worldwide)
   6) FDN (France)
   7) DNS.WATCH (Germany)
   8) OpenDNS (Anycast: worldwide)
   9) Google (Anycast: worldwide)
   10) Yandex Basic (Russia)
   11) AdGuard DNS (Anycast: worldwide)
   12) NextDNS (Anycast: worldwide)
   13) Custom
DNS [1-12]: 9
  • Хотите ли вы использовать сжатие? Не нужно его использовать, без понимания что и где будет сжиматься. Отказываемся от сжатия, набрав n.
Do you want to use compression? It is not recommended since the VORACLE attack makes use of it.
Enable compression? [y/n]: n
  • На вопрос о настройке шифрования - отказываемся. Набираем n
Do you want to customize encryption settings?
Unless you know what you're doing, you should stick with the default parameters provided by the script.
Note that whatever you choose, all the choices presented in the script are safe. (Unlike OpenVPN's defaults)
See https://github.com/angristan/openvpn-install#security-and-encryption to learn more.

Customize encryption settings? [y/n]: n

И только теперь начнется процесс установки OpenVPN, нажимаем Enter и наблюдаем за установкой.

Okay, that was all I needed. We are ready to setup your OpenVPN server now.
You will be able to generate a client at the end of the installation.
Press any key to continue...

После окончания инсталляции сервера OpenVPN, установочный скрипт предложит добавить вашего первого клиента. Вы увидите следующий экран вывода, где вам нужно будет ввести имя клиента (для примера user1).

Tell me a name for the client.
The name must consist of alphanumeric character. It may also include an underscore or a dash.
Client name: user1

Далее вас спросят, хотите ли вы защитить файл конфигурации паролем, выбираем 1 (то есть защитить).

Do you want to protect the configuration file with a password?
(e.g. encrypt the private key with a password)
   1) Add a passwordless client
   2) Use a password for the client
Select an option [1-2]: 1

После это процессе установки завершен. По итогу, у вас получился работающий OpenVPN cthdth был создан пользователь user1 с конфигурационным файлом /root/гuser1.ovpn для подключения программы клиента OpenVPN. Что мы и видим на экране:

Client гuser1 added.

The configuration file has been written to /root/гuser1.ovpn.
Download the .ovpn file and import it in your OpenVPN client.

Теперь вам необходимо файл гuser1.ovpn скопировать его на клиент.

Рассмотрим вариант подключения Windows клиента.

В Windows нет встроенной поддержки OpenVPN, нужно устанавливать дополнительного клиента. Скачиваем клиента официального клиента OpenVPN. После инсталляции (c:\Program Files\OpenVPN\) копируем гuser1.ovpn в директорию c:\Program Files\OpenVPN\config\. Запускаем клиента и подключаемся.

Возможные клиенты и варианты подключения смотрите в этом разделе Клиенты OpenVPN для разных ОС Windows, Android, MikroTik, Ubuntu, MacOS

Для закрепления материала добавим еще одного клиента: Для этого нам нужно повторно запустить скрипт. Скрипт определит, что сервер OpenVPN уже установлен и предложит 4 варианта: 1) Добавить нового пользователя 2) Удалить существующего пользователя 3) Удалить сервер OpenVPN 4) Выйти из запущенного скрипта

 ./openvpn-install.sh
It looks like OpenVPN is already installed.

What do you want to do?
   1) Add a new user
   2) Revoke existing user
   3) Remove OpenVPN
   4) Exit
Select an option [1-4]:

Поздравляю, вы установили сервер VPN и при этом потратили всего 5 минут!

В начале статьи, я указывал ссылку на развернутую статью по установке OpenVPN.

Хочу обратить внимание, что установочный скрипт добавил правило в файрволл (iptables) вашего Linux, не нужно его удалять, иначе перестанет работать VPN.

iptables -L -t nat
 
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  10.8.0.0/24          anywhere
eTalk курсы английского языка.