Приведу пример обновления accel-ppp, команды нужно выполнять от root пользователя.
Читать далее «Как обновить accel-ppp»Архивы рубрик:ABillS
Настройка WatchDog от ABillS
В биллинговой системе ABillS можно настроить проверку состояния любых запущенных программ, и настроить автоматический запуск если какая либо из них не запущена.
Например для слежением за FreeRadius необходимо выполнять команду:
/usr/abills/libexec/billd check_programs PROGRAMS="radiusd:/etc/init.d/radiusd start"
Где «radiusd» — имя программы в процессах, а «/etc/init.d/radiusd start» команды для ее запуска.
Установка и настройка accel-ppp (IPoE) для ABillS
На тесте выполню установку accel-ppp в Ubuntu Server 16.04 LTS для ABillS.
Читать далее «Установка и настройка accel-ppp (IPoE) для ABillS»Скрипты ip-up и ip-down с ipset для Accel-ppp
Приведу пример скриптов которые я раньше использовал, в список allowip добавлялись IP адреса которым разрешен интернет, а в denyip которые переадресовывались на http страницу с информацией о негативном депозите.
Читать далее «Скрипты ip-up и ip-down с ipset для Accel-ppp»ABillS+FreeRADIUS+Accel-PPP выдают только один DNS
Однажды после установки ABillS + FreeRADIUS2 + Accel-PPP(ipoe) заметил что по DHCP клиенты получают только один DNS сервер.
Access-Accept от FreeRADIUS был такой:
Причина сообщений «HTB: quantum of class 10001 is big. Consider r2q change»
Однажды на сервере доступа Ubuntu Server 16.04 и Accel-ppp заметил в файле /var/log/kern.log следующие сообщения:
kernel: [365970.550498] HTB: quantum of class 10001 is big. Consider r2q change. kernel: [365970.550547] HTB: quantum of class 10A49 is big. Consider r2q change. kernel: [365979.545580] HTB: quantum of class 10001 is big. Consider r2q change. kernel: [365979.545621] HTB: quantum of class 10BD6 is big. Consider r2q change. kernel: [365995.601973] HTB: quantum of class 10001 is big. Consider r2q change. kernel: [365995.602031] HTB: quantum of class 11705 is big. Consider r2q change.
Сначала попробовал отследить какие в этот момент поднимаются интерфейсы:
tail -f /var/log/kern.log | grep "quantum of class 10001 is big" tail -f /var/log/accel-ppp/accel-ppp.log | grep "create interface"
Читать далее «Причина сообщений «HTB: quantum of class 10001 is big. Consider r2q change»»
SQL запросы для ABillS
В этой статье я приведу примеры некоторых SQL запросов для базы биллинговой системы ABillS.
Читать далее «SQL запросы для ABillS»Скрипт добавления IP адресов из файла в ipset
Понадобилось однажды написать скрипт чтобы добавить в ipset все IP для которых били подняты сессии на сервере доступа, использовался биллинг Abills, поэтому я решил взять IP адреса из MySQL таблицы биллинга.
Первым делом создадим тестовый ipset:
ipset create test iphash
Читать далее «Скрипт добавления IP адресов из файла в ipset»
Решение ошибки «Another app is currently holding the xtables lock»
Недавно заметил на одном сервере с биллинговой системой ABillS, что при массовом выполнении скрипта /etc/ppp/ip-up возникает ошибка:
Another app is currently holding the xtables lock. Perhaps you want to use the -w option?
Посмотрев код скрипта обнаружил, что среди iptables правил есть два, которые могут тормозить работу, а именно выполнялся поиск ipoe интерфейсов двумя командами:
IPTABLES="/sbin/iptables" EXIST=`${IPTABLES} -t nat -L PREROUTING -v | grep "${IFNAME} "; ${IPTABLES} -L -v | grep DROP | grep "${IFNAME} "`
Для поднятия 3000 сессий, уходило более 30 минут и часть правил могла вовсе не добавится или не удалится скриптом.
По умолчанию если используется ключ -L то iptables резолвит IP адреса и пытается отобразить вместо них DNS имена, что занимает много времени, и чтобы это не происходило, нужно добавить еще ключ -n, а также на всякий случай я добавил ключ -w 20, который заставит отложить выполнение новых правил до 20 секунд если iptables уже занят выполнение другой команды:
IPTABLES="/sbin/iptables" IPTABLES_WAIT="-w 20" EXIST=`${IPTABLES} $IPTABLES_WAIT -t nat -n -L PREROUTING -v | grep "${IFNAME} "; ${IPTABLES} $IPTABLES_WAIT -n -L -v | grep DROP | grep "${IFNAME} "`
После этого скрипт с iptables правилами начал отрабатывать мгновенно.
Так как старые правила не все выполнились, я проверил это посчитав некоторые командой:
iptables -n -L -t nat -v | grep DNAT | wc -l
И сверил с количеством сессий, правил явно было меньше, поэтому пришлось очистить все правила и перезапустить сессии чтобы скрипт /etc/ppp/ip-up отработал правильно, на этот раз при 3000 сессиях он сделал свою работу менее чем за минуту.
Замечу что в скриптах /etc/ppp/ лучше не использовать правила iptables.
Установка модуля Netlist для ABillS
На тесте установлю модуль Netlist для ABillS в Ubuntu Server.
Импортируем таблицы в базу:
mysql -D abills --default-character-set=utf8 < /usr/abills/db/Netlist.sql
Откроем файл конфигурации биллинга:
nano /usr/abills/libexec/config.pl
Убедимся что активирован модуль:
@MODULES = ( 'Netlist' );
Установим nmap и Perl модуль для него:
sudo apt-get install nmap sudo cpanm Nmap::Parser
Посмотрим где находится nmap:
which nmap
Снова откроем файл конфигурации биллинга:
sudo nano /usr/abills/libexec/config.pl
Укажем путь к nmap:
$conf{'NMAP_LOCATION'}="/usr/bin/nmap";
Добавим в sudoers:
echo 'www-data ALL=(ALL) NOPASSWD: /usr/bin/nmap' >> /etc/sudoers.d/abills_sudoers
После установки модуль будет доступен в меню /Настройка/Netlist