Политика в freeradius не работает - PullRequest
0 голосов
/ 25 февраля 2019

Я создаю сервер freeradius для аутентификации.У меня проблема с policy.conf: policy.conf был загружен в radius.conf как $INCLUDE policy.conf, но содержимое этого файла не работало.

Я проверил по логину пользователя test, но он не отклонился.Может ли кто-нибудь помочь мне в этом, большое спасибо.

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
        }
    }
}

1 Ответ

0 голосов
/ 25 февраля 2019

Сначала вам нужно дать название своей политике (как и другим политикам в разделе политики).

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
    }
}
...