Настройка и использование OpenVPN на Ubuntu
Для удобства настройки заходим под суперпользователем:
Подготовка Ubuntu
Обновляем установленные пакеты:
apt-get update && apt-get upgrade
Устанавливаем утилиту для синхронизации времени:
apt-get install chrony
Разрешаем ее автозапуск и стартуем сервис:
systemctl enable chrony —now
Установим правильную временную зону:
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* в данном примере московское время.
Установка, настройка и запуск VPN-сервера
Установка OpenVPN
Устанавливаем необходимые пакеты следующей командой:
apt-get install openvpn easy-rsa
Создание сертификатов
Создаем каталог, в котором будем хранить сертификаты:
Переходим в созданный нами каталог:
Скопируем в текущий каталог шаблоны скриптов для формирования сертификатов:
cp -r /usr/share/easy-rsa/* .
Чтобы ускорить процесс создания ключей, откроем на редактирование следующий файл:
и приведем его к следующему виду:
export KEY_COUNTRY=»RU»
export KEY_PROVINCE=»Sankt-Petersburg»
export KEY_CITY=»Sankt-Petersburg»
export KEY_ORG=»DMOSK COMPANY»
export KEY_EMAIL=»master@dmosk.ru»
export KEY_CN=»DMOSK»
export KEY_OU=»DMOSK»
export KEY_NAME=»name-openvpn-server.dmosk.ru»
export KEY_ALTNAMES=»name-openvpn-server»
* где KEY_CN и KEY_OU: рабочие подразделения (например, можно указать название отдела); KEY_NAME: адрес, по которому будет выполняться подключение (можно указать полное наименование сервера); KEY_ALTNAMES — альтернативный адрес.
Запускаем отредактированный файл на исполнение:
Если скрипт выполнится без ошибок, мы увидим следующее:
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
Почистим каталог от старых сертификатов:
Для генерирования сертификатов необходим конфигурационный файл openssl.cnf — по умолчанию, он отсутствует, но есть файл openssl-1.0.0.cnf. Создаем на него симлинк:
ln -s openssl-1.0.0.cnf openssl.cnf
* в каталоге /etc/openvpn/easy-rsa может быть несколько разных версий конфигурационного файла openssl-x.x.x.cnf. Чтобы узнать точное имя файла, вводим команду ls /etc/openvpn/easy-rsa.
Генерируем сертификат корневого центра:
на все запросы нажимаем Enter, так как всю верную информацию мы ввели в файле vars.
Теперь последовательно вводим следующие команды для формирования остальных сертификатов.
openvpn —genkey —secret keys/ta.key
Копируем каталог с созданными сертификатами и ключами в /etc/openvpn:
cp -r keys /etc/openvpn/
Настройка OpenVPN-сервера
Создаем конфигурационный файл:
И вставляем в него следующее:
local 192.168.0.15
port 443
proto udp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh2048.pem
tls-auth keys/ta.key 0
server 172.16.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
max-clients 32
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 4
mute 20
daemon
mode server
tls-server
comp-lzo
- local — IP-адрес, на котором будет обрабатывать запросы OpenVPN;
- port — сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных, например 1723).
- proto — используемый транспортный протокол.
- dev — виртуальный сетевой адаптер, который будет создан для работы OpenVPN.
- ca — путь до сертификата корневого центра сертификации.
- cert — путь до открытого сертификата сервера.
- key — путь до закрытого сертификата сервера.
- dh — путь до ключа Диффи — Хеллмана.
- tls-auth — путь до tls-ключа.
- server — задаем IP-адрес сервера в сети VPN.
- ifconfig-pool-persist — путь к файлу для хранения клиентских IP-адресов.
- keepalive X Y — каждые X секунд отправляется ping-запрос на удаленный узел. Если за Y секунд не получено ответа — перезапускать туннель.
- max-clients — максимум одновременных подключений.
- persist-key — не перезагружать ключи при повторной загрузки из-за разрыва соединения.
- persist-tun — не изменять устройства tun/tap при перезапуске сервера.
- status — путь до журнала статусов.
- log-append — путь до файла лога с дополнительным выводом информации.
- verb — уровень логирования событий. От 0 до 9.
- mute — ограничение количества подряд отправляемых в лог событий.
- daemon — работа в режиме демона.
- mode — в каком режиме работает openvpn (сервер или клиент).
- tls-server — указывает, что данный сервер работает с использованием TLS.
- comp-lzo — использовать сжатие.
Создадим каталог для логов:
Разрешаем автоматический старт сервиса vpn и запускаем его:
Настройка клиента OpenVPN в Linux
В предыдущей статье мы настраивали сервер для OpenVpn . А теперь пришло время настроить клиент OpenVPN и подключить его к VPN-серверу. Сначала установите пакет OpenVPN на клиентском компьютере следующим образом.
$ sudo yum install openvpn # CentOS 8 /7/6
$ sudo apt install openvpn # Ubuntu /Debian
$ sudo dnf install openvpn # Fedora 22+/CentOS 8
В систему вам также необходимо установить пакет network-manager-openvpn , чтобы настроить параметры VPN из графического интерфейса.
$ sudo yum install network-manager-openvpn
Для Ubuntu/Debian
$ sudo apt install network-manager-openvpn
Для Fedora 22+/CentOS 8
$ sudo dnf install network-manager-openvpn
После установки вышеуказанных пакетов запустите службу OpenVPN , на данный момент включите ее автоматический запуск при загрузке системы и проверьте его состояние, чтобы убедиться, что все запущено и работает.
$ sudo systemctl start openvpn
$ sudo systemctl enble openvpn
$ sudo systemctl status openvpn
Теперь нужно импортировать OpenVPN настройки клиента с сервера OpenVPN. Откройте окно терминала и используйте команду SCP, чтобы получить файл конфигурации, как показано.
$ scp fyfor@10.42.0.247:/home/ fyfor / fyfor .ovpn .
P.S. fyfor замените на вашего пользователя
Откройте Настройки\ Settings , затем перейдите в Сеть\ Networks . В разделе VPN нажмите кнопку добавления, чтобы получить необходимые параметры.
Во всплывающем окне выберите Импорт из файла\ Import from file , как показано на следующем снимке экрана. Затем просмотрите ваш файловый менеджер и выберите .ovpn файл конфигурации клиента, который вы скачали с сервера.
P.S. В других системах Linux нажмите значок сети на системной панели и перейдите в раздел «Сетевые подключения\ Network Connections» . Затем нажмите кнопку «плюс», чтобы добавить новое соединение. В раскрывающемся списке выберите « Импортировать сохраненную конфигурацию VPN…\ Import a saved VPN configuration »
После импорта файла необходимо добавить настройки VPN, как показано на следующем скриншоте. Затем нажмите Добавить\ Add .
Настройки вашего VPN-клиента должны быть успешно добавлены. Вы можете подключиться к серверу OpenVPN , включив VPN, как показано на следующем снимке экрана.
VPN-соединение должно быть успешно установлено.
Если вы проверите сетевое подключение с помощью команды IP add , то теперь должен существовать интерфейс VPN-туннеля, как показано на следующем снимке экрана.
Чтобы подключить другой сервер Linux в качестве VPN-клиента, убедитесь, что вы установили пакет OpenVPN, запустили и включили службу OpenVPN, как описано выше.
Затем загрузите .ovpn файл с сайта https://www.vpngate.net/ и скопируйте его в каталог /etc/openvpn/
Затем запустите службу VPN-клиента, включите ее и проверьте состояние с помощью следующих команд.
Простая настройка OpenVPN Linux
OpenVPN часто используется для создания виртуальных безопасных сетей между компьютерами, которые находятся на очень большом расстоянии, но при этом между ними нужно получить шифрованное безопасное соединение, которое невозможно перехватить и прослушать.
Другое применение для OpenVPN — это обход блокировок различных интернет ресурсов. Существуют различные серверы OpenVPN серверы в интернете, но будет намного надежнее если развернуть OpenVPN на своем сервере. Мы рассматривали процесс в статье установка OpenVPN на Ubuntu, но для новичков это достаточно сложно. В этой инструкции мы рассмотрим как выполняется настройка OpenVPN linux с помощью скрипта openvpn-install, который упрощает процесс установки и настройки в несколько раз. С его помощью вы получите работающий сервер в течение нескольких минут.
Настройка OpenVPN сервера в Linux
В этой статье, в качестве системы для примера мы будем использовать операционную систему CentOS, но операции не будут отличаться в других дистрибутивах. Сначала скачайте сам скрипт:
wget https://git.io/vpn -O 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
sudo yum install openvpn
Теперь для подключения к нашему серверу используем полученный файл:
openvpn —config /etc/openvpn/client.ovpn
Вы можете использовать команду ip addr чтобы проверить ip адрес интерфейса OpenVPN — tun0:
Как видите, OpenVPN автоматически выдал IP вашему компьютеру, теперь можете проверить подключение к этому серверу с помощью ping:
Вот и все, ваша сеть готова к работе.
Выводы
Пять минут и настройка OpenVPN Linux завершена, а не подключение следующего клиента уйдет еще меньше. Этот метод не специфичен для RPM систем и может использоваться также в DEB системах, таких как Ubuntu или Debian. Если у вас остались вопросы, спрашивайте в комментариях!
Полная настройка OpenVPN: