Сегодня немного про Radius, WiFi и Squid.
Начнём с прикручивания Radius к WiFi:
Дабы не заниматься обычным копипастом я даю Вам ссылку на отличную статью по настройке.
Сам по ней делал. По второй части, где рассматривается авторизация по паролю.
Она рассчитана на Gentoo (Linux) пользователей, но я без проблем поставил FreeRadius на FreeBSD сервер.
Затем для простоты администратирования я поставил Dialup Admin Administration interface и phpMyAdmin
Ещё кое что, в статье на во второй части не сказана важная вещь:
1.1 файл /etc/raddb/clients.conf
Для начала пропишем клиентов (в данном случае - точку доступа) в файле /etc/raddb/clients.conf
#----------------------------------------------------
client 192.168.1.250/32 {
secret = test1234
shortname = test_ap
}
#----------------------------------------------------
Эта запись означает, что клиент с адресом 192.168.1.250 авторизируется на RADIUS-е с паролем test1234. Имя test_ap будет использована при логировании событий, связанных с этой точкой доступа.
Не забываем сменить стандартный пароль для localhost_клиентов:
#----------------------------------------------------
secret = very_strong_secret_password
#----------------------------------------------------
А именно, в пункт
#----------------------------------------------------
client 192.168.1.250/32 {
secret = test1234
shortname = test_ap
}
#----------------------------------------------------
нужно вписать свой nastype
В моём случае были использованы WiFi точки 3com и я вписал
#----------------------------------------------------
client 192.168.1.250/32 {
secret = test1234
shortname = test_ap
nastype = other
}
#----------------------------------------------------
Если возникнуть проблемы с настройкой, смотрите WiKi
Далее перейдём к аутентификации Squid пользователей по паролям из базы FreeRadius сервера.
Логично предположить, зачем-же Нам создавать ещё одну базу пользователей, когда уже есть готовая.
Приступим:
Для начала качаем squid_radius_ath
Затем распаковываем, компилируем.
Открываем, если есть FireWall порт 1812(по умолчанию порт FreeRadius)
После, в файл squid_radius_auth.conf вписываем:
server 192.168.1.1
secret 123456789
Где:
server 192.168.1.1 - Это Ваш FreeRadius сервер.
secret 123456789 - Ваше секретное слово для доступа.
Напомню, всё это Вы вписывали в файл clients.conf, т.е я создал для моего шлюза ещё одну запись в файле clients.conf
Далее:
В файл squid.conf вписываем:
auth_param basic program /usr/local/squid/libexec/squid_radius_auth -f /etc/squid_rad.conf
auth_param basic children 15
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 45 minute
acl radius-auth proxy_auth REQUIRED
http_access allow radius-auth
http_access allow localhost
http_access deny all
Где:
auth_param basic program /usr/local/squid/libexec/squid_radius_auth -f /etc/squid_rad.conf - Путь к программе squid_radius_auth
-f /etc/squid_rad.conf указывает, какой конфиг следует использовать.
auth_param basic children 15 - Макс. количество одновременных аутентификаций
auth_param basic realm Web-Proxy - Не помню, должно быть так.
auth_param basic credentialsttl 45 minute - Время действия аутентификации.
acl radius-auth proxy_auth REQUIRED - Запрос авторизации.
http_access allow radius-auth
http_access allow localhost
http_access deny all - Это параметры доступа
Для теста выполняем:
/usr/local/squid/libexec/squid_radius_auth -f /etc/radius_config
Или так, без конф. файла (я проверял именно так)
/usr/local/squid/libexec/squid_radius_auth -h 192.168.1.1 -w 123456789
Не забываем все пути менять на свои
Ели увидели OK - значит хорошо
Если увидели ERR login failure - значит что-то пошло не так.
Взято от сюда
Если будете ставить статистику пользователей, не волнуйтесь, все имена будут браться из базы FreeRadius вместо IP адресов.