Openvpn client ubuntu автозапуск
В данном руководстве рассматривается установка и настройка OpenVPN сервера под управлением Debian 10 и Ubuntu 18.
OpenVPN-cервер имеет внешний IP-адрес 1.1.1.1 , подключаемые устройства будет получать адреса из сети 10.8.0.0/24
При данной схеме клиенты подключаются на адрес 1.1.1.1 , во внешний мир они также будут выходить с адреса 1.1.1.1. Если на сервере присутствует несколько внешних IP-адресов, то схему можно видоизменить: клиенты подключаются на 1.1.1.1, во внешний мир выходят с 1.1.1.2 ( не путать с double vpn ).
Итак, в наличии имеется свежеустановленный сервер на Debian 10.
Производим установку пакетов, в том числе вспомогательных:
Пакет easy-rsa требуется нам для создания собственного центра сертификации. Для безопасности его можно разместить на другом сервере, для простоты демонстрации создание ключей и сертификатов будем производить на этом же сервере. Для удобства работы создаём символическую ссылку на каталог с easy-rsa в /etc/openvpn:
Для настройки переменных центра сертификации создаём файл vars:
Сейчас всё готово к созданию центра сертификации. Выполняем инициализацию:
В результате должны увидеть на экране результат работы:
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/openvpn/easy-rsa/pki
Создаём корневой сертификат:
Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
дважды задаём пароль.
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
можно нажать клавишу Enter.
Создаем ключ Диффи-Хеллмана:
Для создания сертификата сервера на первом этапе создаём файл запроса:
И затем создаём сертификат сервера:
И затем пароль, который использовался для создания корневого сертификата.
Для создания ta ключа используем команду:
Приступаем к настройке OpenVPN сервера.
Копируем файлы ca.crt, dh.pem, server01.crt, server01.key, ta.key в /etc/openvpn
Создаём файл конфигурации server.conf со следующим содержимым:
Включаем автозапуск OpenVPN сервера:
Проверяем лог-файлы и наличие интерфейса tun0:
Если в вводе команды ip a присутствуют нижеследующие строки, значит сервис успешно стартовал:
Для того, чтобы сервер мог транслировать пакеты с клиента во внешний мир выполняем следующие действия.
В файл /etc/sysctl.conf добавляем строку
Это файл содержит настройки UFW, которое применяются перед применением правил UFW. Добавьте в начало файла нижеследующие строки. Это настроит правила, применяемые по умолчанию, к цепочке POSTROUTING в таблице nat и будет скрывать весь трафик от VPN:
Теперь мы должны сообщить UFW, что ему по умолчанию необходимо разрешать перенаправленные пакеты. Для этого откройте файл /etc/default/ufw:
Найдите в файле директиву DEFAULT_FORWARD_POLICY . Мы изменим значение с DROP на ACCEPT :
Открываем в файрволе необходимые порты:
Теперь деактивируем и активируем UFW для применения внесённых изменений:
Для настройки клиента потребуется создание клиентских сертификатов, ключей и файла конфигурации. Автоматизируем этот процесс.
В каталоге /etc/openvpn/client создадим файл make_config.sh со следующим содержимым:
Создадим файл шаблона для клиентского конфига base.conf:
Для генерации клиентских ключей, сертификата и файла конфигурации достаточно выполнить команду:
где client01 желаемое имя файла конфигурации. На выходе получим client01.ovpn со встроенными ключами. Данный файл нужно перенести на клиентский компьютер и поместить в соответствующий каталог.
Вы можете взглянуть на fail2ban, который непосредственно содержится в репозиториях (так что вы можете просто «sudo apt-get install fail2ban»). Я использую его уже много лет, и на моем сервере было много хакеров, заблокировав их. Fail2ban работает путем анализа файлов журнала для определенных шаблонов (он поставляется с хорошей конфигурацией образцов), а затем блокирует злоумышленников IP - например. если хакер сделал 5 неудачных попыток входа в систему через ssh (даже для разных учетных записей), вы можете заблокировать свой IP за определенный промежуток времени (например, 30 минут).
Изменить: уведомления также возможны (отправьте почту, если что-то было обнаружено).
3 ответа
Пакет openvpn поставляется с скриптом init /etc/init.d/openvpn. Этот скрипт автоматически устанавливает соединение для каждого файла .conf (mind the extension) в /etc/openvpn.
Если вы устанавливаете OpenVPN через RPM или DEB-пакет в Linux, установщик настроит initscript. Когда выполняется, initscript будет проверять файлы конфигурации .conf в файле / etc / openvpn, и если он найден, запустит отдельный демон OpenVPN для каждого файла.
Было бы неплохо, если бы у него был хакерский способ сделать это, но это нужно будет сделать сейчас.
1) Создать файл myopenvpn в /etc/init.d/
2) Вставить в myopenvpn и сохранить:
Я немного застрял в этом и закончил тем, что написал все инструкции по его настройке с помощью systemd вручную.
Это работало для меня с использованием Ubuntu 16.10 и openvpn 2.3.11
В этих примерах используется expressvpn, но большинство будет работать одинаково
Загрузите файл конфигурации ovpn поставщика vpn, например my_express_vpn_amsterdam_2.ovpn
переместите это на /etc/openvpn/ и переименуйте его в конец ovpn
Ваш поставщик VPN предоставит вам имя пользователя и пароль для подключения через openvpn. Сохраните имя пользователя и пароль каждый в своей собственной строке
теперь отредактируйте /etc/openvpn/amsterdam-2.conf найдите строку, которая говорит auth-user-pass, и замените ее на путь к вашему файлу учетных данных
Проверьте свою конфигурацию! Начать openvpn, как это
sudo openvpn --config /etc/openvpn/amsterdam-2.conf
openvpn должен подключиться без запроса имени пользователя или пароля
Удалить существующий (сломанный) сервис-конфиг для openvpn
sudo rm /etc/systemd/system/multi-user.target.wants/openvpn.service
Конфигурация, которая пришла с openvpn был сломан, поэтому я удалил его и создал новый на основе этого ответа
Создает службу systemd для openvpn
sudo vim /usr/lib/systemd/system/openvpn@service
добавляет эту конфигурацию: [ ! d23]
%i используется в качестве подстановочного знака, чтобы эта служба могла использоваться для нескольких конфигураций vpn. Задайте его для файла amsterdam-2.conf, который мы создали ранее
sudo systemctl start [email protected]
Теперь служба systemd должна работать на amsterdam vpn. проверьте этот статус так:
sudo systemctl status [email protected]
вы должны увидеть несколько строк вывода, заканчивающихся на Initialization Sequence Completed, и ваш vpn должен работать.
Преимущества автоматического VPN- подключения – много. Но, в частности, это будет держать ваш интернет-трафик в тайне. Более новый системный Linux заставляет нас настроить наш загрузочный скрипт для OpenVPN, чтобы он работал. Это руководство зависит от этой настройки OpenVPN. Узнайте, как настроить OpenVPN для автоматического запуска в systemd Linux! [ Читать: Руководство: Настроить автозапуск OpenVPN-соединения с Linux ]
Требования к автозапуску OpenVPN в systemd Linux
Прежде чем вы начнете настраивать OpenVPN для автоматического запуска в systemd Linux, вам понадобится несколько предварительных условий:
Настройте OpenVPN для системного Linux
Теперь давайте настроим OpenVPN для автоматического запуска для systemd Linux. Сначала откройте терминал. Нам нужно изменить поведение по умолчанию OpenVPN. С помощью редактора Nano выполните команду:
Выполните следующие команды, чтобы показать список возможных файлов vpn.ovpn:
Далее вам нужно решить, к какому файлу vpn.ovpn вы собираетесь автоматически подключаться. Тот, который вы выбираете, должен быть переименован в client.conf, потому что это стандартный способ сделать это в мире OpenVPN. Запустите эту команду:
Измените строку, которая говорит:
Нажмите «Ctrl X» и «Y», чтобы сохранить изменения.
Вставьте свое имя пользователя в первую строку и пароль одну секунду, затем нажмите «Ctrl X» и «Y», чтобы сохранить файл.
Эксклюзивное предложение IPVanish VPN – всего $ 3,25 в месяц :
Руководства по VPN для
Windows, Android, Ubuntu
Kodi OpenVPN
OSMC на RPi♦ Скрыть ваш просмотр (без журналов), анонимизировать потоковое вещание и загрузки
♦ Обойти географические / страновые ограничения и доступ к всемирному контенту
♦ Работать на Windows, Mac, Linux, Android, iOS, маршрутизаторе и т.д.
♦ 250 ГБ SugarSync Безопасное хранилище включено
♦ Деньги гарантия возврата – Зарегистрируйтесь сейчас
OpenVPN для systemd Linux: включить службу systemd
Выполните следующую команду, чтобы включить службу OpenVPN во время загрузки:
В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.
Установка
Windows
Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:
Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».
Linux CentOS
Устанавливаем репозиторий EPEL:
yum install epel-release
yum install openvpn
Linux Ubuntu
apt-get install openvpn
Android
Установка выполняется из Google Play. Набираем в поиске OpenVPN Connect - нажимаем установить и принимаем условия.
Настройка
После установки программы конфигурационный файл не создается автоматически и его нужно создать вручную.
В системах Windows создаем файл config.ovpn в папке %programfiles%\OpenVPN\config.
* имя файла может быть любым, расширение должно быть .ovpn.
Для создания конфигурационного файла в Linux выполняем команду:
* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.
Пример конфигурационного файла
client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0
Параметры конфигурационного файла
Наиболее полный и актуальный список параметров для OpenVPN можно получить командой openvpn --help (в Linux и Windows).
Сертификаты
Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.
Я использую Ubuntu 12.04 64bit. У меня есть *.ovpn файл, который работает, если я наберу:
Теперь я хотел бы запустить openvpn при загрузке компьютера.
Как я могу это сделать?
Переместить файл ovpn в /etc/openvpn
cd /etc/openvpn папку и введите sudo nano yourserver.txt
Сохранить и закрыть
sudo nano OpenVPNConfigFile.ovpn
Найти auth-user-pass и добавить yourserver.txt рядом с ним, чтобы он стал
Это позволит вам пропустить ввод учетных данных при каждом запуске соединения openvpn
Переименовать OpenVPNConfigFile.ovpn в OpenVPNConfigFile.conf
sudo nano /etc/default/openvpn
sudo service openvpn start
Если вы используете systemd, вам нужно будет запустить его systemctl daemon-reload до перезапуска службыopenvpn Пакет поставляется с сценарием инициализации /etc/init.d/openvpn . Этот скрипт автоматически устанавливает соединение для каждого .conf (обратите внимание на расширение) файла в /etc/openvpn .
Если вы устанавливаете OpenVPN через пакет RPM или DEB в Linux, программа установки настроит начальный скрипт. После выполнения initscript будет сканировать файлы конфигурации .conf в / etc / openvpn и, если найден, запустит отдельный демон OpenVPN для каждого файла.
Было бы неплохо иметь un-hacker способ сделать это, но сейчас это нужно сделать.
1) Создайте файл myopenvpn в /etc/init.d/
2) Вставьте в myopenvpn и сохраните:
Я немного застрял в этом и закончил тем, что выписал все инструкции по настройке с помощью systemd вручную.
У меня это работало с использованием Ubuntu 16.10 и openvpn 2.3.11
Эти примеры используют expressvpn, но большинство будет работать так же
Загрузите файл конфигурации ovpn вашего провайдера vpn, например, my_express_vpn_amsterdam_2 . OVPN
переместите это в /etc/openvpn/ и переименуйте в конец .conf
Ваш провайдер VPN предоставит вам имя пользователя и пароль для подключения через openvpn. Сохраните имя пользователя, а затем пароль каждого в своей строке
Теперь отредактируйте, /etc/openvpn/amsterdam-2.conf найдите строку с надписью auth-user-pass и замените ее на путь к файлу учетных данных.
Проверьте свой конфиг! Запустите openvpn, как это
sudo openvpn --config /etc/openvpn/amsterdam-2.conf
openvpn должен подключаться без запроса имени пользователя или пароля
Удалить существующий (сломанный) сервисный конфиг для openvpn
sudo rm /etc/systemd/system/multi-user.target.wants/openvpn.service
Конфигурация, поставляемая с openvpn, была повреждена, поэтому я удалил ее и создал новый на основе этого ответа
Создать сервис systemd для openvpn
sudo vim /usr/lib/systemd/system/openvpn@service
добавьте этот конфиг:
%i используются в качестве шаблона , так что эта услуга может быть использована для нескольких конфигураций VPN. Настройте его для amsterdam-2.conf файла, который мы создали ранее
sudo systemctl start [email protected]
служба systemd должна теперь работать на amsterdam vpn. проверить его статус так
sudo systemctl status [email protected]
вы должны увидеть несколько строк вывода, оканчивающихся на, Initialization Sequence Completed и ваш vpn должен работать.
Читайте также: