
Я следил за этимДокумент OpenVPN, и мне удалось включить функцию фильтрации MAC-адресов. Как добавить несколько MAC-адресов для одного пользователя в базу данных?
Пример команды, которую я бы использовал для замены зарегистрированного MAC-адреса:
# ./sacli -u "exampleuser" -k "pvt_hw_addr" -v "00:01:02:ab:cd:12" UserPropPut
решение1
Читая скрипт, который выполняет проверку MAC, в его текущем состоянии это, похоже, невозможно сделать. Однако, для включения этого поведения потребуется лишь небольшая модификация, поскольку на самом деле скрипт просто считывает значение и сравнивает с ним локальный MAC:
if hw_addr:
hw_addr_save = proplist.get('pvt_hw_addr') # saved MAC addr property
if hw_addr_save:
if hw_addr_save != hw_addr:
error = "The hardware MAC address reported by this VPN client does not match the registered MAC address."
Вы можете просто сохранить список, разделенный запятыми, в этом свойстве и изменить эту часть скрипта, чтобы разделить сохраненное pvt_hw_addr
свойство на список, и проверить, содержится ли в нем локальный MAC-адрес.
При этом OpenVPN разработан для поддержки аутентификации на основе сертификатов, что хорошо справляется с аутентификацией оборудования. MAC-адреса легко подделываются, так что это может не стоить усилий.
решение2
cd /usr/local/openvpn_as/scripts
#./sacli -u "примерпользователя" -k "pvt_hw_addr2" -v "ef:cd:ba:03:02:01" UserPropPut