Чтобы при авторизации клиентов с отрицательным балансом Accel-ppp добавлял IP адреса в ipset список, добавим в его конфигурации, в секции ipoe следующее:
attr-l4-redirect=L4-Redirect
attr-l4-redirect-ipset=L4-Redirect-ipset
l4-redirect-ipset=l4-redirect
Также убедимся что в словарях Freeradius и Accel-ppp есть:
ATTRIBUTE L4-Redirect 243 integer
ATTRIBUTE L4-Redirect-ipset 244 string
И в интерфейсе ABillS добавим для каждого тарифа в поле «Фильтр негативного депозита»:
RAD: L4-Redirect=1,L4-Redirect-ipset=denyip,PPPD-Downstream-Speed-Limit=3000,PPPD-Upstream-Speed-Limit=1000
Где denyip — имя списка ipset, которому можно запретить FORWARD через iptables, а также сделать редирект на HTTP страницу с информацией.
Если тарифов много, можно добавить SQL запросом, например так как я указывал когда-то «NEG_DEPOSIT» в поле «Фильтр негативного депозита», то я изменил так:
SELECT count(*) FROM tarif_plans WHERE neg_deposit_filter_id='NEG_DEPOSIT';
UPDATE tarif_plans SET neg_deposit_filter_id='RAD: L4-Redirect=1,L4-Redirect-ipset=denyip,PPPD-Downstream-Speed-Limit=3000,PPPD-Upstream-Speed-Limit=1000' WHERE neg_deposit_filter_id='NEG_DEPOSIT';
До версии ABillS 0.82 в поле «Фильтр негативного депозита» параметры freeradius должны перечисляться через запятую без пробела, после версии ABillS 0.82 — через запятую обязательно с пробелом иначе не будут передаваться.
Смотрите также мои статьи:
- Скрипты ip-up и ip-down с ipset для Accel-ppp
- Установка и использование ipset
- Captive portal. Настройка переадресации ncsi