Все дополнения расчитаны для установки в каталог /usr/abills/misc.
Универсальная внешняя утилита для ARP pingю Пока работает только с серверами доступа Mikrotik
/usr/abills/Abills/modules/Dv/arping.pl
Usage: ./arping.pl ACCT_SESSION_ID=81809614 [DEBUG=1] [ L2=1 [ NAS_TYPES=mikrotik,mikrotik_dhcp ]] DEBUG - Выводит отладочную информацию L2 - Не использовать NAS сесии, а вычислить NAS, к которому привязан пул в том же влане, что и хост сесии NAS_TYPES - Типы серверов доступа, которые могут выполнить arping
Установка:
cd /usr/abills/libexec/ ln -s ../Abills/modules/Dv/arping.pl . chmod +x arping.pl
Дописать в config.pl, чтоб в онлайне возле сесии появилась кнопка «ARPPING»
$conf{DV_EXTERNAL_DIAGNOSTIC}='ARPPING:/usr/abills/libexec/arping.pl ACCT_SESSION_ID=%ACCT_SESSION_ID%';
Версия: 0.12; от 21.09.2013
autozh.pl
Скрипт автозапа и отключения всех пользователей или выбранного пользователя системы из консоли.
параметры: скидыват абонентов с негативным депозитом или тех у кого осталось до завершения услуги 5 дней
./autozh.pl DEBUG=1 HANGUP=1 DAYS2FINISH=5 NEGATIVE_DEPOSIT=1
NAS_ID | Номер сервера доступа |
---|---|
ACTION_EXPR= | Выражение (*). Програма просматривает определённое количество записей лога подключения (LAST_ACTIONS_COUNT) и если под данное выражение попадает логин определённо количество раз (ACTION_COUNT) система делает для данного аккаунта Zap |
ACTION_COUNT= | Количество найденных попаданий. По умолчанию 20 |
NEGATIVE_DEPOSIT=1 | сбрасывать с линии только должников |
LAST_ACTIONS_COUNT= | Количество последний записей истории для просмотра. По умолчанию 250. |
HANGUP=1 | Отключить все активные сессии |
LOGIN=1 | Логин пользователя для отключения |
DAYS2FINISH=xx | Дней до завершения услуги |
DEBUG=1..6 | Режим отладки |
help | справка |
Версия: 0.02; от 21.08.2014
cisco_vlan.pl
Утилита создания Vlan на коммутаторах Cisco для модуля Vlan
abills/libexec/radtest.sh
Консольная утилита тестирования радиус сервера
Пример тестирования авторизации
/usr/abills/libexec/radtest.sh auth -rad -u test -p 123456
Запрос
Sending Access-Request of id 136 to 127.0.0.1 port 1812 User-Name = "test" User-Password = "123456" NAS-IP-Address = 127.0.0.1 NAS-Port = 1 Message-Authenticator = 0x00000000000000000000000000000000
Ответ радиус сервера
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=136, length=218 Filter-Id = "filter" Session-Timeout = 360 Framed-IP-Netmask = 255.255.255.255 Framed-IP-Address = 192.168.214.3 mpd-limit = "in#1=all rate-limit 2048000 384000 768000 pass" mpd-limit = "out#1=all rate-limit 12288000 2304000 4608000 pass" Acct-Interim-Interval = 90 mpd-table-static = "10=10.20.20.30 6000" mpd-table-static = "11=10.20.20.30 5000"
Тестирование RADIUS пакета авторизации
пакет авторизации auth.cisco
User-Name = "85.132.9.244" User-Password = "ISG" Framed-IP-Address = 85.132.9.244 Cisco-Account-Info = "S10.200.28.225" NAS-Port-Type = Virtual Cisco-NAS-Port = "15/0/6/88" NAS-Port = 0 NAS-Port-Id = "15/0/6/88" Service-Type = Outbound-User NAS-IP-Address = 62.212.235.190 Acct-Session-Id = "3ED4EBBE02F8144F"
запуск теста
./radtest.sh auth -rad -rad_file auth.cisco
Запрос авторизации
Sending Access-Request of id 120 to 127.0.0.1 port 1812 User-Name = "192.168.11.100" User-Password = "ISG" Framed-IP-Address = 192.168.11.100 Cisco-Account-Info = "S10.200.28.225" NAS-Port-Type = Virtual Cisco-NAS-Port = "15/0/6/88" NAS-Port = 0 NAS-Port-Id = "15/0/6/88" Service-Type = Outbound-User NAS-IP-Address = 192.168.1.1 Acct-Session-Id = "3ED4EBBE02F8144F"
Ответ RADIUS
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=120, length=34 Reply-Message = "Not register"
Версия: 0.2
create_extbills.pl
Создание дополнительных счетов для пользователей.
Учтена возможность переноса определённой сумы с основного на дополнительный счёт (переменная $transfer_sum). Если у пользователя больше определённой сумы тогда определённая сума переноситься на доп. счёт с описанием об этом в журнале операций снятия и внесения денег.
Версия: 0.3
ipn_analize.sh - Дополнительный анализатор flow-tools файлов. Есть возможность выборки суммарного трафика для определённого IP адреса.
Версия: 0.7
dhcp_tools.pl Набор дополнительных утилит для работы с DHCP
Работает в двух режимах:
Формат файла:
LOGIN[TAB]IP[TAB]MAC[TAB]PORTS[TAB]NAS_ID[TAB]OPTION_82[TAB]VID[TAB]HOSTNAME
# dhcp_tools.pl ADDRESS_SHIFT="NEW_NETWORK_ID:SRC_NET:DST_NET"
NEW_NETWORK_ID | номер в какую сеть перенести абонентов |
---|---|
SRC_NET | Поточная сеть абонентов. Маска сети /24 (255.255.255.0) |
DST_NET | Новая сеть абонентов. Маска сети /24 (255.255.255.0) |
Аргументы программы
NETWORK | ИД сети для ARG grab. |
---|---|
FILE | Режим парсера файла |
ADDRESS_SHIFT | Перенос абонентов из одной сети в другую |
DEBUG | Режим отладки. В режиме отладки выше 4 программа показывает действия на выполнения без реального выполнения их. |
Версия: 0.5
dv_disable.pl - Блокирует должников
Блокирует должников не плативших определённый период времени (по умолчанию 60 дней). При блокировании должники переводятся в статус «Слишком маленький депозит».
В аргументах скрипта можно указать количество дней с последней оплаты и E-mail адрес администратора для получения отчётов о проведённых операциях.
Аргументы программы можна записать в файл.
DEBUG=0 LAST_PAYMENT_DAY=0 [TP_SUM] 100=-4 102=-10 103=-20 104=-25
После этого, указать путь через ключ CONFIG_FILE=/path/to/config/file
./dv_disable.pl CONFIG_FILE=dv_disable.ini DEBUG=7
Все аргументы, записаные в командной строке имеют больший приоритет, тоесть если в вызове сверху указано DEBUG=7, а в файле DEBUG=1, то активным будет значение 7
UID_TP и MIN_SUM записываются в секции [TP_SUM] в формате НОМЕР ТАРИФНОГО ПЛАНА=МАКСИМАЛЬНАЯ СУМА ДОЛГА
Если нет параметра тарифного плана, то он считается равным нулю.
Аргументы:
CONFIG_FILE= | Конфигурационный файл |
---|---|
SET_STATUS=1..6 | Статус который устаналивается должникам ( по умолчанию: 5 «Слишком маленький депозит») |
LAST_PAYMENT_DAY= | Количество дней с момента последней проплаты (60) |
SENDMAIL= | E-mail администратора для отчёта |
DEBUG=1..7 | Режим отладки ( при значении 7, только выводит список должников, не отключая) |
help | Помощь |
snmp_control.pl - Управление портами коммутатора (port,vlan,speed) на основе данных модулей Dhcphosts и Dv. Включение отключение портов управление скоростью.
Запуск
snmp_control.pl (ONLINE_ENABLE|ONLINE_DISABLE|HANGUP) %LOGIN %FILTER_ID %PORT
Версия: 0.9
convert_db.sh - конвертация базы.
$conf{dbcharset}='cp1251';
# ./convert_db.sh -t utf8
после конвертации
$conf{dbcharset}='utf8'; * конвертация с latin1 в utf8
# ./convert_db.sh -f latin1 -t utf8
Дополнительные параметры программы:
-d | название базы данных (по умолчанию abills) |
-u | пользователь для подключения к базе данных (по умолчанию root) |
-p | пароль подключения к базе данных |
-t | кодировка в которую переводим |
-f | С кодировки |
-h | Подсказка |
Версия: 0.16
traffic_class_add.pl - Скрипт заполнения списка сетей для разных классов трафика.
Скрипт заполняет уже существующие классы трафика.
В переменной %class_source указываются ссылки на файлы с списком адресов
my %class_source = ( # Номера сетей в классах трафика => Алрес в интернете 2 => 'http://адрес/ua.txt', 3 => 'http://193.33.236.1/crimea-ix.txt' );
скрипт анализирует сети формата:
xxx.xxx.xxx.xxx/xx xxx.xxx.xxx.xxx/xx
pppoe_search.pl - Поиск несанкционированных PPPoE серверов.
Чтобы заработал скрипт нужно добавит в /etc/ppp/ppp.conf
!include /tmp/ppp.conf
Внимание, эта строка НЕ должна начинаться с пробела.
MySql:
REPLACE INTO streets (name, district_id) select address_street, 1 from users_pi group by 1; REPLACE INTO builds (street_id, number) select s.id, address_build from users_pi u, streets s WHERE u.address_street=s.name group by address_street, address_build; UPDATE users_pi pi LEFT JOIN streets s ON (s.name=pi.address_street) LEFT JOIN builds b ON (s.id=b.street_id AND b.number=pi.address_build) SET pi.location_id=b.id WHERE pi.location_id=0
Включение реестра адресов
$conf{ADDRESS_REGISTER}=1;
Отключения реестра адресов
Иногда бывает ситуации что не удалось нормально сконвертировать адреса та как улицы были прописаны в разном формате или еще по каким то причинам.
Для отключения проверки журнала адресов нужно убрать привязку к точкам подключения
UPDATE users_pi SET location_id=0;
и отключить
$conf{ADDRESS_REGISTER}=0;
/usr/abills/misc/contacts_migrate.pl
Конвертирует старые контакты в новый формат.
Дамп с старыми контактами сохраняется в backup/abills_users_pi-%DATE%.sql.gz
# chmod +x /usr/abills/misc/contacts_migrate.pl # /usr/abills/misc/contacts_migrate.pl
ipnfilter.sh - скрипт Фильтра негативного депозита для ИПН
в конфигурационный файл добавляем
$conf{IPN_FILTER}='/usr/abills/libexec/ipnfilter.sh %IP %STATUS \"%FILTER_ID\"';
fetch_backup
Загружает с удалённого сервера последний архив базы
Перед работой с программой нужно создать на удалённом сервере (на сервер с бакапами abills) абонента и загрузить с локального на него сертифика для доступа по ssh без пароля
\\. При первом запуске программа проверяет наличие сертификата для доступа к удалённому хосту и IP адрес удалённого хоста. Пользователь по умолчанию abills_admin
запуск программы
# fetch_backup [удалённый сервер]
Чем больше число в результате тем лучше
cd /usr/ports/benchmarks/ubench && make install
Чем меньше времени тем лучше
Скрипт:
#!/bin/sh time echo "scale=5000; 4*a(1)" | bc -l -q
Чем больше число в результате тем лутше
Установка на примере Debian Linux
apt-get install gcc g++ time make wget http://members.dslextreme.com/users/andylee/unixbench-4.1.0-wht.tar.gz tar xzvf unixbench-4.1.0-wht.tar.gz cd unixbench-4.1.0-wht-2 make Запуск: ./Run
Установка в Freebsd
cd /usr/ports/benchmarks/unixbench && make install Запуск: unixbench
# dd if=/dev/zero of=testfile bs=1m count=1024 1024+0 records in 1024+0 records out 1073741824 bytes transferred in 17.577054 secs (61087701 bytes/sec)
Скрипт, который проверяет установлены ли все необходимые модули для perl.
Умеет устанавливать с помощью нескольких систем сборки:
Для проверки, запускать с ключом test
Для установки, запустить с одним из:
Скрипт, для проверки модулей Perl и корректности значений файла abills/Abills/programs
perldeps.pl
, если есть неустановленные модули.