- Fast, feature-rich, modular, and scalable.
- Get started with the world’s most widely deployed RADIUS server:
- Version <
> has been released. - Welcome to the FreeRADIUS project, the open source implementation of RADIUS, an IETF protocol for AAA (Authorisation, Authentication, and Accounting).
- FreeRADIUS is responsible for authenticating one third of all users on the Internet.
- Get involved with The FreeRADIUS Server Project
- Connect with us
- Системное администрирование Linux
- Настройка Freeradius для работы с Microsoft Active Directory
- Настройка сервера Centos
- Настройка сервера Radius в Windows Server 2016
- Как установить FreeRadius с Web-интерфейсом
Fast, feature-rich, modular, and scalable.
Get started with the world’s most widely deployed RADIUS server:
Version <> has been released. 
Welcome to the FreeRADIUS project, the open source implementation of RADIUS, an IETF protocol for AAA (Authorisation, Authentication, and Accounting).
The FreeRADIUS project maintains the following components: a multi protocol policy server (radiusd) that implements RADIUS, DHCP, BFD, and ARP; a BSD licensed RADIUS client library; a RADIUS PAM library; and an Apache RADIUS module.
We provide a step-by-step guide to radiusd -X . The guide breaks down the different pieces of the debug output, and explains what they mean. Often you can just look for ERROR or WARNING to solve many problems.
FreeRADIUS is responsible for authenticating one third of all users on the Internet.
Get involved with The FreeRADIUS Server Project
Our comprehensive support for protocols, data stores, directories, databases, and language integrations would not be possible without contributions from the community. Open your favourite editor and help us make FreeRADIUS better!
Develop new modules
API documentation, C code examples, and anything else you need to get up-to-speed and writing modules for FreeRADIUS.
Submit new modules
Developed your own module? Great! Submit your code back to the project and have it maintained by the community.
Found an issue? We accept patches for everything, from code, to documentation, and even to this website!
Connect with us
Feel free to reach out; we’re always happy to receive your feedback.
Системное администрирование Linux
2018-02-05 10:23:45 9885 1
Настройка 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
sudo sed -i «s/SELINUX=enforcing/SELINUX=disabled/» \
Указываем DNS сервер отвечающий за домен
На файерволе разрешаем порт udp 1812
Устанавливаем необходимые зависимости:
sudo yum install authconfig samba samba-winbind samba-client \
Запускаем интерфейс для настройки источников системной аутентификации
Запускается псевдо-графическая оболочка для настройки
На странице «Конфигурация аутентификации» выбираем «Информация пользователя->Использовать 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
Проверяем аутентификацию ntlm
ntlm_auth —request-nt-key —domain=TEST.UN \
Установка и настройка Freeradius сервера
sudo yum install freeradius freeradius-krb5
Идем в файл /etc/raddb/mods-enabled/ntlm_auth прописываем правильные значения
Правим конфигурацию виртуальных сервров Freeradius
в файл /etc/raddb/users добавляем следующую секцию
Создаем клиента для Freeradius
Запускае Freeradius сервер в режиме Debug
И проверяем аутентификацию на Freeradius сервере с другой машины для которой был создан клиент
radtest radius «пароль» 172.20.1.210 1812 testing123
Аутентификация прошла удачно.
Если вы хотети ограничить аутентификацию для пользователей на основании принадлежности их к доменной группе, то в файле /etc/raddb/mods-enabled/ntlm_auth в строке с указанием ключей для команды ntlm_auth обавляем следующую конструкцию
Настройка сервера Radius в Windows Server 2016
В этой статье мы покажем, как настроить сервер централизованной аутентификации, авторизации и аккаунтинга (RADIUS) на операционной системе Windows Server 2016, а также как настроить Radius-аутентификацию на Cisco устройствах с помощью службы Политики сети и доступа (Network Policy Server).
RADIUS (англ. Remote Authentication in Dial-In User Service) — протокол для реализации аутентификации, авторизации и сбора сведений об использованных ресурсах, разработанный для передачи сведений между центральным севером и различными сетевым оборудованием и клиентами.
В первую очередь создайте в домене Active Directory группу безопасности AllowRemoteCiscoUsers, в которую нужно добавить пользователей, которым будет разрешена аутентификации на маршрутизаторах и коммутаторах Cisco.
Далее нужно установить на сервере, с помощью которого будет выполнятся аутентификация клиентов и назначаться права доступа, роль RADIUS сервера. Для этого на сервере Windows Server 2016 откройте оснастку Server Manager и вызовите мастер добавления ролей — Add Roles and features.
В открывшемся мастере на шаге выбора ролей отметьте роль Network Policy and Access Services. На шаге выбора служб роли в нашей ситуации достаточно будет выбрать только службу Network Policy Server.
В консоли Server Manager выберите меню Tools и откройте консоль Network Policy Server (nps.msc).
Для полноценного использования NPS-сервера в домене необходимо зарегистрировать его в домене Active Directory. В оснастке на NPS, щелкните ПКМ по вашему NPS узлу и выберите Register server in Active Directory.
Подтвердите регистрацию сервера в Active Directory:
При этом мы должны предоставите серверу полномочия на чтение свойств учётных записей пользователей, касающихся удалённого доступа. Сервер при этом будет добавлен во встроенную доменную группу RAS and IAS Servers.
Теперь можно добавить клиента Radius. Для этого в дереве консоли NPS разверните раздел RADIUS Clients and Servers и на элементе RADIUS Clients выберите пункт New.
На вкладке Settings заполните поля Friendly name, Client address (можно указать IP адрес или DNS имя подключающегося сетевого устройства) и пароль — Shared Secret + Confirm shared (этот пароль вы будете использовать в настройках коммутатора или маршрутизатора Cisco для установления доверительных отношений с Radius сервером).
Во вкладке Advanced выберите в поле Vendor name — Cisco.
Теперь нужно создать политики доступа на сервере RADIUS. С помощью политик доступа мы свяжем клиента Radius и доменную группу пользователей.
Раскройте ветку Policies —> Network Policies, и выберите пункт меню New:
Укажите Имя политики (Policy name). Тип сервера доступа к сети (Type of network access server) оставьте без изменения (Unspecified):
На следующем шаге Specify conditions нам нужно добавить условия, при которых будет применяться данная политика RADIUS. Добавим два условия: вы хотите, что для успешной авторизации пользователь входил в определенную доменную группу безопасности, и устройство, к которому осуществляется доступ, имело определённое имя. С помощью кнопки Add добавим сначала условие, выбрав тип Windows Group (добавьте группу RemoteCiscoUsers) и укажите Client Friendly Name (Cisco_*).
На следующем выберите значение Доступ разрешен (Access Granted).
Т.к. наш коммутатор Cisco поддерживает только метод аутентификации Unencrypted authentication (PAP, SPAP), снимите все остальные флажки.
Следующий шаг настройки ограничений (Constraints) мы пропустим.
В разделе Configure Settings перейдите секцию RADIUS Attributes -> Standard. Удалите имеющиеся там атрибуты и нажмите кнопку Add.
Выберите Access type -> All, затем Service-Type->Add. Укажите Others=Login.
Теперь в секции RADIUS Attributes -> Vendor Specific добавьте новый атрибут. В пункте Vendor, найдите Cisco и нажмите Add. Здесь нужно добавить сведения об атрибуте. Нажмите Add и укажите следующее значение атрибута:
shell: priv-lvl = 15
На последнем экране будут указаны все созданные вами настройки политики NPS. Нажмите Finish:
При создании и планировании политик обратите внимание на то, что имеет значение их порядок. Политики обрабатываются сверху вниз, и все условия очередной политике соблюдены, эта политика применяется к клиенту, а дальнейшая обработка других политик прекращается. То есть с точки зрения безопасности и разрешения конфликтов между политиками правильнее будет располагать политики в порядке возрастания административных полномочий.
После создания политики, можно переходить к настройке маршрутизаторов и коммутаторов Cisco для аутентификации на сервере Radius NPS.
AAA работает таким образом, что, если не получен ответ от сервера, клиент предполагает, что аутентификация не выполнена. Чтобы не потерять доступ к своим сетевым устройствам, которые вы переключаете на авторизацию на Radius сервера, обязательно создайте локальных пользователей на случай если RADIUS сервер станет недоступен по какой-либо причине.
Ниже пример конфигурации для авторизации на Radius (NPS) сервере для коммутатора Cisco Catalyst:
aaa new-model
aaa authentication login default group radius local
aaa authorization exec default group radius if-authenticated
radius-server host 192.168.1.16 key R@diu$pa$$
service password-encryption
На этом минимальная настройка коммутатора закончена и можно испытать новый механизм аутентификации и авторизации в действии.
Как установить FreeRadius с Web-интерфейсом
Повторение чужих шагов чтобы понять принцип работы и после уже на основе приобретенного опыта иметь свой собственный. Только так я могу учиться чему-то новому. Зачем с головой уходить в то что уже другими помногу раз используется, проще взять что-то за основу и использовать согласно своим задачам. Вот и сейчас выдалось свободное время и я решил, а почему бы не попробовать посмотреть что такое Radius — сервис, на сколько я понял это сервис на который можно завязать авторизацию на различных устройствах посредством предопределенных учетных записей и прав. Вот и попробую. Только сперва разберу как FreeRadius установить в системе вокруг которой я строю все сервисы: Ubuntu Trusty 14.04.5 Server amd64
Характеристики данной виртуальной машины: CPU = 1, RAM = 1Gb, HDD = 20Gb
$ uname -a && lsb_release -a
Linux srv-server 4.4.0-57-generic #78
14.04.1-Ubuntu SMP Sat Dec 10 00:14:47 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Не забываю указать настройки Локали:
$ sudo nano /etc/profile
Для работы сервиса FreeRadius необходимы следующие пакеты, это Apache2 & MySQL & PHP.
$ sudo apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql php5-gd php-pear php-db -y
New password for the MySQL «root» user: 712mbddr@
Repeat password for the MySQL «root» user: 712mbddr@
$ sudo nano /etc/apache2/apache2.conf
Сам пакет (FreeRadius) вокруг которого строится заметка я буду устанавливать из дефолтных репозитариев:
$ apt-cache show freeradius | grep Version
$ sudo apt-get install freeradius -y
После того, как пакет установлен, в автоматическом режиме запускается демон слушающий дефолтный порт (udp/1812):
$ sudo netstat -tulpn | grep :1812
udp 0 0 127.0.0.1:18120 0.0.0.0:* 15348/freeradius
udp 0 0 0.0.0.0:1812 0.0.0.0:* 15348/freeradius
Т.к. все настройки FreeRadius удобнее хранить в базе, то вот под это дело и создаю базу данных и специализированного пользователя:
$ mysql -u root -p712mbddr@
mysql> create database dbradius character set utf8 collate utf8_general_ci;
mysql> grant all on dbradius.* to radius@localhost identified by «612mbddr@»;
mysql> flush privileges;
mysql> exit;
Для связки FreeRadius и MySQL нужен пакет ориентированный на сопряжение, ставлю его (freeradius-mysql) также из дефолтных репозитариев релиза Ubuntu Trusty:
$ sudo apt-get install freeradius-mysql -y
$ sudo bash -c «mysql -u root -p712mbddr@ dbradius
$ sudo bash -c «mysql -u root -p712mbddr@ dbradius
Чтобы оценить, что FreeRadius работает, делаю как делаю в примерах интернета, а именно добавляю в таблицу radcheck такие атрибуты, как: UserName,Attribute,Value
$ mysql -u root -p712mbddr@
mysql> use dbradius;
mysql> insert into radcheck (UserName,Attribute,Value) VALUES (‘sqltest’,’Password’,’testpwd’);
mysql> exit
- insert → для добавления данных в таблицу
- values → добавление значений
Теперь нужно объяснить сервису FreeRadius все настройки брать из базы данных:
ekzorchik@srv-server:
$ sudo nano /etc/freeradius/sql.conf
Теперь приводим настройки файла сайта FreeRadius к виду:
$ sudo nano /etc/freeradius/sites-enabled/default
# See «Authorization Queries» in sql.conf
# See «Accounting queries» in sql.conf
# See «Simultaneous Use Checking Queries» in sql.conf
# See «Authentication Logging Queries» in sql.conf
Далее правим конфигурационный файл freeradius и включаем поддержку mysql:
$ sudo nano +700 /etc/freeradius/radiusd.conf
Теперь протестируем настройки сервера, для этого понадобится два консольных соединения с сервером или два окна окна терминала: В первом следует остановить демон FreeRadius и после запустить в режим отладки, а уже во втором будем посылать данные на обработку сервису дабы в первом консоли пронаблюдать как изменяется поведение сервиса.
$ sudo service freeradius stop
$ sudo freeradius -X mode
Вывод должен быть таким, как ниже.
$ radtest sqltest testpwd localhost 18128 testing123
Sending Access-Request of id 22 to 127.0.0.1 port 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, length=20
Вывод без ошибок и статус Access-Accept.
Чтобы подключать клиентов/устройства следует изменять файл: /etc/freeradius/clients.conf
$ sudo service freeradius start
$ sudo nano /etc/freeradius/clients.conf
Теперь обернем FreeRadius Web— интерфейсом DaloRadius, не обязательно для тех кто любит управлять через консоль:
$ tar xfz daloradius-0.9-9.tar.gz
$ sudo mv daloradius-0.9-9 /var/www/html/daloradius
$ mysql -u root -p712mbddr@ dbradius
Создаю свой файл конфигурации описывающий доступ к панели Администрирования:
$ sudo unlink /etc/apache2/sites-available/000-default.conf
$ sudo unlink /etc/apache2/sites-available/default-ssl.conf
$ sudo unlink /etc/apache2/sites-enabled/000-default.conf
$ sudo nano /etc/apache2/sites-available/daloradius.conf
Alias /daloradius /var/www/html/daloradius/
$ sudo a2ensite daloradius.conf
Enabling site daloradius.
To activate the new configuration, you need to run:
service apache2 reload
$ sudo service apache2 reload
Затем правлю конфигурационный файл веб-интерфейса: — /var/www/html/daloradius/library/daloradius.conf.php
$ sudo nano /var/www/html/daloradius/library/daloradius.conf.php
В заключение не забываю поправить права доступа к каталогу Daloraius чтобы он имел такие же права с какими работает сервис apache2:
$ sudo chown -R www-data:www-data /var/www/html/daloradius/
Стандартные логин и пароль к Web-интерфейсу Daloradius → http://IP&DNS/daloradius:
- Логин — administrator
- Пароль — radius
И нажимаю на Login и вот я внутри Web-панели администрирования собственным FreeRadius сервером:
Задача выполнена, я просто повторил инструкцию из интернета, но для повторения то же нужны определенные знания.
Но если хотим изменить на привычный интерфейс, правда советую лучше разбираться с англоязычным интерфейсом чем с кривым русским, то
Изменяем язык:
Config — Global Settings — Language Settings
Primary Language — изменяем English на Russian и нажимаем Apply
В дальнейших заметках я расскажу, как настроить аутентификацию через данный Radius сервис на различных устройствах, а пока на этом все, с уважением автор блога Олло Александр aka ekzorchik.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще 🙂
Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.