Как установить статический IP (на стороне клиента) в OpenVPN?

Я настраиваю сеть VPN с большим количеством маленьких устройств (использую OpenWRT В моем случае все устройства идентифицируются по номеру, и я хотел бы, чтобы их IP-адреса совпадали с их идентификаторами (например: номер устройства 6 будет иметь IP-адрес в XXX6).

Мне известны client-config-dir и ifconfig-push , но я не могу их использовать, потому что все мои устройства используют один и тот же сертификат ( duplicate-cn включен). Это требование, поскольку создание одного сертификата для каждого устройства будет слишком ограничивающим (кроме того, мы не хотим изменять конфигурацию VPN-сервера, если добавляем устройство в систему)

Можно ли установить IP адрес в файле конфигурации клиента? Я не нашел ничего в документации по этой конкретной теме ... И все, что я пробовал, не увенчалось успехом.

По сути, я имел в виду следующее:

  • Клиент Подключиться к серверу VPN и запрашивает конкретный адрес («дайте мне ip: 172.16.0.22»)
  • Если адрес уже занят, рукопожатие не удается. Если это бесплатно, клиенту дается адрес, который он запрашивал перед
7
задан 18 January 2017 в 11:42
3 ответа

Вы можете сделать это с помощью параметра конфигурации ifconfig-pool-persist . Вы можете предварительно настроить файл и установить секунд = 0 , чтобы OpenVPN читал только файл.

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

Из справочной страницы :

- файл ifconfig-pool-persist [секунды] Сохранять / удалять данные пула ifconfig в файл с интервалами в секундах (по умолчанию = 600), а также при запуске и завершении программы. Цель этой опции - обеспечить долгосрочную связь между клиентами (обозначенными их общим именем) и виртуальным IP-адресом, назначенным им из ifconfig-pool. Поддержание долгосрочной связи полезно для клиентов, поскольку позволяет им эффективно использовать параметр --persist-tun.

файл представляет собой ASCII-файл с разделителями-запятыми в формате,.

Если секунды = 0, файл будет рассматриваться как доступный только для чтения. Это полезно, если вы хотите рассматривать файл как файл конфигурации.

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

5
ответ дан 2 December 2019 в 23:25

У меня были проблемы с настройкой, например, @jas_raj. Сейчас делаю следующее:

1) В / etc / openvpn создаю новую папку. Например, « dir »

2) server.conf добавить строку « client-config-dir dir / »

3) Внутри «dir» необходимо создать новый файл с ** тем же именем, которое вы указали в своем сертификате **, и введите:

ifconfig-push IP MASK

Например: ifconfig-push 10.0.0.10 255.0.0.0

3
ответ дан 2 December 2019 в 23:25

Предположим, мы создаем корпоративную VPN и хотим установить отдельные политики доступа для 3 разных классов пользователей:

System administrators -- full access to all machines on the network
Employees -- access only to Samba/email server
Contractors -- access to a special server only

Основной подход, который мы примем, - это (а) разделение каждого пользовательский класс в свой собственный диапазон виртуальных IP-адресов и (б) контролировать доступ к машинам, задав правила брандмауэра, которые отключают виртуальный IP-адрес клиента.

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

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

Сначала давайте создадим карту виртуальных IP-адресов в соответствии с классом пользователя:

Class   Virtual IP Range    Allowed LAN Access  Common Names  

Employees   10.8.0.0/24     Samba/email server at 10.66.4.4     [variable]

Sys Admins  10.8.1.0/24     Entire 10.66.4.0/24 subnet  sysadmin1

Contractors 10.8.2.0/24     Contractor server at 10.66.4.12     contractor1, contractor2

Затем давайте переведем эту карту в конфигурацию сервера OpenVPN. Прежде всего, убедитесь, что вы выполнили описанные выше действия, чтобы сделать подсеть 10.66.4.0/24 доступной для всех клиентов (пока мы настроим маршрутизацию, чтобы разрешить клиентский доступ ко всей подсети 10.66.4.0/24, мы затем наложим ограничения доступа с использованием правил брандмауэра для реализации приведенной выше таблицы политик).

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

dev tun0

На сервере В файле конфигурации определите пул IP-адресов сотрудников:

server 10.8.0.0 255.255.255.0

Добавьте маршруты для диапазонов IP-адресов системного администратора и подрядчика:

route 10.8.1.0 255.255.255.0
route 10.8.2.0 255.255.255.0

Поскольку мы будем назначать фиксированные IP-адреса для определенных системных администраторов и подрядчиков, мы будем использовать каталог конфигурации клиента, ccd :

client-config-dir ccd

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

ccd / sysadmin1 файл:

    ifconfig-push 10.8.1.1 10.8.1.2

ccd / contractor1 файл:

    ifconfig-push 10.8.2.1 10.8.2.2

ccd / contr Актер2 файл:

    ifconfig-push 10.8.2.5 10.8.2.6

Каждая пара адресов ifconfig-push представляет конечные IP-точки виртуального клиента и сервера. Они должны быть взяты из последовательных подсетей / 30, чтобы быть совместимыми с клиентами Windows и драйвером TAP-Windows. В частности, последний октет IP-адреса каждой пары конечных точек должен быть взят из этого набора:

[  1,  2] [  5,  6] [  9, 10] [ 13, 14] [ 17, 18]
[ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
[ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
[101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138]
[141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178]
[181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218]
[221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]

Это завершает настройку OpenVPN. Последний шаг - добавить правила брандмауэра для завершения политики доступа.

Источник: https://openvpn.net/index.php/open-source/documentation/howto.html#policy

4
ответ дан 2 December 2019 в 23:25

Теги

Похожие вопросы