Xerus — отсутствует плагин l2tp для network-manager?

Сценарий использования (начальная настройка)

Пользователь хочет безопасно соединиться с OpenWrt маршрутизатором. На данный момент пользователь уже может получить доступ к OpenWrt маршрутизатору, но через внешнюю сеть, такую как Интернет. Конечным результатом станет прямое частное соединение между OpenVPN клиентом и сервером. В основном это будет выглядеть так, будто OpenVPN клиент находится в подсети маршрутизатора(но не в той подсети, которая является для маршрутизатора внешней).

Это руководство описывает 3 файла конфигурации для OpenVPN:

Стандартный (TUN) Сервер: Простейший вид OpenVPN сервера, Клиенты управляются исключительно OpenVPN, им также может быть выделена отдельная подсеть.

Сервер в режиме моста (TAP) : Также может называться “ethernet-bridge”. Эта конфигурация создаст виртуальный ethernet кабель между сервером и клиентом. Это означает что OpenVPN клиенты будут такими же участниками подсети, как и те которые подключены к маршрутизатору физически. IP-адреса им будет раздавать DHCP-сервер.

Клиент: OpenVPN будет работать в режиме клиента и соединится с OpenVPN сервером.

Следует отметить, что TAP это не синоним сетевого моста, тем не менее TAP адаптер нужен для сетевого моста, в то же время рекомендуется использовать TUN, если не нужен сетевой мост. Для простоты мы будем использовать эти термины как взаимозаменяемые, так как сравнение терминов “сервер” и “сервер-мост” может привести к путанице. TUN будет использоваться для обозначения традиционного сервера, в то время как TAP будет относиться к “серверу-мосту”.

Можно настраивать OpenVPN на OpenWrt удалённо. Однако рекомендуется делать это локально, так как это упростит поиск и устранение неисправностей.

TUN сервер расходует меньше ресурсов и только отсылает трафик, предназначенный только для клиента. В то время, как TAP сервер менее эффективный и отсылает клиентам широковещательный трафик.

TUN сервер может использовать ту же подсеть, что и сервер DHCP, если это требуется, однако рекомендуется выделять диапазон IP-адресов для TUN сервера за пределами диапазона DHCP, иначе могут возникнуть IP конфликты (один IP-адрес будет использоваться как DHCP, так и TUN сервером для двух разных клиентов).

Для TUN сервера легче настроить безопасность, так как его клиенты могут находиться в отдельной подсети, которая может легко контролироваться межсетевым экраном. Благодаря тому, что клиентам в данном режиме не отсылается широковещательная информация, злоумышленник не сможет получить доступ к большому объёму данных.

Сервер TAP объединяет клиентов в сеть более бесшовной образом, это может упростить процесс настройки различных сетевых приложений

Обратите внимание на то, что независимо от выбранного метода, создание правил межсетевого экрана имеет более важное значение безопасности, чем выбор между TUN и TAP сервером.. При использовании TAP сервера рекомендуется изменить маску подсети на отличную от 192.168..XXX или 192.168.1.XXX. Они очень распространены и приведут к конфликтам в маршрутизации

Это обычно может быть достигнуто путём изменения IP-адреса OpenWrt/OpenVPN маршрутизатора к чему-то наподобие 192.168.7.1

Они очень распространены и приведут к конфликтам в маршрутизации. Это обычно может быть достигнуто путём изменения IP-адреса OpenWrt/OpenVPN маршрутизатора к чему-то наподобие 192.168.7.1

При использовании TAP сервера рекомендуется изменить маску подсети на отличную от 192.168..XXX или 192.168.1.XXX. Они очень распространены и приведут к конфликтам в маршрутизации. Это обычно может быть достигнуто путём изменения IP-адреса OpenWrt/OpenVPN маршрутизатора к чему-то наподобие 192.168.7.1

Создание и настройка файлов конфигурации OpenVPN

Конфигурация основывается на файлах типовой конфигурации, которые находятся в C:\Program Files\OpenVPN\sample-config.

Настройка конфигурации сервера

Копируете файл server.ovpn из папки sample-config в папку config. Открываете и редактируете его

Обратите внимание на двойные слеши

  1. Найдите строку, которая начинается на ca и укажите путь к своему ca файлу. В моем случае это ca «C:\\Program Files\\OpenVPN\\config\\ca.crt».
  2. Найдите cert и отредактируйте соответственно, в моем случае это cert «C:\\Program Files\\OpenVPN\\config\\abuzov-name.crt».
  3. По аналогии с key — key «C:\\Program Files\\OpenVPN\\config\\abuzov-name.key».
  4. Аналогично с dh — dh «C:\\Program Files\\OpenVPN\\config\\dh2048.pem»
  5. Аналогично tls-auth — «C:\\Program Files\\OpenVPN\\config\\ta.key».

Я приведу полный код конфигурации сервера, на всякий случай, что бы его можно было просто скопировать. Так как знаю что такое первая настройка OpenVPN.

mode server
port 1194
dev tap
proto tcp-server
tls-server
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 0
duplicate-cn
auth MD5
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\abuzov-name.crt"
key "C:\\Program Files\\OpenVPN\\config\\abuzov-name.key" # This file should be kept secret
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
server 10.10.10.0 255.255.255.0
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
route-delay 10
route-method exe
route 10.10.10.0 255.255.255.0
route 192.168.0.0 255.255.0.0
route-gateway 10.10.10.1

Сохраните файл конфигурации сервера.

Запустите OpenVPN от имени администратора (и сразу сделайте так, что бы он всегда запускался от имени администратора).

После этого подключитесь к северу как показано на рисунке.

Настройка конфигурации клиента

Копируете файл client.ovpn из папки sample-config в папку config. Открываете и редактируете его аналогии. В моем случае это:

  1. ca «C:\\Program Files\\OpenVPN\\config\\ca.crt»
  2. cert «C:\\Program Files\\OpenVPN\\config\\ClientVPN1.crt»
  3. key «C:\\Program Files\\OpenVPN\\config\\ClientVPN1.key»
  4. remote IP_адрес_сервера

Опять, лучше приведу полный код.

remote IP-адрес-вашего-сервера
client
port 1194
dev tap
proto tcp-client
tls-client
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1
remote-cert-tls server
route-delay 2
auth MD5
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca ca.crt
cert ClientVPN.crt
key ClientVPN.key
pull
cipher AES-128-CBC
comp-lzo
persist-key
persist-tun
verb 3
route-method exe
route-delay 3

Единственное что нужно сделать — указать IP-адрес сервера.

Далее подключаем клиент OpenVPN.

Если клиент не подключается к серверу, тогда нужно на сервере необходимо запустить regedit.exe, затем перейти по адресу: «Компьютер\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters» и изменить IPEnableRouter на 1. После чего перезагрузить сервер и подключиться к OpenVPN заново.

После этого можно подключаться по защищенному соединению.

Настройка OpenVPN сервера для второго примера

Подключаемся к нашему серверу, входим под рутом и скачиваем openvpn:

aptitude install openvpn openssl

После установки копируем скрипты в папку программы:

cp -r /usr/share/easy-rsa /etc/openvpn/

Далее переходим в папку /etc/openvpn/easy-rsa и открываем файл vars текстовым редактором. Здесь нас интересуют следующие опции:

export KEY_SIZE=1024

export KEY_COUNTRY="RU"

export KEY_PROVINCE="CA"

export KEY_CITY="Moscow"

export KEY_ORG="barnak VPN"

export KEY_EMAIL="test"

export KEY_OU="test"

Соответственно что делать с этими полями вы уже знаете :)

export KEY_SIZE=1024 — длина ключа. Можно указать 2048, но особого смысла в этом не будет, только VPN медленнее станет работать.

Теперь эти переменные надо инициировать:

source ./vars

Мы получим предупреждение, что при запуске скрипта clean-all оно удалит все содержимое папки с ключами (а это папка с программой). Но нам ничего чистить не нужно, так что не обращаем внимания.

Теперь создаем сертификат УЦ:

./build-ca

После этого ключи DH:

./build-dh

Сертификат и ключи сервера:

./build-key-server debian-srv

И клиента:

./build-key client

Теперь создаем файл конфигурации сервера:

vim.tiny /etc/openvpn/server.conf

Добавляем туда следующее:

port 1194

proto tcp

dev tun

ca ca.crt

cert debian-srv.crt

key debian-srv.key

dh dh1024.pem

server 10.10.20.0 255.255.255.0

keepalive 10 120

cipher AES-128-CBC # AES

comp-lzo

max-clients 10

persist-key

persist-tun

client-to-client

status openvpn-status.log

log /var/log/openvpn.log

verb 4

mute 20

sndbuf 0

rcvbuf 0

push "route 10.10.20.0 255.255.255.0"

push "redirect-gateway def1"

Из новых настроек здесь следующие:

  • persist-key, — позволяет избежать некоторых проблем с доступностью при понижении прав (только для Linux);
  • persist-tun, — аналогично;
  • client-to-client, — позволяет клиентам видеть друг друга. Без этой опции клиенты смогут видеть только сервер и его ресурсы, но не других клиентов (аналог AP Isolation);
  • log /var/log/openvpn.log, — где будет храниться журнал событий openvpn;
  • push «redirect-gateway def1», — добавляет клиентам маршрут к VPN серверу, чтобы весь трафик ходил через него.

Теперь, чтобы мы все-таки могли открывать сайты, будучи подключенным к VPN, надо на сервере прописать правило NAT:

iptables -t nat -A POSTROUTING -s 10.10.20.0/24 -o eth0 -j MASQUERADE

Где 10.10.20.0/24 — ваша виртуальная VPN подсеть.

Сохраняем правило NAT в файл:

iptables-save > /etc/network/iptables.conf

Теперь открываем текстовым редактором настройки сетевых интерфейсов:

vim.tiny /etc/network/interfaces

И добавляем к интерфейсу eth0 (или какой вы используете) строчку для автозагрузки правила:

post-up /sbin/iptables-restore < /etc/network/iptables.conf

Вот как это выглядит у меня:

Это нужно для того, чтобы при перезагрузке сервера правила NAT не удалилось.

И последний штрих. нужно включить IP Forwarding. Без этого скорее всего ваш NAT не заработает. Открываем текстовым редактором файл  /etc/sysctl.conf, находим строчку net.ipv4.ip_forward=1, раскомментируем ее (либо выставляем 1) и применяем командой:

sysctl -p

Теперь можно запускать OpenVPN. делается это довольно просто командой:

openvpn server.conf

Теперь сервер настроен и переходим к клиенту.

3 ответа

По умолчанию в большинстве дистрибутивов выход журнала OpenVPN поступает в syslog, который обычно находится в /var/log/syslog

Однако ваши конфигурационные файлы могут явно определять местоположение файла журнала, например:

Это работает как для клиентов, так и для серверов OpenVPN. Файлы конфигурации OpenVPN обычно расположены в /etc/openvpn и обычно называются *.conf. server.conf является каноническим; имена файлов конфигурации клиента обычно похожи на <client name/>.conf.

ответ дан
24 May 2018 в 23:58

Расположение файла журнала

На серверах OpenVPN обычно запускается как системная служба, то есть запускается с опцией —daemon. Согласно man-странице OpenVPN, использование опции —daemon имеет следующий эффект:

Стань демоном после завершения всех функций инициализации. Эта опция приведет к отправке всех сообщений и ошибок в файл syslog (например, /var/log/messages), за исключением вывода скриптов и команд ifconfig, которые будут отправляться в /dev/null, если иное не перенаправлено. Перенаправление syslog происходит немедленно в точке, в которой —daemon анализируется в командной строке, даже если точка демонанизации происходит позже. Если присутствует одна из опций —log, она будет перенаправлена ​​(sic) syslog.

Используйте любой из параметров —log file или —log-append file, если вы хотите, чтобы сообщения OpenVPN регистрировались в другом файле. Опция —log заставляет указанный файл журнала переписываться каждый раз, когда демон OpenVPN запускается, а опция —log-append добавляет новые записи в файл журнала. Эти параметры также могут быть установлены в файле конфигурации OpenVPN, например

Verbosity

Опцию —verb можно использовать для установки многословности файла журнала из 0 (нет выход за исключением фатальных ошибок) до 11 (для максимальной информации об отладке). Страница man определяет уровни от 1 до 4 в качестве подходящего диапазона для нормального использования. Такое поведение можно задать в файле конфигурации OpenVPN, например,

ответ дан
24 May 2018 в 23:58

Настройка файлового хранилища на базе Debian

Подключаемся к Debian. Устанавливаем пакет Samba командой:

apt-get install samba

Создаем учетную запись для подключения к этому хранилищу командой:

smbpasswd -a "имя пользователя Linux"

Далее нас попросят ввести пароль для этого пользователя, что мы и делаем

При этом стоит обратить внимание, что пользователь должен уже существовать (в первом случае он мне не дал создать пользователя, т.к. тот не существовал):

Создаем папку, которая и будет выступать нашей общей директорией:

mkdir /home/user/testshare

После чего настраиваем Самбу. Открываем файл конфигурации любым текстовым редактором:

vim.tiny /etc/samba/smb.conf

Прокручиваем в самый низ и добавляем следующие строки:

 path = /home/user/testshare
 available = yes
 valid users = user
 read only = no
 browsable = yes
 public = yes
 writable = yes

..где:

  • , — название общей директории, которое будет отображаться в Windows;
  • path, — пусть до общей папки;
  • valid users, — кто может подключаться к этой папке.

Ну и всякие настройки доступа, которые нам сейчас не интересны.

После этого перезапускаем сервис:

service samba restart

Если не помогло, то можно перезагрузиться (что тоже очень быстро).

Скриптинг

up < command >— выполнить команду после запуска устройства TUN/TAP. Пример:
up script-up.shup-delay < seconds > — подождать n-секунд перед запуском команды указанной в up. Пример:
up-delay 5down < command > — выполнить команду когда интерфейс TUN/TAP выключится. Пример:
down script-down.shdown-pre — выполнить команду, указанную в down перед выключением интерфейса TUN/TAPup-restart < command > — выполнить команду после каждого реконнектаroute-up < command > — выполнить команду после установки сетевых маршрутов. Пример:
route-up script.shlearn-address < command > — выполнить указанную команду, если ip удаленной стороны изменился.ipchange < command > — выполнить команду, если ip сервера изменился.client-connect < command > — выполнить команду, когда клиент подключился.client-disconnect < command > — выполнить команду, когда клиент отключился.

Мониторинг openvpn подключений в zabbix

На сервере zabbix никакой особой настройки для мониторинга openvpn подключений делать не надо. Достаточно просто импортировать готовый шаблон. Вы можете его взять на гитхабе, либо скачать у меня. Насколько я помню, не менял в нем ничего. Но это не 100%. В любом случае, если изменения и есть, то косметические. Например, интервалы обновления, либо перевод названий.

Скачать шаблон для openvpn подключений

После добавления шаблона, прикрепите его к хосту с openvpn сервером, где ранее настроили zabbix-agent. После этого данные начнут поступать на сервер мониторинга. Проверить это, как обычно, можно в Latest data.

После подключения какого-нибудь пользователя, вы получите уведомление и увидите информацию об этом на дашборде.

Если вам это не нужно, то отключите в шаблоне триггер. Если сам триггер все же нужен, но не нужны уведомления о подключениях пользователей, отключите уведомления по триггеру в общем правиле по отправке оповещений, если оно используется.

В общем, кастомизируйте данный шаблон на свой вкус. На этом по самой настройке мониторинга за openvpn пользователями на сервере zabbix все.

Как работает OpenVPN

Что бы создать защищенный канал используется библиотека OpenSSL. Весь набор шифров доступный в библиотеке используется в системе.

Система предлагает пользователю несколько способов аутентификации:

  • Аутентификация с помощью предустановленного ключа – наиболее простой метод.
  • Серверная аутентификация – более сложный, но при этом более гибкий в настройках метод.
  • При помощи ввода логина и пароля. Может использоваться без создания сертификата клиента, при этом сертификат сервера все равно необходим.

Давайте разберемся на примере. Я настрою OpenVPN на двух компьютерах под управлением Windows 10. Они будут находиться в одной локальной сети. Так как для настроек через интернет необходим хотя бы один статический IP-адрес.

На этом примере мы разберемся, как создавать ключи и сертификаты безопасности, а так же научимся настраивать конфигурационный файл VPN-сервера и VPN-клиента.

Устанавливает пакет network-manager-openvpn

И так, приступим, сначала разберемся как осуществить подключение к протоколу OpenVPN в оболочке рабочего стола Gnome 3 используя скаченные файла .ovpn. Для начала необходимо установить пакет “network-manager-openvpn-gnome”, и начнем с Debian. Соответственно, этот же пакет устанавливаем и в Ubuntu, а так же в их ответвлениях, таких как Pop!_OS, а затем установим этот же пакет в дистрибутиве Manjaro. Отмечу, что данный пакет необходим именно в Gnome, так как в той же KDE ставится другой пакет:

Debian/Ubuntu GNOME 3

KDE

Для установке VPN соединения с окружением рабочего стола KDE необходимо поставить пакет network-manager-openvpn:

Manjaro

Для возможности подключения к VPN в Manjaro необходимо установить пакет networkmanager-openvpn

И в случае необходимости, да и на всякий случай перезагружаем networkmanager командой:

Устанавливает VPN соединение в GNOME 3

Переходим к настройке VPN соединения в оболочке рабочего стола Gnome 3, идем в настройки сети, запускаем “Параметры” и переходим во вкладку “Сеть”:

Чуть выше вкладки “VPN” нажимаем на крестик и в открывшемся окне нас интересует пункт “Импортировать из файла”:

В открывшемся окне переходим в директорию в которой лежит скачанный файл .ovpn и открываем его нажав на соответственную кнопку:

Теперь осталось указать регистрационные данные, то есть логин и пароль которые были вам предоставлены поставщиком VPN соединения в соответствующих полях и нажимаем “Добавить”:

После заполнения регистрационных данных и нажатия на кнопку “Добавить”, необходимо активировать VPN передвинув ползунок:

Тем самым вы активируете VPN соединения, в верхней панели возле значка сети у вас должен появиться замок, означающий, что соединения с VPN у вас активировалось удачно и вы перешли на зашифрованный трафик:

Схема сети для первого VPN-примера

У нас сеть домашний компьютер на Windows 10 x64, на нем развернута виртуалка на Debian 8, которая будет использоваться в качестве файлового хранилища, и рабочий ноутбук на Windows 10. Мы хотим с рабочего ноутбука подключиться к домашнему компьютеру и иметь доступ ко всем локальным ресурсам домашней сети.

На маршрутизаторе мы имеем внешний адрес 87.215.46.32, внутренний адрес 192.168.1.1. на домашнем компе мы имеем внутренний адрес 192.168.1.2, а также 192.168.94.2 для подсети VMWare. На виртуальном компе мы имеем адрес 192.168.94.110 и именно этот адрес нам понадобится для удаленного доступа к серверу. В качестве VPN подсети я выбрал 10.10.20.0 с префиксом /24 (маска 255.255.255.0):

Теперь давайте приступим к настройке.

Настройка выхода в интернет с IP сервера

Если ваши цели были — только организовать VPN сеть или соединится с изолированной сетью (например из дома с локальной сетью на работе), то эта часть статьи вам не нужна.

Настройки сервера

Если же вы хотите организовать доступ из VPN сети в интернет с IP адреса сервера, то вам нужно настроить на сервере NAT.
Сделать это можно следующей командой (на сервере):

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Здесь мы указали, что сеть 10.8.0.0/24 будет выходить наружу через интерфейс eth0.

Для того что бы настройки iptables сохранились после перезагрузки нужно их дополнительно сохранить:

iptables-save > /etc/iptables.up.rules
echo "pre-up iptables-restore < /etc/iptables.up.rules" >> /etc/network/interfaces
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: