Прикручиваем FreeRadius к WiFi + аутентификация из базы FreeRadius в Squid

Всем привет!

Сегодня немного про 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 адресов.
blog comments powered by Disqus