Создавая службу VPN с strongSwan, мне нужно различать несколько групп пользователей, где каждой группе назначена определенная подсеть с определенными разрешениями (например, «группа x» имеет доступ только к определенной части локальной подсети, например 192.168.10.10/32).
Официальная вики strongSwan разрешает только так называемый «выбор группы» с RADIUS-сервер.
Теперь, согласно Wiki, есть две возможности получить информацию о членстве в группе: либо путем чтения и интерпретации атрибута class , отправленного в ответе RADIUS-Accept, либо путем интерпретации ] Атрибут Filter-Id . В статье не выделять (недостатки) преимущества того или иного метода.
Хотя мне казалось, что использование RADIUS-сервера, такого как FreeRADIUS, было немного излишним - я бы предпочел решение, предоставляемое strongSwan, некоторые плагины и т. Д. - я установил и настроил FreeRadius, и вот где я застрял.
Я придерживался первого метода (используя атрибут class для отправки обратно информации о членстве в группе).
В файле конфигурации для модуля rlm_files ( freeradius / 3.0 / mods_config / files / authorize
) Я настроил Боба:
#
# The canonical testing user which is in most of the
# examples.
#
bob Cleartext-Password := "hello"
Reply-Message := "Hello, %{User-Name}"
# Class := "myclass"
Аутентификация работает без проблем, единственное, чего не хватает, - это атрибут class . На этой странице перечислены все доступные атрибуты FreeRADIUS . Я поискал атрибут Class и попытался установить значение (см. Выше), которое демон не смог прочитать.
В файле также четко указано
Строки с отступом (с символом табуляции), следующие за первый строка указывает значения конфигурации, которые должны быть переданы обратно в коммуникационный сервер, чтобы разрешить инициирование пользовательского сеанса. Это может включать такие вещи, как значения конфигурации PPP или хост, на котором будет регистрироваться пользователь.
Поиск в сети, этот пост на serverfault , похоже, использует аналогичный подход, но с другим сервером LDAP. До сих пор не было необходимости в сервере LDAP, и это означало бы, что нужно полагаться на другую зависимость или другую службу.
Я также не могу использовать пароли в открытом виде (как это делает Боб), вместо этого я предпочитаю аутентификацию на основе сертификатов.
Как правильно настроить FreeRADIUS (и, если необходимо, любые другие зависимости) для групповые политики? Какие у меня есть возможности?
Вы пропускаете запятую в конце Reply-Message
строка.
Посмотрите примеры в эти пользовательская страница справочника .
файла