VPN на FortiGate попадает не в ту группу: сопоставление RADIUS
Fortinet-Group-Name сравнивается с ответом, а не с локальной меткой группы. Проверьте три имени, прежде чем расширять сопоставление до Any.
Вход проходит успешно, туннель поднимается, а пользователь попадает в неверную политику или вообще ни в одну. В журнале FortiGate ничто не сообщает об отсутствии группы, потому что с его стороны аутентификация сработала, а сопоставление группы просто не запустилось. Цепочка, которую нужно проверить, содержит три отдельных имени, и обычно это не одна и та же строка.
Три имени с тремя задачами
Запишите все три, прежде чем трогать любую конфигурацию, потому что два из них живут в разных системах.
| Record | Illustrative value |
|---|---|
| Directory membership checked by the RADIUS policy | Engineering VPN users |
| Returned Fortinet-Group-Name string | vpn-engineering |
| FortiGate local access group | VPN-Engineering |
Группа каталога — это то, что оценивает ваша политика RADIUS. Возвращаемый атрибут — это значение внутри ответа Access-Accept. Локальная группа FortiGate — это контейнер, на который политика ссылается по имени. Путаница любых двух из них даёт вход, который работает, и авторизацию, которая не работает.
Где на самом деле выполняется сопоставление
В своём объяснении сопоставления групп RADIUS Fortinet указывает Fortinet-Group-Name как атрибут группы по умолчанию. FortiGate сравнивает настроенный удалённый сервер и значение имени группы с тем, что несёт ответ, то есть сравнение идёт с возвращённой строкой, а не с отображаемой меткой вашей локальной группы.
Именно поэтому локальная группа с именем VPN-Engineering может стоять рядом с возвращённым значением vpn-engineering и не совпадать ни с чем. Регистр и написание в этом сравнении не косметика. Выберите одну строку, используйте её в ответе и ссылайтесь на ту же строку в правиле сопоставления шлюза.
На FortiAuthenticator группу нужно связать с атрибутом и включить в соответствующую политику службы RADIUS, включив управление возвратом атрибута группы там, где это применимо.
Ответ может быть успешным и без атрибута
Для NPS или другого сервера RADIUS задайте в политике условие группы каталога, а затем настройте поддерживаемый атрибут ответа. Успешная проверка пароля сама по себе создаёт Access-Accept, и Access-Accept без строки группы — совершенно допустимый ответ, который на стороне FortiGate ничего не авторизует. Это самая распространённая форма проблемы.
Определить группу — не то же самое, что отправить её. Это два шага настройки на двух разных экранах, и обычно выполняется только один из них.
Почему сопоставление с Any — ловушка
Сопоставление с удалённой группой Any — законный дизайн, когда сервер RADIUS уже допускает ровно ту совокупность, которая вам нужна. Выбирайте это делегирование осознанно. Расширение сопоставления, чтобы избавиться от отсутствующего атрибута, пропускает любую учётную запись, которую сервер RADIUS случайно примет, включая те, которым доступ к VPN никогда не предполагался. Симптом исчезает, и контроль доступа тихо перестаёт существовать.
Если вы не можете назвать, кого сервер RADIUS должен допускать, вы не готовы к сопоставлению с Any.
Храните четыре записи для поддержки
Когда всё ещё не работает, соберите четыре вещи: выбранную политику RADIUS, фактически возвращённый атрибут группы, сервер FortiGate и значение, с которым его сравнивали, и полученную локальную группу. Эти четыре записи определяют место сбоя, не раскрывая пароли и не меняя членство в группах, чтобы увидеть, что произойдёт.
Проверьте одну разрешённую и одну вне области учётную запись по реальному правилу и проверьте получившуюся политику и доступ к ресурсам, а также результат аутентификации. Только эта пара скажет, делает ли сопоставление то, что вы думаете.