OpenVPN часто используется для создания виртуальных безопасных сетей между компьютерами, которые находятся на очень большом расстоянии, но при этом между ними нужно получить шифрованное безопасное соединение, которое невозможно перехватить и прослушать.
Другое применение для OpenVPN - это обход блокировок различных интернет ресурсов. Существуют различные серверы OpenVPN серверы в интернете, но будет намного надежнее если развернуть OpenVPN на своем сервере. Мы рассматривали процесс в статье установка OpenVPN на Ubuntu, но для новичков это достаточно сложно. В этой инструкции мы рассмотрим как выполняется настройка OpenVPN linux с помощью скрипта openvpn-install, который упрощает процесс установки и настройки в несколько раз. С его помощью вы получите работающий сервер в течение нескольких минут.
Содержание статьи
Настройка OpenVPN сервера в Linux
В этой статье, в качестве системы для примера мы будем использовать операционную систему CentOS, но операции не будут отличаться в других дистрибутивах. Сначала скачайте сам скрипт:
wget https://git.io/vpn -O openvpn-install.sh
Затем запустите скрипт от имени суперпользователя с помощью такой команды:
bash openvpn-install.sh
Дальше скрипт задаст несколько вопросов по настройкам OpenVPN. Сначала нужно указать точный ip адрес VPS, на котором будет запущен OpenVPN, именно на этом адресе программа будет слушать соединения:
Затем выберите протокол, который вы хотите использовать. Например, если я хочу использовать TCP то нужно выбрать 2:
Затем введите номер порта, на котором будет слушать программа, можно оставить значение по умолчанию:
Выберите сервера DNS, которые нужно использовать, мне, например, нравятся сервера от Google:
Введите имя клиента, для которого будут подписаны сертификаты на доступ:
Дальше нажмите Enter, и подтвердите установку OpenVPN. Программа сама установит нужные пакеты в вашем дистрибутиве, а затем подпишет все необходимые сертификаты, запустит сервер openvpn и даже добавит его в автозагрузку systemd:
Последний шаг, это утилита спросит есть ли у вашего сервера дополнительный внешний ip адрес. Это может быть полезно, если вы используете NAT, и для доступа к серверу применяете какой-либо туннель. В других случаях этот пункт можно пропустить, для VPS точно пропускаем.
Теперь установка и настройка OpenVPN сервера Linux завершена. Конфигурационный файл для клиента сохранен по адресу /root/sergiy-pc.ovpn, может иметь и другое имя, в зависимости от того, какое имя вы дали клиенту. Самое интересное, что для того чтобы добавить новых клиентов, вам просто достаточно запустить скрипт еще раз. Осталось только скопировать полученный файл клиенту, для этого можно на клиентском компьютере выполнить scp:
scp root@адрес_сервера:/root/sergiy-pc.ovpn /etc/openvpn/
Настройка клиента OpenVPN
Вы можете настроить OpenVPN на клиентской машине как захотите, например, с помощью NetworkManager. Но мы рассмотрим ручной вариант. Сначала установите саму программу. Установка OpenVPN Linux Ubuntu выполняется командой:
sudo apt install openvpn
А для CentOS:
sudo yum install openvpn
Теперь для подключения к нашему серверу используем полученный файл:
openvpn --config /etc/openvpn/client.ovpn
Вы можете использовать команду ip addr чтобы проверить ip адрес интерфейса OpenVPN - tun0:
ip addr
Как видите, OpenVPN автоматически выдал IP вашему компьютеру, теперь можете проверить подключение к этому серверу с помощью ping:
ping -c3 10.8.0.1
Вот и все, ваша сеть готова к работе.
Выводы
Пять минут и настройка OpenVPN Linux завершена, а на подключение следующего клиента уйдет еще меньше. Этот метод не специфичен для RPM систем и может использоваться также в DEB системах, таких как Ubuntu или Debian. Если у вас остались вопросы, спрашивайте в комментариях!
Полная настройка OpenVPN:
На DigitalOcean инструкция куда объемнее, наверно там всё делали вручную 🙂
Помогите решить следующую проблему:
В ОС Ubuntu открываются не все сайты. Что нужно сделать?
Использую этот скрипт уже давно. Проблема не зависит от хостинга (пробовал AWS, DO). В Windows открывается всё как надо. В Ubuntu же - нет (например, rutracker.org).
Попробуйте использовать DNS от Google.
Судя по тому, что
- у AWS и у DigitalOcean разные DNS
- в винде всё работает
- не у одного меня такая проблема (например, см. https://www.linux.org.ru/forum/admin/11507421)
дело не в DNS.
В комментах (ссылка выше) пишут про параметр MTU и что его нужно понизить. Но толи я что-то делаю криво (что скорее всего), толи это не решает проблему.
И постольку поскольку ваше мнение для меня авторитетное, я решил спросить у вас.
Такая же песня, не знаю что делать.
Надеюсь автор увидит и подскажет.
Ап
Проблема в том, что только мною был замечена проблема только одного сайта из списка, остальные нормально работают.
Если же подключаться из Windows то этот сайт работает корректно.
Спасибо за статью; а доступный IP сервера не меняется (прямо во время работы; или после перезагрузки)?
И чем - кроме оплаты - принципиально отличаются OpenVPN от платных сервисов (и зачем они тогда нужны, при наличии бесплатной альтернативы)?
Спасибо!
Здравствуйте! Установил скрипт все работает, спасибо!
Вопрос, в логах (/etc/openvpn) отображаются только текущие подключения, которые с интервалом в минуту обновляются, как сделать так чтобы куда-нибудь записывались все подключения VPN к примеру за один день?
Здравствуйте! Попытался установить,не получилось.скрипт видимо обновился и последовательность вопросов другая.Я не смог понять какой host name вписать и записал IP адрес настоящий.И ещё у меня клиент-сервер на одном ноуте.в чем проблема? Можете ту часть после запуска скрипта подробней.хотел скрин приложить
Хотелось бы видеть дополнительную авторизацию пользователя с логином и паролем, как это добавить?
Все сделал по инструкции, но на клиентах при подключении отрубается интернет.
Один ключ - один клиент.
Добрый день, нужна помощь развернул тестовый стенд debian 9 сервер за nat с сети клиента пинг идет как родной, но я никак немогу попасть со стороны сервера, в клиентскую, скажите это рельно побороть, под виндой когда то делал подобное, и работало только немогу вспоснить в чм был затык, спасибо!
Запускал этот скрипт на Linux Mint 19.3 пару месяцев назад - всё работало.
Теперь попробовал запустить снова, чтобы создать новый сертификат новому клиенту. Скрипт послал меня лесом, сообщив, что версия Ubuntu ниже 18.04.
На самом деле установлен Mint 19.3, новее на данный момент не существует. Тем временем, видимо, скрипт тут обновился.
Можете выложить еще и предыдущую версию скрипта, где всё работало? Не переустанавливать же Ubuntu с нуля вместо Mint, где много чего настроено. Да и ручные способы настройки openvpn у меня не получаются, постоянно какие-то ошибки, тогда как в срипте всё гладко. Опыта копания в линуксе у меня мало, а простейшие, казалось бы, действия могут вылиться в целые потраченные дни.
Я не обновлял статью, напишите разработчикам.
Проблема решилась очень просто. Тупо закомментировал (поставил символ # в начале каждой строки) в скрипте все строки, относящиеся к проверке версии ОС (от «Detect OS» до ближайшего «fi» включительно). Файл скрипта лежит прямо в домашней папке. Можно править любым текстовым редактором.
Сделал все по инструкции. С Windows не фига не подключается к VPN. Это может быть связано с тем, что VPS требует приватный ключ для входа в систему?
debian 10 на виртуалке завелось с первого раза.
Есть ли у этого способа создания подключения защита? Открываю в блокноте файл client.ovpn, там есть блоки -----BEGIN PRIVATE KEY----- и -----BEGIN OpenVPN Static key V1----- это значит что доступ осуществляется по приватному ключу? в инструкции Вы не сказали создается ли пара ключей для доступа.
Спасибо огромное! Амнезия глючила почем зря, с вашими скриптами всё взлетело )
Помогите настроить OpenVPN. Поставил на VPS с Ubuntu 22.04, андроид подключился без проблем. А вот на домашнем компе с Lubuntu 16.04 ругается на файл конфигурации
Unrecognized option or missing parameter(s) in /etc/openvpn/sigahome.ovpn:13: block-outside-dns (2.3.10)
Options error: Unrecognized option or missing parameter(s) in /etc/openvpn/sigahome.ovpn:18: tls-crypt (2.3.10)
Это может происходить из-за разных версий Ubuntu? И как это обойти? Обновить версию убунты на компе не предлагать, комп не потянет.
Я думаю тут проблема в несовместимости версий OpenVPN. У вас 2.3, а в 2.4 много чего поменялось. Например, появилась опция tls-crypt вместо tls-auth и шифры используются другие.
Спасибо, буду копать в этом направлении
root@OpenVpn:/dev# bash openvpn-install.sh
The system does not have the TUN device available.
TUN needs to be enabled before running this installer.
Как создать еще одного пользователя ?
Нужно ещё раз запустить скрипт установки и выбрать создание пользователя.
Вот уже месяц как установил ОС Linux Mint 21.2, но никак не получается установить бесплатный VPN. А без неё работать невозможно. В Windows установить ви пи эн элементарно просто, но там вирусы достают до сумасшествия! Подскажите, как установить впн в моей системе. Судя по рекламе OPENVPN самый подходящий. VPN Hola устанавливается только в Браузере, а мне нужно в ДескТопе. Спасибо.
каждый раз попадаю на этот сайт, где тупорылый рерайтер выбрасывает ключевые настройки и инструкция не работаею. Тебе не стоит писать на такие сложные темы.