: :

ПнВтСрЧтПтСбВс

2018-02-05 10:23:45 15538 4

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

Иногда для удобства организации доступа к сети, удобно использовать централизованную схему аутентификации на основе протокола 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

# Generated by NetworkManager
search test.un
nameserver 172.20.1.78

На файерволе разрешаем порт 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"

Настройка Kerberos

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

Настройка Winbind

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

sudo systemctl start smb

sudo systemctl start nmb

sudo systemctl enable smb

sudo systemctl enable nmb

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

sudo net ads join -U Administrator

Enter Administrator"s password:
Using short domain name -- TEST
Joined "FREERADIUS" to dns domain "test.un"
No DNS domain configured for freeradius. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

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

sudo systemctl start winbind

sudo systemctl enable winbind

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

wbinfo -u

TEST\administrator
TEST\guest
TEST\krbtgt

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

ntlm_auth --request-nt-key --domain=TEST.UN \

--username=Administrator --password=*
NT_STATUS_OK: Success (0x0)

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

sudo yum install freeradius freeradius-krb5

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

cat /etc/raddb/mods-enabled/ntlm_auth

exec ntlm_auth {
        wait = yes
        program = "/usr/bin/ntlm_auth --request-nt-key --domain=TEST.UN 
        --username=%{mschap:User-Name} --password=%{User-Password}"
}

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

cat /etc/raddb/sites-enabled/default

authenticate {
        ...
        ntlm_auth
        ...
}

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

authenticate {
        ...
        ntlm_auth
        ...
}

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

DEFAULT     Auth-Type = ntlm_auth

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

cat /etc/raddb/clients.conf

client test {
        ipaddr = указываем ip-адрес клиента
        secret = testing123
        nas_type = other

}

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

radiusd -X

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

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

Sending Access-Request of id 20 to 172.20.1.210 port 1812
	User-Name = "radius"
	User-Password = "******"
	NAS-IP-Address = 127.0.1.1
	NAS-Port = 1812
	Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 172.20.1.210 port 1812, id=20, length=20

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

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

--require-membership-of="DOMAIN\GROUP_NAME"






Введите ответ:

+

=



Ikar

2023-04-13 15:33:12

Если бы все это расписать как делать на Debian


Alexeit

2021-12-02 15:37:56

Делал на centos 8 stream все кроме добавление домена так же. Добавлял напрямую настройкой smb.conf. Все остальное работает так же


Алексей

2021-06-09 14:23:26

На ubuntu 16.04.07 заработало только как: --require-membership-of=''S-1-5-21-682003330-813497703-1343024091-27712''


radtest

2019-08-27 14:55:37

centos 6 надо добавить для появления radtest yum install the freeradius-utils на centos 7 повторить не смог :(