Я создаю сервер freeradius для аутентификации.
У меня проблема с policy.conf
:
policy.conf
был загружен в radius.conf
как $INCLUDE policy.conf
, но содержимое этого файла не работало.
Я проверил вход в систему с «тестовым» пользователем, но он не отклонился. Может ли кто-нибудь помочь мне в этом, большое спасибо.
policy {
#
# Forbid all EAP types.
#
if (User-Name == 'test'){
reject
}
forbid_eap {
if (EAP-Message) {
reject
}
}
#
# Forbid all non-EAP types outside of an EAP tunnel.
#
permit_only_eap {
if (!EAP-Message) {
# We MAY be inside of a TTLS tunnel.
# PEAP and EAP-FAST require EAP inside of
# the tunnel, so this check is OK.
# If so, then there MUST be an outer EAP message.
if (!"%{outer.request:EAP-Message}") {
reject
}
}
}
#
# Forbid all attempts to login via realms.
#
deny_realms {
if (User-Name =~ /@|\/) {
reject
}
}
}
Сначала вам нужно дать вашей политике имя (как и другим политикам в разделе политики).
policy {
reject_test {
if (User-Name == 'test'){
reject
}
}
}
Затем вам нужно указать политику в одном из разделов (authorize
, authenticate
, post-auth
и т. д.) одного из виртуальных серверов.
См. страница понятий в вики FreeRADIUS для получения некоторых основных сведений о том, какие разделы запускаются и где.
Если вы используете стандартную конфигурацию, вам, вероятно, потребуется отредактировать raddb/sites-available/default
.
В этом случае вы, вероятно, захотите добавить свою политику в authorize section
.
authorize {
reject_test
...
}
На самом деле вам не нужно определять политики, чтобы использовать язык политики, вы можете вставить свое условие непосредственно в раздел авторизации.
authorize {
if (User-Name == 'test'){
reject
}
}
Пожалуйста, опубликуйте свой стек ошибок.