Всем доброго времени!
Рано или поздно приходит понимание, что один пароль для авторизации на Wi-Fi точке это не совсем правильно, исключение домашний Wi-Fi роутер, да и то не всегда.
Люди приходят и уходят, вместе с ними уходят пароли, что кране нехорошо для безопасности.
Можно конечно менять пароль с увольнением сотрудника и заново всем его раздавать, но согласитесь, если клиентов больше 10…. так себе занятие.
Решил поделиться с вами рабочим рецептом авторизации пользователей через Radius сервер т.е. каждый пользователь в такой схеме будет иметь свой логин и пароль.
Статья будет в двух частях, в этой статье рассмотрим установку и первоначальную настройку Freeradius3 с хранением клиентов в текстовом файле.
Во второй части прикрутим хранение в MySQL + WebGUI для администрирования.
Дано:
- FreeBSD 11.2
- IP адрес 10.200.6.20
- Asus rt16-n с ip адресом 10.200.6.16
Ставить будем из портов.
Первом делом обновляем порты:
# portsnap fetch update
Далее:
# /usr/ports/net/freeradius3 # make config
В config установки отмечаем использование MySQL
([X] MYSQL MySQL database support)
# make install clean
Переходим к настройке:
cd /usr/local/etc/raddb/
В рамках этой статьи нас интересуют всего два конфигурационных файла:
- clients.conf — файл в котором мы будем описывать откуда можно подключаться к нашему серверу
- users — в этом файле мы будем хранить самих пользователей
Разрешим нашему роутеру подключаться к Radius серверу, допишем в конце clients.conf
# vi /usr/local/etc/raddb/clients.conf client asus { ipaddr = 10.200.6.16 secret = 12345678 }
Если в вашей сети несколько устройств, чтобы каждое не описывать, то сеть можно указать с маской как ipaddr = 10.200.6.0/24
Заведем для теста пользователя:
# vi /usr/local/etc/raddb/users vladimir Cleartext-Password := "12345678" Service-Type = Login-User, Login-IP-Host = 0.0.0.0
Для теста запустим в консоли:
# radiusd -X
Откроем новую сессию в терминале и проверим ответ нашего сервера:
[shell]echo User-Name='vladimir',User-Password='12345678' | radclient -c '1' -n '3' -r '3' -t '3' -x 'localhost:1812' 'auth' 'testing123'[/shell] Пароль на подключение указываем не тот который указали в clients.conf, а используем тестовый пароль(testing123), который есть в clients.conf по умолчанию у клиента localhost Должны получить вывод: <pre class="lang:sh decode:true">Sent Access-Request Id 141 from 0.0.0.0:38791 to 127.0.0.1:1812 length 44 User-Name = "vladimir" User-Password = "12345678" Cleartext-Password = "12345678" Received Access-Accept Id 141 from 127.0.0.1:1812 to 127.0.0.1:38791 length 32 Service-Type = Login-User Login-IP-Host = 0.0.0.0
Из него видно, что мы послали запрос и получили ответ.
Гасим наш экземпляр freeradius (в консоли где он запущен Ctrl+c)
Разрешаем запуск :
echo radiusd_enable=\"YES\" >> /etc/rc.conf
Запускаем:
# /usr/local/etc/rc.d/radiusd start
Настраиваем Wi-Fi роутер
В Asus это:
Беспроводная сеть > Настройка RADIUS где указываем:
- IP-адрес сервера: 10.200.6.20 (Ваш RADIUS сервер)
- Порт сервера: 1812
- Ключ соединения — 12345678 (то что мы указали в clients.conf)
Беспроводная сеть > Общие:
Метод проверки подлинности — WPA2-Enerprise
Жмем ПРИМЕНИТЬ и пробуем подсоединиться к wi-fi точке с именем и паролем, который указали в файле users.
Должно все получится, если не получается — прочитайте пожалуйста еще раз внимательно.
P.S.
Для дебага гасите экземпляр FreeRADIUS
# /usr/local/etc/rc.d/radiusd stop
И запускайте в консоли и читайте вывод
# radiusd -X
При написании этой статьи параллельно устанавливал и настраивал FreeRADIUS 3 и смог авторизоваться на wi-fi роутере с моей парой логин-пароля.
Для любителей Linux (Ubuntu, Debian….) можно так же воспользоваться этой статью, разница только в установке и местоположения конфигов, так же проверял установку — работает
- Установка apt-get install freeradius freeradius-utils freeradius-mysql
- Путь до конфигов /etc/freeradius/3.0
- Старт-Стоп service freeradius start (stop)
- Debug freeradius -X