Настройка Freeradius для работы с Microsoft Active Directory

Thank you for reading this post, don't forget to subscribe!

Ино­гда для удоб­ства орга­ни­за­ции досту­па к сети, удоб­но исполь­зо­вать цен­тра­ли­зо­ван­ную схе­му аутен­ти­фи­ка­ции на осно­ве про­то­ко­ла Radius. В этой ста­тье мы рас­смот­рим настрой­ку сер­ве­ра Freeradius для рабо­ты с доме­ном Active Directory, для орга­ни­за­ции досту­па к сети на осно­ва­нии учет­ных запи­сей домен­ных пользователей.

FreeRADIUS — RADIUS сер­вер с откры­тым исход­ным кодом.

Radius - сете­вой про­то­кол, пред­на­зна­чен­ный для обес­пе­че­ния цен­тра­ли­зо­ван­ной аутен­ти­фи­ка­ции, авто­ри­за­ции и учё­та (Authentication, Authorization, and Accounting, AAA) поль­зо­ва­те­лей, под­клю­ча­ю­щих­ся к раз­лич­ным сете­вым служ­бам. Исполь­зу­ет­ся, напри­мер, при аутен­ти­фи­ка­ции поль­зо­ва­те­лей WiFi, VPN

Настрой­ка сер­ве­ра Freeradius будем про­из­во­дить на сер­ве­ре CentOs7, в каче­стве кон­трол­ле­ра доме­на высту­па­ет маши­на Windows Server 2012R2 с име­нем test-dc, домен test.un.

Настройка сервера Centos

Отклю­че­ние Selinux

sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/" \ /etc/selinux/config

Ука­зы­ва­ем DNS сер­вер отве­ча­ю­щий за домен

cat /etc/resolv.conf

На фай­ер­во­ле раз­ре­ша­ем порт udp 1812

Уста­нав­ли­ва­ем необ­хо­ди­мые зависимости:

sudo yum install authconfig samba samba-winbind samba-client \ pam_krb5 krb5-workstation net-tools bind-utils samba-winbind-clients 

Запус­ка­ем интер­фейс для настрой­ки источ­ни­ков систем­ной аутентификации

sudo authconfig-tui

Запус­ка­ет­ся псев­до-гра­фи­че­ская обо­лоч­ка для настройки

На стра­ни­це "Кон­фи­гу­ра­ция аутен­ти­фи­ка­ции" выби­ра­ем "Инфор­ма­ция пользователя->Использовать Winbind", "Аутентификация->Использовать Kerberos"

Далее в меню "Настрой­ка Kerberos ука­зы­ва­ем область и сер­вер KDC"

"Настрой­ка Winbind" выби­ра­ем "Модель защиты"->ads, ука­зы­ва­ем домен (Netbios имя),контроллер доме­на, область и обо­лоч­ку по-умол­ча­нию в зави­си­мо­сти от необходимости

Запус­ка­ем демо­ны и добав­ля­ем их в автозагрузку

sudo systemctl start smb

sudo systemctl start nmb

sudo systemctl enable smb

sudo systemctl enable nmb

При­со­еди­ня­ем сер­вер к домену

sudo net ads join -U Administrator

Запус­ка­ем демон winbind

sudo systemctl start winbind

sudo systemctl enable winbind

Про­ве­ря­ем доступ к AD

wbinfo -u

Про­ве­ря­ем аутен­ти­фи­ка­цию ntlm

ntlm_auth --request-nt-key --domain=TEST.UN \
--username=Administrator --password=*

 

Установка и настройка Freeradius сервера

sudo yum install freeradius freeradius-krb5

Идем в файл /etc/raddb/mods-enabled/ntlm_auth про­пи­сы­ва­ем пра­виль­ные значения

cat /etc/raddb/mods-enabled/ntlm_auth

[codesyntax lang="php"]

[/codesyntax]

Пра­вим кон­фи­гу­ра­цию вир­ту­аль­ных серв­ров Freeradius

cat /etc/raddb/sites-enabled/default

[codesyntax lang="php"]

[/codesyntax]

cat /etc/raddb/sites-enabled/inner-tunnel

[codesyntax lang="php"]

[/codesyntax]

в файл /etc/raddb/users добав­ля­ем сле­ду­ю­щую секцию

Созда­ем кли­ен­та для Freeradius

cat /etc/raddb/clients.conf

[codesyntax lang="php"]

[/codesyntax]

Запус­кае Freeradius сер­вер в режи­ме Debug

radiusd -X

И про­ве­ря­ем аутен­ти­фи­ка­цию на Freeradius сер­ве­ре с дру­гой маши­ны для кото­рой был создан клиент

radtest radius "пароль" 172.20.1.210 1812 testing123

Аутен­ти­фи­ка­ция про­шла удачно.

Если вы хоте­ти огра­ни­чить аутен­ти­фи­ка­цию для поль­зо­ва­те­лей на осно­ва­нии при­над­леж­но­сти их к домен­ной груп­пе, то в фай­ле /etc/raddb/mods-enabled/ntlm_auth в стро­ке с ука­за­ни­ем клю­чей для коман­ды ntlm_auth добав­ля­ем сле­ду­ю­щую конструкцию