Кеш-Система Accel-ppp
У accel-ppp есть возможность авторизировать пользователей с помощью файла паролей - chap secrets. Это очень полезное свойство может пригодится при проблемах в работе связки mysql - radius. Суть будет заключается в следующем - сервер доступа в определённый период времени запрашивает с билинга сгенерированный файл паролей и опрашивает радиус-сервер, если от него не поступает ответа, то сервер доступа переключается на файл с паролями полученный с билинга.
Первоначально нужно настроить авторизацию по ключу с сервера доступа на билинг. Это необходимо для того чтобы сервер доступа мог поддерживать актуальную версию файла-паролей. Пример можно почитутать тут - Авторизация между серверами
Скачайте свежий дистрибутив mikbill, в папке DISTR/caсhe-system архив accel-caсhe.tar.gz. В нём находится ещё два архива - billing.tar и nas.tar. billing.tar скопировать на билинг и распаковать согласно директориям внутри архива, тоже самое сделать и для nas.tar, скопировав его на сервер доступа.
Настройка для сервера с билингом:
1. Разархивировав billing.tar можете выбрать несколько вариантов генерации файла паролей. Для этого откройте файл /var/www/admin/res/caсhe/accel-ppp.php. В строке 74 есть функция billing_init_users(), с тремя примерами запросов:
1. Выбрать всех пользователей у которых баланс больше нуля и не заблокирован интернет.
2. Выбрать всех пользователей без условий.
3. Выбрать всех пользователей с положительным балансом и шейпером.
По умолчанию выбран 3 вариант.
2. Проверим формирование файла с паролями, для этого запустим скрипт-обвертку caсhe.sh
cd /usr/local/sbin ./caсhe.sh <code> В каталоге **/var/www/mikbill/admin/res/caсhe** у вас долже сформироваться файл - **chap-secrets**. <code> cat chap-secrets test * 1 192.168.3.7 9999 test_dolg * 11 10.10.1.1 1024 3 * McSgB 192.168.3.5 9999
1 и 3 колонки - логин-пароль. 4 - Адрес который будет выдаваться пользователя. 5 - Шейпер.
3. Добавьте в планировщик выполнение файла cache_sys примерно раз в час.
01 * * * * root /usr/local/sbin/cache_sys
Настройка для сервера доступа:
1. Разархивировать nas.tar.
В каталоге /opt подправим файлы accel-ppp.conf.norad(авторизация без радиуса) и accel-ppp.conf.rad(авторизация с радиусом). Корректируем их под себя(изменяем секции pptp,pppoe,radius и т.д.).
2. Отредактировать /usr/local/sbin/chap_sync.sh - заменив в нём ip-адрес на адрес билинга. Скрипт будет скачивать файл паролей с билинга.
3. Изменить /usr/local/sbin/test_sciprt.sh - скрипт проверяет ответ от радиус сервера:
STATS="/home/bill/norad/radius_test.txt" - файл с отладочной информацией о проверке статуса радиус-сервера
RADTEST="/usr/bin/radtest" - Путь к утилите radtest
FREERAD_SRV_IP="10.10.1.1" - IP Вашего радиус-сервера.
FREERAD_SECRET="secret" - Секретное слово.
4. /usr/local/sbin/rad_test.sh - скрипт перезапуска accel-ppp в случае если нет ответа от радиус-сервера. Измените строку перезапуска accel-ppp если у вас она отличается от:
/etc/init.d/accel restart
5. И последнее, добавьте в планировщик выполнение файлов:
#Проверка раз в 5 минут 0-59/5 * * * * root /usr/local/sbin/rad_test.sh > /dev/null 2>&1 #Синхронизация раз в час 0 */1 * * * root /usr/local/sbin/chap_sync.sh > /dev/null 2>&1