Назад | Перейти на главную страницу

freeradius передает текущий порт виртуального сервера модулю

Я пытаюсь использовать rlm_python для аутентификации клиента с моей серверной частью.

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

Итак, вопрос: Есть ли способ передать переменную модулю, чтобы сообщить текущий адрес порта виртуального сервера?

Например что-то вроде этого:

update control {
       Auth-Type := `/usr/bin/python /etc/test.py '%{User-Name}' '%{User-Password}' '#{virtual-server}'`
}

Вы можете использовать% {Packet-Dst-Port}, который будет расширяться до порта назначения в полученном пакете UDP.

Чтобы получить к нему доступ в модуле rlm_python, вам нужно сделать что-то вроде:

update request {
    Packet-Dst-Port := "%{Packet-Dst-Port}"
}
python

Сначала преобразовать его в настоящий атрибут.