====== Кеш-Система Accel-ppp ======
Доступна с версии 2.8.13
У accel-ppp есть возможность авторизировать пользователей с помощью файла паролей - **chap secrets**. Это очень полезное свойство может пригодится при проблемах в работе связки mysql - radius. Суть будет заключается в следующем - сервер доступа в определённый период времени запрашивает с билинга сгенерированный файл паролей и опрашивает радиус-сервер, если от него не поступает ответа, то сервер доступа переключается на файл с паролями полученный с билинга.
Первоначально нужно настроить авторизацию по ключу с сервера доступа на билинг. Это необходимо для того чтобы сервер доступа мог поддерживать актуальную версию файла-паролей. Пример можно почитутать тут - [[billing:configuration:cross_server_uathorization|]]
Скачайте свежий дистрибутив 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
В каталоге **/var/www/mikbill/admin/res/caсhe** у вас долже сформироваться файл - **chap-secrets**.
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