Both sides previous revisionPrevious revisionNext revision | Previous revision |
настройка_атрибутов_на_основе_ldap_ad_групп [2022/11/08 14:54] – jp | настройка_атрибутов_на_основе_ldap_ad_групп [2024/11/01 10:29] (current) – jp |
---|
===== Настройка атрибутов на основе LDAP (Active Directory) групп ===== | ===== Настройка атрибутов на основе LDAP (Active Directory) групп ===== |
| |
На основе принадлежности пользователей к определенным группам AD - удобно раздавать сетевые правила доступа. При этом, в роли NPS Windows Server - решить данную задачу гибко не получится. Политики NPS работают по принципу //"first match"//, т.е. мы не сможем суммировать правила для пользователя, состоящего в нескольких разных группах одновременно, ведь сработает только первое совпадение по группам. | На основе принадлежности пользователей к определенным группам AD - удобно раздавать сетевые рулсеты. При этом, в роли NPS Windows Server - решить данную задачу гибко не получится. Дело в том, что политики NPS работают по принципу //"first match"//, т.е. мы не сможем суммировать правила для пользователя, состоящего в нескольких разных группах одновременно, ведь сработает только первое совпадение по группам с первым списком доступа в соответствующей политике. |
| |
Настройка LDAP во freeradius позволяет решить эту проблему достаточно гибко и безопасно. Для этого в данном примере мы будем использовать LDAPS и учётную запись с ограниченными правами в домене AD. | Настройка LDAP во **freeradius** позволяет решить эту проблему достаточно гибко (здесь возможно суммирование рулсетов) и безопасно. Для повышения безопасности данном примере мы будем использовать LDAPS и учётную запись с ограниченными правами в домене AD. |
| |
1. Устанавливаем модуль freeradius для работы с LDAP. | 1. Устанавливаем модуль freeradius для работы с LDAP. |
| |
ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/ldap | ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/ldap |
3. Дальнейшую конфигурацию мы будем производить в файле ///etc/freeradius/3.0/mods-enabled/ldap//. | 3. Дальнейшую конфигурацию (вплоть до п.18) мы будем производить в файле ///etc/freeradius/3.0/mods-enabled/ldap//. |
| |
4. Пропишем адрес контроллера домена следующим образом: | 4. Пропишем адрес контроллера домена следующим образом: |
:!: Здесь можно указать адреса и других контроллеров домена, перечислив в отдельной секции server: | :!: Здесь можно указать адреса и других контроллеров домена, перечислив в отдельной секции server: |
server = 'ldaps://dc02.arasaka.local:636' | server = 'ldaps://dc02.arasaka.local:636' |
:!: Опцию //port// конфига исплользовать не нужно, т.к. он указан явно в опции //server//. | :!: Опцию //port// конфига исплользовать не нужно, т.к. он указан явно в опции //server//. Закомментируем её, если она записана в конфиге. |
| |
5. Настроим учётную запись, под которой будем подключаться к контроллеру домена. | 5. Настроим учётную запись, под которой будем подключаться к контроллеру домена. |
identity = 'CN=vpn radius,OU=RADIUS,DC=arasaka,DC=local' | identity = 'CN=vpn radius,OU=RADIUS,DC=arasaka,DC=local' |
password = mypassword | password = mypassword |
| |
| :!: Здесь будет достаточно учётной записи, обладающей правами обычного пользователя домена.\\ |
:!: Важно: имя учётной записи (vpn radius) - это не логин пользователя в AD, а его CN, который можно посмотреть в свойствах учётной записи на вкладке //Attribute Editor//. | :!: Важно: имя учётной записи (vpn radius) - это не логин пользователя в AD, а его CN, который можно посмотреть в свойствах учётной записи на вкладке //Attribute Editor//. |
| |
| ;#; |
{{::radius_ad_user_ldap.jpg?direct&400|}} | {{::radius_ad_user_ldap.jpg?direct&400|}} |
| ;#; |
| |
6. Настроим базовое пространство домена, откуда будет производиться дальнейший поиск: | 6. Настроим базовое пространство домена, откуда будет производиться дальнейший поиск: |
| |
base_dn = 'CN=RADIUS,DC=office,DC=arasaka,DC=local' | base_dn = 'CN=RADIUS,DC=office,DC=arasaka,DC=local' |
9. В этой же секции поменяем аттрибут группы на //group// вместо юниксового posixGroup. | 9. В этой же секции поменяем аттрибут группы на ''group'' вместо юниксового ''posixGroup''. |
| |
filter = '(objectClass=group)' | filter = '(objectClass=group)' |
chase_referrals = yes | chase_referrals = yes |
rebind = yes | rebind = yes |
16. В секции //tls// отключаем starttls, т.к. он нужен только в случае использования tls поверх 389 порта, что в нашем случае не релевантно, поскольку мы используем SSL по 636. | 16. В секции //tls// отключаем //starttls//, т.к. он нужен только в случае использования tls поверх 389 порта, что в нашем случае не релевантно, поскольку мы используем SSL по 636. |
| |
start_tls = no | start_tls = no |
:!: В папку /etc/freeradius/3.0/certs необходимо залить сертификат УЦ, а также сертификаты контроллером домена в pem-формате. | :!: В папку /etc/freeradius/3.0/certs необходимо залить сертификат УЦ, а также сертификаты контроллером домена в pem-формате. |
| |
:!: Выгрузить сертификаты в pem-формате можно следующим образом: из хранилища сертификатов сделать экспорт, при экспорте выбрать //Base-64 encoded X.509 (.CER)//. После выгрузки можно просто переименовать сертиификат в pem. | :!: Выгрузить сертификаты в pem-формате можно следующим образом: из хранилища сертификатов Windows сделать экспорт, при экспорте выбрать //"Base-64 encoded X.509 (.CER)"//. После выгрузки можно просто переименовать расширение сертиификата в pem. |
| |
18. Теперь в файле /etc/freeradius/3.0/sites-enabled/default в секции post-auth можно писать правила, которые будут суммировать списки доступа на основании членства в группах (test-network, management-network и т.д.), используя аттрибут LDAP-Group: | 18. Теперь в файле ///etc/freeradius/3.0/sites-enabled/default// в секции //post-auth// можно писать правила, которые будут суммировать списки доступа на основании членства в группах (//"test-network"//, //"management-network"// и т.д.), используя аттрибут **LDAP-Group**: |
| |
<code> | <code> |
В pfSense проверить проверить добавление правил можно использовав пункт меню status->openvpn. Кликнув на информацию о сеансе - можно увидеть правла, если всё сделано верно. | В pfSense проверить проверить добавление правил можно использовав пункт меню status->openvpn. Кликнув на информацию о сеансе - можно увидеть правла, если всё сделано верно. |
| |
| ;#; |
{{::pf_sense_radius_rules_ovpn.jpg?direct&400|}} | {{::pf_sense_radius_rules_ovpn.jpg?direct&400|}} |
| ;#; |
| |
{{tag>Debian Linux freeradius NPS LDAP}} | {{tag>Debian Linux freeradius NPS LDAP pfSense ActiveDirectory}} |