Вопрос или проблема
У меня есть сервер с установленным OpenVPN, а также есть ноутбуки (клиенты) с Ubuntu и установленным openvpn. На клиенте, если я вручную запускаю команду “sudo openvpn /etc/openvpn/client.conf”, клиент настроен запрашивать у меня информацию для входа (имя пользователя и пароль), которые затем будут использоваться для аутентификации на сервере. Я хотел бы, чтобы этот процесс происходил автоматически при запуске. В основном, мне нужно, чтобы вход в клиентский ноутбук и вход на сервер openvpn были одним и тем же действием. Я хочу, чтобы данные для аутентификации для входа в openvpn были такими же, как данные для входа в локальную учетную запись пользователя ноутбука. Как я могу это сделать?? Подробности, пожалуйста.
Предполагаю, что вы скачали файл .ovpn
с информацией о vpn.
Создайте файл в той же папке с названием auth.txt
и вставьте в его первой строке имя пользователя для входа в vpn, а во второй строке — пароль vpn, например:
admin
master
Сохраните файл и закройте его. Отредактируйте свой файл .ovpn
: найдите строку, начинающуюся с auth-user-pass
, и добавьте auth.txt
. Сохраните файл и закройте его.
Я бы указал полный путь к auth.txt
, например, auth-user-pass /etc/openvpn/auth.txt
, но (по крайней мере на Ubuntu) это также работает и с просто именем файла, если он в той же папке.
Теперь вы должны иметь возможность вызвать sudo openvpn <.ovpn file>
без предоставления учетных данных (кроме пароля sudo
).
Я основывал информацию на здесь и здесь
Есть небольшая заметка о том, как автоматически запускать скрипты при загрузке системы: здесь
Для любой современной версии Ubuntu (16.04+) сохраните конфигурационный файл клиента OpenVPN как /etc/openvpn/<name>.conf
и выполните команду
# systemctl enable openvpn@<name>.service
Это создаст юнит при запуске на основе шаблона, предоставленного установленным пакетом openvpn.
(В качестве альтернативы, если вы хотите различать соединения сервера и клиента, поместите файл .conf в подкаталог …/client/ или …/server/ и используйте, соответственно, openvpn-client@ или …-server@ шаблон для создания юнита при запуске.)
Попробуйте запустить вновь созданный сервис – systemctl start openvpn@<name>
. Вы увидите сообщения о требованиях к имени пользователя и паролю и всплывающие окна TTY для ввода недостающих данных. Введите данные и проверьте, что туннель работает.
Затем создайте файл авторизации, как указано в других ответах, и перезапустите сервис, чтобы узнать, заполняются ли данные автоматически.
У меня все прекрасно сработало.
Используйте опцию “auth-user-pass credentials-file.txt” в вашем конфигурационном файле клиента. Файл учетных данных должен быть в следующем формате:
username
password
Да, у вас будет текстовый файл с именем пользователя и паролем.
Ответ или решение
Автоматический запуск OpenVPN с аутентификацией по имени пользователя и паролю в Ubuntu
Ваша задача заключается в автоматизации процесса подключения клиента OpenVPN в Ubuntu так, чтобы это происходило при запуске системы, без необходимости вручную вводить данные для аутентификации. Для достижения этой цели вам потребуется создать файл с учетными данными, правильно настроить конфигурацию OpenVPN и настроить автозапуск службы. Ниже приведены пошаговые инструкции для реализации данной задачи.
1. Подготовка файла с учетными данными
Сначала вам необходимо создать файл, содержащий ваши учетные данные. Это файл будет использоваться OpenVPN для автоматического ввода имени пользователя и пароля.
-
Создайте файл
auth.txt
в директории, где находится ваш файл конфигурации OpenVPN (например,/etc/openvpn/
). Используйте текстовый редактор для создания файла:sudo nano /etc/openvpn/auth.txt
-
Запишите имя пользователя и пароль в этот файл. Первая строка — имя пользователя, вторая строка — пароль:
ваш_логин ваш_пароль
-
Сохраните изменения и закройте текстовый редактор.
2. Изменение конфигурационного файла OpenVPN
Теперь необходимо изменить ваш файл конфигурации OpenVPN, чтобы он использовал файл с учетными данными.
-
Откройте ваш файл конфигурации OpenVPN (например,
client.conf
):sudo nano /etc/openvpn/client.conf
-
Найдите строку, начинающуюся с
auth-user-pass
, и измените её на следующую, указав путь к вашему файлу с учетными данными:auth-user-pass /etc/openvpn/auth.txt
-
Сохраните изменения и закройте файл.
3. Настройка автозапуска OpenVPN
Теперь, когда у вас настроены учетные данные и конфигурация, важно настроить OpenVPN на автозапуск при загрузке системы.
-
Сохраните ваш файл конфигурации как
/etc/openvpn/<название>.conf
, если он еще не сохранен. -
Включите автозапуск службы OpenVPN с помощью команды:
sudo systemctl enable openvpn@<название>
Замените
<название>
на имя вашего конфигурационного файла без расширения.conf
. -
Запустите службу OpenVPN:
sudo systemctl start openvpn@<название>
-
Проверьте статус службы для удостоверения, что соединение установлено:
sudo systemctl status openvpn@<название>
Заключительные замечания
Теперь при каждой загрузке вашей Ubuntu-системы OpenVPN будет автоматически подключаться с использованием ваших учетных данных. При этом вы обеспечите безопасность, поскольку файл auth.txt
должен быть защищён от несанкционированного доступа. Убедитесь, что вы ограничили доступ к этому файлу с помощью команды:
sudo chmod 600 /etc/openvpn/auth.txt
Эта процедура не только упрощает работу с VPN, но и повышает вашу продуктивность, исключая необходимость ручного ввода данных.