Рейтинг:0

OpenVPN добавляет статический IP для клиента динамически на основе скрипта

флаг cn

В моей логике VPN все мои клиентские сертификаты имеют следующий шаблон CN:

номер.mycompany.com где число между 2-65536

Для каждого CN я добавляю файл конфигурации, который выглядит так:

$ кошка 65501.mycompany.com
ifconfig-push 10.22.255.221 255.255.0.0

Таким образом, в основном на основе области номера CN я настраиваю статический IP-адрес в соответствующем файле, преобразование из числа в логику ip:

$ python3 -c "print('10.22.{}.{}'.format(*divmod(65501, 256)))"
10.22.255.221

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

Рейтинг:0
флаг cn

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

Я добавил следующую строку конфигурации в свой server.conf файл:

клиент-подключение /etc/openvpn/client_set_static_ip.sh

и содержимое файла представляет собой следующий сценарий bash:

#!/usr/bin/env bash

DYNAMIC_GENERATED_CONFIG_PATH=$1

функция get_client_num() {
  # возвращает номер клиента из переменной env `common_name`
  местный cn_arr=(${common_name//./ })
  местный cn_arr_first=${cn_arr[0]}
  эхо "${cn_arr_first}"
}

функция generate_client_ip() {
  # возвращает сгенерированный IP-адрес удаленного клиента из переменной env `ifconfig_pool_remote_ip` и client_num
  локальный ifconfig_remote_arr=(${ifconfig_pool_remote_ip//./ })

  локальный client_num=$(get_client_num)
  локальный remote_ip_octet_1=${ifconfig_remote_arr[0]}
  локальный remote_ip_octet_2=${ifconfig_remote_arr[1]}
  локальный remote_ip_octet_3=$((client_num/256))
  локальный remote_ip_octet_4=$((client_num%256))

  echo "${remote_ip_octet_1}.${remote_ip_octet_2}.${remote_ip_octet_3}.${remote_ip_octet_4}"
}

  remote_ip=$(generate_client_ip)
  echo "ifconfig-push ${remote_ip} 255.255.0.0" > "${DYNAMIC_GENERATED_CONFIG_PATH}"

Ответить или комментировать

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