При создании службы VPN с помощью strongSwan мне нужно различать несколько групп пользователей, где каждой группе назначена определенная подсеть с определенными разрешениями (например, «группа x» имеет доступ только к определенной части локальной подсети, например 192.168.10.10/ 32).
Официальная вики strongSwan допускает только так называемый «групповой выбор». с RADIUS-сервером.
Теперь, согласно Wiki, есть две возможности получить информацию о членстве в группе; либо путем чтения и интерпретации класс атрибут, отправленный в ответе RADIUS-Accept или интерпретируя Filter-Id атрибут. В статье не освещаются (недостатки) преимущества того или иного метода.
Хотя мне казалось, что использование RADIUS-сервера, такого как FreeRADIUS, было немного излишним - я бы предпочел решение, предоставляемое strongSwan, некоторыми плагинами и т. Д. - я установил и настроил FreeRadius, и вот где я застрял.
Я остановился на первом методе (используя класс атрибут для отправки обратно информации о членстве в группе).
В конфигурационном файле для модуля 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"
Аутентификация работает без проблем, единственное, чего не хватает, это класс атрибут. На этой странице перечислены все доступные атрибуты FreeRADIUS.. Я искал Класс атрибут и попытался установить значение (см. выше), которое демон не смог прочитать.
В файле также четко сказано
Строки с отступом (с символом табуляции), следующие за первой строкой, указывают значения конфигурации, которые должны быть переданы обратно на коммуникационный сервер, чтобы позволить инициировать сеанс пользователя. Это может включать в себя такие вещи, как значения конфигурации PPP или хост, на котором будет регистрироваться пользователь.
Ищу в сети, этот пост на serverfault похоже, использует аналогичный подход, но с другим сервером LDAP. До сих пор не было необходимости в сервере LDAP, и это означало бы, что нужно полагаться на другую зависимость или другую службу.
Я также не могу использовать пароли в открытом виде (как это делает Боб), вместо этого я бы предпочел аутентификацию на основе сертификатов.
Как правильно настроить FreeRADIUS (и, если необходимо, любые другие зависимости) для групповых политик? Какие у меня есть возможности?
Вам не хватает запятой в конце Reply-Message
линия.
См. Примеры в страница руководства по файлам пользователей.