Настройка OpenVPN для Debian 10
Обновлено: 21.11.2024
В этом руководстве мы узнаем, как установить OpenVPN Server в Debian 11/Debian 10.
Установите сервер OpenVPN в Debian 11/Debian 10
Запустить обновление системы
Установите OpenVPN в Debian 11/Debian 10
Пакет OpenVPN доступен в репозиториях Debian 11/Debian 10 по умолчанию.
Создание инфраструктуры открытого ключа OpenVPN
- открытый ключ и закрытый ключ для сервера и каждого клиента
- сертификат главного центра сертификации (ЦС) и ключ, которые используются для подписи каждого сертификата сервера и клиента.
Поэтому скопируйте каталог конфигурации easy-rsa в другое место, чтобы гарантировать, что будущие обновления пакета OpenVPN не перезапишут ваши изменения.
Далее инициализируйте PKI.
Пример вывода команды
Создайте сертификат и ключ центра сертификации (CA)
Далее сгенерируйте сертификат ЦС и ключ для подписи сертификатов сервера и клиента OpenVPN.
При этом вам будет предложено ввести кодовую фразу ключа ЦС и общее имя сервера.
Сертификат ЦС создается и сохраняется в /etc/easy-rsa/pki/ca.crt .
Сгенерировать параметры Диффи-Хеллмана
Создайте ключи Диффи-Хеллмана, используемые для обмена ключами во время рукопожатия TLS между сервером OpenVPN и подключающимися клиентами. Эта команда была выполнена в каталоге Easy-RSA;
Параметры DH размером 2048 будут созданы в /etc/easy-rsa/pki/dh.pem .
Создать сертификат и ключ сервера OpenVPN
Чтобы сгенерировать сертификат и закрытый ключ для сервера OpenVPN, выполните приведенную ниже команду;
Введите парольную фразу ключа ЦС, созданную выше, чтобы сгенерировать сертификаты и ключи.
nopass отключает использование фразы-пароля.
Создать ключ кода аутентификации сообщения на основе хэша (HMAC)
Предварительно общий ключ аутентификации TLS/SSL используется в качестве дополнительной подписи HMAC для всех пакетов рукопожатия SSL/TLS, чтобы избежать DoS-атак и переполнения портов UDP. Это можно сгенерировать с помощью команды;
Создать сертификат отзыва OpenVPN
Чтобы аннулировать ранее подписанный сертификат, необходимо создать сертификат отзыва.
Запустите скрипт в каталоге Easy-RSA;
Сертификат отзыва создается и сохраняется в /etc/easy-rsa/pki/crl.pem .
Копировать сертификаты и ключи сервера в каталог конфигурации сервера
Скопируйте все сгенерированные сертификаты/ключи сервера в каталог конфигурации сервера OpenVPN.
Создание сертификатов и ключей клиента OpenVPN
- где коромича — имя клиента, для которого генерируются сертификат и ключи.
- Всегда используйте уникальное общее имя для каждого клиента, для которого вы создаете сертификат и ключи.
Пример вывода команды
Чтобы сгенерировать для второго клиента,
Вы можете увидеть, как использовать команду easyrsa с помощью ./easyrsa --help .
Копировать сертификаты и ключи клиента в каталог клиента
Создайте каталоги клиентов OpenVPN. Например, мы сгенерировали сертификаты и ключевые файлы для двух клиентов, koromicha и janedoe, поэтому мы создаем каталоги как;
После этого скопируйте сгенерированные клиентом сертификаты/ключи и сертификат ЦС сервера в каталог конфигурации клиента OpenVPN. Вы можете
Настройка сервера OpenVPN в Debian 11/Debian 10
Следующий шаг — настроить сервер OpenVPN. Скопируйте образец конфигурации сервера OpenVPN в каталог /etc/openvpn/server, как показано ниже;
Извлеките конфигурацию.
Измените файл конфигурации server.conf в соответствии с вашими потребностями;
Вот так выглядят наши конфигурации без комментариев.
Сохраните и выйдите из конфигурации после редактирования.
Настройка IP-переадресации OpenVPN
Чтобы трафик от клиента направлялся через IP-адрес сервера OpenVPN (помогает маскировать IP-адрес клиента), необходимо включить переадресацию IP на сервере OpenVPN.
Раскомментируйте строку net.ipv4.ip_forward=1 в файле /etc/sysctl.conf, чтобы включить пересылку пакетов для IPv4
Примените изменения без перезагрузки сервера.
Разрешить порт службы OpenVPN через брандмауэр;
Настройка маскировки IP-адресов на UFW
Найдите интерфейс по умолчанию, через который отправляются ваши пакеты.
Далее обновите правила UFW;
Добавьте следующие выделенные строки непосредственно перед параметрами *filter table. Обратите внимание, что используемый интерфейс должен совпадать с именем интерфейса, указанным выше.
Сохранить и выйти из конфигурации.
Включить пересылку пакетов UFW
Запуск сервера OpenVPN в Debian 11/Debian 10
Запустите и включите сервер OpenVPN для запуска при загрузке системы;
Проверка статуса;
При запуске службы OpenVPN создается туннельный интерфейс tun0;
Кроме того, обязательно проверьте журналы;
Сервер OpenVPN теперь готов принимать и маршрутизировать подключения от клиентов.
На этом наше руководство по установке OpenVPN Server в Debian 11/Debian 10 заканчивается.
OpenVPN — это VPN-решение SSL/TLS. Он может преодолевать соединения NAT и брандмауэры. На этой странице кратко объясняется, как настроить VPN с помощью OpenVPN как на стороне сервера, так и на стороне клиента для различных настроек: от простого необработанного подключения для целей тестирования до подключения с поддержкой TLS.
Установите пакет openvpn как на клиенте, так и на сервере.
Чтобы включить OpenVPN в апплете Gnome NetworkManager для области уведомлений панели задач, на клиенте должен быть установлен дополнительный пакет network-manager-openvpn-gnome:
В брандмауэре сервера откройте UDP 1194 (порт по умолчанию).
Помните, что 90 % всех проблем с подключением, с которыми сталкиваются новые пользователи OpenVPN, связаны с брандмауэром.
OpenVPN может аутентифицировать пользователей с помощью пользователя/пароля, общего ключа, сертификатов и т. д.
Необработанное (незащищенное) VPN-подключение для тестирования
Серверная часть
Выполнить из оболочки сервера
Вы должны увидеть вывод консоли, похожий на
Пока работает openvpn, проверьте конфигурацию сети с помощью ip a. Вывод должен включать
Обратите внимание, что если вы отключите openvpn (например, с помощью Control-c в консоли), вы не увидите указанный выше сетевой интерфейс.
Клиентская часть
Вы также можете пропинговать сервер, чтобы проверить, что он доступен: ping 10.9.8.1.
VPN-подключение со статическим ключом
Конфигурация VPN-сервера со статическим ключом
В каталоге сервера /etc/openvpn выполните следующую команду, чтобы сгенерировать статический ключ:
Скопируйте этот статический ключ в каталог клиентов /etc/openvpn, используя безопасный канал, такой как scp или sftp.
На сервере создайте новый файл /etc/openvpn/tun0.conf и добавьте следующее:
Где 10.9.8.x — ваша подсеть VPN, 10.9.8.1 — IP-адрес сервера, 10.9.8.2 — IP-адрес клиента.
Конфигурация VPN-клиента со статическим ключом
На клиенте скопируйте /etc/openvpn/static.key с сервера, создайте новый файл /etc/openvpn/tun0.conf и добавьте следующее:
Запустите OpenVPN вручную с обеих сторон с помощью следующей команды (подробный вывод на 6):
Чтобы убедиться, что VPN работает, вы должны выполнить эхо-запрос 10.9.8.2 с сервера и 10.9.8.1 с клиента.
VPN-подключение с поддержкой TLS
Начиная с Jessie, easy-rsa – это отдельный пакет, который следует установить вместе с установкой openvpn.
Инициировать easy-rsa
Чтобы инициализировать среду, используйте следующую команду:
Все команды, запускаемые из каталога easy-rsa. Подробное описание доступных команд см. в ./easyrsa help.
- только файлы .key должны сохранять конфиденциальность.
- Файлы .crt и .csr можно отправлять по незащищенным каналам, таким как электронная почта с открытым текстом.
- не нужно копировать файл .key между компьютерами.
- каждый компьютер будет иметь собственную пару сертификат/ключ.
Создать сертификат CA/KEY
Создайте СЕРТИФИКАТ/КЛЮЧ ЦЕНТРА СЕРТИФИКАТОВ (CA):
Он создаст файлы ca.crt и ca.key в каталогах /etc/openvpn/easy-rsa/.
Создать СЕРТИФИКАТ/КЛЮЧ сервера:
Он создаст server.crt и server.key в /etc/openvpn/easy-rsa/pki/ и подпишется с помощью ваш корневой сертификат.
Сгенерировать ПАРАМЕТРЫ ДИФФИ-ХЕЛМАНА
Создайте СОЗДАТЬ ПАРАМЕТРЫ ДИФФИ-ХЕЛЛМАНА (необходимо для соединения SSL/TLS со стороны сервера):
Создать статический ключ для аутентификации TLS
Если вы уже создали статический ключ, вы можете переименовать его в ta.key и переместить в папку /etc/openvpn/server. В противном случае выполните следующее:
Сгенерировать CERTIFICATE/KEYs клиента(ов)
- Вам будет предложено ввести фразу-пароль PEM. Это фраза-пароль, которая потребуется вам для входа в клиент.
Установить СЕРТИФИКАТ/КЛЮЧИ клиента
Скопируйте файлы ca.crt, clientname.crt, clientname.key с сервера в каталоги /etc/openvpn/easy-rsa/pki/ клиента.< /p>
Подробности см. в разделе OpenVPN RSA Key.
VPN-подключение из командной строки
Файл конфигурации VPN-сервера
Если предыдущее подключение прошло успешно, создайте файл конфигурации сервера /etc/openvpn/server.conf следующим образом:
Создать файл состояния журнала:
Обратите внимание, что сценарий /etc/init.d/openvpn, запущенный с помощью «service openvpn restart», запустит сервер openvpn для каждого файла .conf в /etc/openvpn/, поэтому, если у вас все еще есть файл tun0.conf из выше, переименуйте его во что-нибудь другое, чем *.conf. Это связано с тем, что по умолчанию systemd требует только один сервер openvpn.
Файл конфигурации VPN-клиента
В клиенте создайте /etc/openvpn/client.conf следующим образом:
(примечание: вы можете использовать графический интерфейс сетевого менеджера vpn, предоставив ключ и сертификаты)
VPN-подключение запущено как служба Systemd
В корне /etc/openvpn/
По умолчанию все настроенные VPN в /etc/openvpn/ запускаются во время загрузки системы. Отредактируйте /etc/default/openvpn, чтобы запустить определенные VPN или отключить это поведение. Вам нужно запустить systemctl daemon-reload один раз, чтобы активировать новые VPN
в подпапках server и client
В Debian служба systemd ожидает, что файлы конфигурации сервера и клиента находятся соответственно в /etc/openvpn/server и /etc/openvpn/client. После того, как вы создали файл конфигурации в правильной папке, вам необходимо включить его. Например, предположим, что вы создали конфигурацию в /etc/openvpn/server/myserver.conf:
VPN-подключение запущено через файл interfaces
Перехватчики openvpn ifupdown также доступны для запуска/остановки туннелей с использованием /etc/network/interfaces, например:
Для получения дополнительной информации см. /usr/share/doc/openvpn/README.Debian.gz.
Генерация сертификатов устройств Android/iOS
OpenVPN Debian Server можно настроить для использования с устройствами Android/iOS.
на сервере
В Debian Server создайте необходимые сертификаты — мы считаем, что вы установили через apt openvpn и создали папку easy-rsa, как описано выше:
Измените следующие строки в файле /etc/openvpn/server.conf:
8.8.8.8 — DNS-сервер Google. Вы можете изменить свой предпочтительный DNS-сервер.
Проверьте, работает ли конфигурация:
Если это так, нажмите Ctrl-C и перезапустите сервер OpenVPN, чтобы использовать новую конфигурацию:
Создайте файл профиля клиента /etc/openvpn/client.ovpn и прикрепите к нему сертификаты:
Измените следующие строки в файле профиля клиента /etc/openvpn/client.ovpn:
отправьте по электронной почте или загрузите файл конфигурации клиента /etc/openvpn/$YOUR_CLIENT_NAME.ovpn на диск Google, чтобы загрузить его на iPhone.
Вы также можете выполнить серверные части описанных ниже шагов "Переадресация трафика через VPN".
на клиенте
Для устройств iOS установите клиент OpenVPN Connect. Затем перенесите файл конфигурации клиента /etc/openvpn/$YOUR_CLIENT_NAME.ovpn на устройство по электронной почте или через Google Диск. Откройте файл конфигурации в приложениях Почты или Google Диска.
Для устройств Android установите клиент OpenVPN Connect. Затем скопируйте файл конфигурации клиента /etc/openvpn/$YOUR_CLIENT_NAME.ovpn в хранилище устройства. Откройте файл конфигурации в приложениях OpenVPN.
Клиент OpenVPN вашего телефона должен автоматически заботиться о клиентских частях.
на сервере
На сервере включить переадресацию IP во время выполнения:
Редактируйте /etc/sysctl.conf, раскомментируйте следующую строку, чтобы сделать ее постоянной:
Выполните следующую команду на сервере для тестирования (по-старому):
Выполните следующую команду на сервере для тестирования (начиная с Bullseye):
В качестве альтернативы вы также можете использовать сценарий rc.firewall-iptables из TLDP Masquerade.
Если все работает нормально, сохраните правила: страницы Debian wiki iptables и nftables для подробностей.
В целях безопасности рекомендуется настроить PKI на сервере, отличном от сервера openvpn.
-
Прежде всего, убедитесь, что порт 443 уже не используется другой службой на вашем сервере.
- Теперь вы должны запустить OpenVPN на сервере, а затем на клиенте.
Включите параметр в файле конфигурации сервера, добавив:
Подключиться к этому интерфейсу:
Виртуальная частная сеть (VPN) – это безопасное и зашифрованное соединение между двумя сетями и отдельными пользователями, которое защищает ваше подключение к Интернету и конфиденциальность в Интернете. OpenVPN — это бесплатный VPN-протокол с открытым исходным кодом, в котором реализованы методы создания безопасных соединений «точка-точка» в маршрутизируемых конфигурациях. Он кроссплатформенный и совместим со всеми основными операционными системами.
В этом руководстве мы покажем вам, как установить и настроить OpenVPN на сервере Debian 10.
Оглавление
Предпосылки
- Debian 10 VPS (мы будем использовать наш план SSD 2 VPS)
- Доступ к учетной записи пользователя root (или доступ к учетной записи администратора с привилегиями root)
Шаг 1. Войдите на сервер и обновите пакеты операционной системы сервера
Сначала войдите на свой сервер Debian 10 через SSH как пользователь root:
Вам нужно будет заменить «IP_Address» и «Port_number» соответствующим IP-адресом вашего сервера и номером порта SSH. Кроме того, при необходимости замените «root» именем пользователя учетной записи администратора.
Перед началом необходимо убедиться, что все пакеты ОС Debian, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующие команды:
Шаг 2. Установите OpenVPN и EasyRSA
По умолчанию OpenVPN включен в репозиторий Debian по умолчанию.Вы можете установить его с помощью следующей команды:
После установки пакета OpenVPN вам нужно будет загрузить EasyRSA в свою систему.
EasyRSA — это утилита командной строки для создания и управления PKI CA. Он позволяет создавать несколько типов сертификатов.
Он используется для создания корневого центра сертификации, а также для запроса и подписи сертификатов для OpenVPN.
Вы можете загрузить последнюю версию EasyRSA из репозитория Git с помощью следующей команды:
После завершения загрузки извлеките загруженный файл с помощью следующей команды:
Затем скопируйте извлеченный каталог в каталог OpenVPN:
На этом этапе на вашем сервере установлены OpenVPN и EasyRSA.
Шаг 3. Создайте центр сертификации
Затем вам нужно будет создать центр сертификации (ЦС) для OpenVPN.
Сначала измените каталог на EasyRSA с помощью следующей команды:
Далее вам нужно будет создать внутри него файл vars. Файл vars — это простой файл, который Easy-RSA будет использовать для настройки.
Вы можете создать его с помощью следующей команды:
Добавьте следующие строки в соответствии с вашими потребностями:
Сохраните и закройте файл, когда закончите.
Затем инициируйте инфраструктуру открытого ключа с помощью следующей команды:
Вы должны получить следующий результат:
Далее вам нужно будет запустить команду build-ca, чтобы создать файлы ca.crt и ca.key. Вы можете запустить его с помощью следующей команды:
Вам будет задано несколько вопросов, как показано ниже:
Шаг 4. Создание сертификата сервера и файлов ключей
Далее вам нужно будет использовать команду gen-req, за которой следует обычное имя, чтобы сгенерировать ключ сервера.
Вы должны увидеть следующий вывод:
Далее вам нужно будет подписать ключ vpnserver с помощью вашего сертификата ЦС. Вы можете сделать это с помощью следующей команды:
Вы должны получить следующий результат:
Затем вам потребуется сгенерировать надежный ключ Диффи-Хеллмана, который будет использоваться для обмена ключами. Вы можете сгенерировать его с помощью следующей команды:
Шаг 5. Скопируйте все файлы сертификатов и ключей
Далее вам нужно будет скопировать все файлы сертификатов и ключей в каталог /etc/openvpn/server/. Вы можете скопировать с помощью следующей команды:
Шаг 6. Создайте сертификат клиента и файл ключа
Далее вам нужно будет сгенерировать сертификат и файл ключа для клиентской системы.
Вы можете создать его с помощью следующей команды:
Вы должны получить следующий результат:
Затем подпишите ключ клиента с помощью следующей команды:
Вы должны получить следующий результат:
Затем скопируйте все клиентские сертификаты и ключи в каталог /etc/openvpn/client/.
Шаг 7. Настройте сервер OpenVPN
На этом этапе сертификат и ключ сервера и клиента готовы. Теперь вам нужно создать файл конфигурации OpenVPN и определить все сертификаты и ключи.
Добавьте следующие строки:
Сохраните и закройте файл, затем запустите службу OpenVPN и включите ее запуск при перезагрузке системы:
Если все в порядке, будет создан новый интерфейс. Вы можете проверить это с помощью следующей команды:
Вы должны получить следующий результат:
Шаг 8. Включите IP-переадресацию
Переадресация IP позволяет вашей операционной системе принимать входящие сетевые пакеты и пересылать их в другую сеть. Вы можете включить его с помощью следующей команды:
Раскомментируйте или добавьте следующую строку:
Сохраните файл, затем примените изменения конфигурации с помощью следующей команды:
Шаг 9. Установите и настройте клиент OpenVPN
Далее вам нужно будет установить клиент OpenVPN в другой системе и подключиться к серверу OpenVPN.
Сначала установите OpenVPN с помощью следующей команды:
После установки скопируйте все сертификаты и ключи клиента с сервера OpenVPN на клиентский компьютер. Вы можете сделать это с помощью следующей команды:
Затем измените каталог на client и создайте файл конфигурации клиента:
Добавьте следующие строки:
Сохраните и закройте файл, затем подключитесь к серверу OpenVPN с помощью следующей команды:
После того как соединение установлено, вы должны получить следующий вывод:
Вы можете проверить интерфейс OpenVPN на клиентском компьютере с помощью следующей команды:
Вы должны получить следующий результат:
Конечно, вам не нужно устанавливать OpenVPN, если вы используете одну из наших услуг управляемого хостинга OpenVPN, и в этом случае вы можете просто попросить наших опытных администраторов Linux установить ее для вас. Они доступны круглосуточно и без выходных и немедленно обработают ваш запрос.
ПС. Если вам понравился этот пост о том, как установить OpenVPN на Ubuntu, поделитесь им с друзьями в социальных сетях, используя кнопки слева, или просто оставьте ответ ниже. Спасибо.
3 мысли о «Как настроить сервер OpenVPN в Debian 10»
Что-то у меня не так — ниже сервер работает, но я не подключаюсь к своему VPN-серверу
Вам необходимо проверить, настроен ли брандмауэр на вашей стороне или на стороне сервера, и убедитесь, что порты OpenVPN открыты.
Привет, я снова все проверил, и моя ошибка была исправлена. теперь все работает нормально
спасибо за инструкцию.
Мэтт Ноттс
Также стоит упомянуть, что сервер OpenVPN также можно развернуть как контейнер Docker. Процесс установки можно посмотреть здесь — ССЫЛКА.
Установка сервера OpenVPN
<р>1. Загрузите скрипт установки:Если вы используете минимальную версию Debian, в ней может не быть инструмента curl, но установка выполняется просто с помощью:
<р>2. Сделайте его исполняемым и запустите: <р>3. Общедоступные и частные IP-адреса: сценарий начнет процесс установки с ряда вопросов, за которыми следует приглашение и ваш ответ, чтобы настроить OpenVPN сразу после его установки. В первом запросе вас спросят — находится ли ваша машина Debian за NAT, и укажите общедоступный IP-адрес сервера:
Это наиболее распространенный случай, если вы используете виртуальную машину от облачного провайдера или вам необходимо удаленно подключиться к другому офису, расположенному в другом месте.
<р>4. IPv6 и номер порта: следующие запросы будут: хотите ли вы включить поддержку IPv6, для которой по умолчанию установлено значение НЕТ, и вы оставляете ее как есть, и какой порт использовать для OpenVPN для установления соединения. OpenVPN по умолчанию использует порт 1194, но вы также можете установить собственный порт:<р>5. Преобразователь DNS и сжатие: OpenVPN требует использования преобразователя DNS. Это может быть почти любой, но вы можете установить Google или OpenDNS (вариант 8 или 9). Для сжатия используйте NO, который установлен по умолчанию:
<р>6. Шифрование: Здесь у нас есть 3 подсказки для настроек шифрования. Вы можете указать НЕТ на всех трех, если вы не уверены или не знаете, как его установить и настроить. Вы можете оставить значение НЕТ, так как по умолчанию сценарий установки сгенерирует сертификат SSL и включит его в конфигурацию клиента, которая также зашифрует туннель VPN. После этих подсказок он уведомит о необходимости нажать любую клавишу для завершения установки. Затем он начнется и закончится через пару минут.
<р>7. Настройки и параметры клиента: введите имя для первого клиентского устройства.
<р>8. Защитите файл конфигурации клиента паролем: у вас есть возможность установить пароль для клиента, чтобы он мог подключаться к серверу или нет.
<р>9. Завершение и загрузка файла конфигурации клиента .ovpn: Здесь сценарий уведомляет вас о том, что установка и настройка завершены, а также о том, куда он поместил файл конфигурации клиента, который необходимо загрузить и разместить на своем клиенте.
Подключение клиента к серверу OpenVPN
Как уже упоминалось, после установки загрузите клиентский файл .ovpn (вы можете использовать SSH-клиент со встроенным файловым менеджером, таким как MobaxTerm или Bitwise или аналогичный). В Linux вы можете загрузить файл с помощью sftp:
Файл будет загружен в ваш домашний каталог.
Если вы используете версию оболочки клиента openvpn (без графического интерфейса), для подключения просто в терминале запустите openvpn с именем файла и расположением файла конфигурации вашего клиента .ovpn:
В версии с графическим интерфейсом вы можете просто импортировать файл конфигурации и все.
Добавление другого клиента
Чтобы добавить еще один новый клиент, просто снова запустите скрипт установки на сервере, и он предложит вам добавить еще одного клиента:
Процедура проста и такая же, как при создании первого клиента. Добавьте имя и загрузите клиент.
Настройка брандмауэра
Если на вашем сервере установлен брандмауэр, такой как UFW или IPTABLE, то для работы VPN необходимо открыть порт на вашем сервере:
Обзор
Подводя итоги статьи, мы рассмотрели процесс установки сервера OpenVPN в Debian 10 и Debian 11 с помощью сценария автоматической установки из Github, который ускоряет и упрощает процесс. Причина, по которой мы выбрали этот сценарий, заключается в том, что он может помочь нам развернуть серверное решение OpenVPN за считанные минуты, а также охватывает и автоматизирует большую часть конфигурации для наиболее распространенных сценариев использования. Помимо этого метода, мы также рассмотрели процедуру установки сервера OpenVPN с помощью Docker, которую можно проверить в этом посте.
Читайте также: