=====Дополнительные программы=====
Все дополнения расчитаны для установки в каталог /usr/abills/misc.
==== arping.pl ====
Универсальная внешняя утилита для 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%';
====autozh.pl====
Версия: 0.12; от 21.09.2013\\
[[http://abills.net.ua/misc/autozh.pl|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 | справка |
====cisco_vlan.pl====
Версия: 0.02; от 21.08.2014\\
[[http://abills.net.ua/misc/cisco_vlan.pl|cisco_vlan.pl]]
Утилита создания Vlan на коммутаторах Cisco для модуля [[abills:docs:modules:vlan:ru|Vlan]]
====radtest.sh====
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"
====create_extbills.pl====
Версия: 0.2\\
[[http://abills.net.ua/misc/create_extbills.pl|create_extbills.pl]]
Создание дополнительных счетов для пользователей. \\
Учтена возможность переноса определённой сумы с основного на дополнительный счёт (переменная $transfer_sum). Если у пользователя больше определённой сумы тогда определённая сума переноситься на доп. счёт с описанием об этом в журнале операций снятия и внесения денег.
====ipn_analize.sh====
Версия: 0.3\\
[[http://abills.net.ua/misc/ipn_analize.sh|ipn_analize.sh]] - Дополнительный анализатор flow-tools файлов. Есть возможность выборки суммарного трафика для определённого IP адреса.
====dhcp_tools.pl====
Версия: 0.7\\
[[http://abills.net.ua/misc/dhcp_tools.pl|dhcp_tools.pl]] **Набор дополнительных утилит для работы с DHCP**\\
* автоматическое занесения IP/MAC адресов пользователей в модуль Dhcphosts.
Работает в двух режимах:
- Занесение IP/MAC связок пользователей из файла. \\
Формат файла:
LOGIN[TAB]IP[TAB]MAC[TAB]PORTS[TAB]NAS_ID[TAB]OPTION_82[TAB]VID[TAB]HOSTNAME
- Режим ARP монитора система вытаскивает IP/MAC связки из arp таблицы сравнивает их с онлайн пользователями и заносит в базу\\
* Групповой перенос абонентов из одной сети в другую.
# 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 программа показывает действия на выполнения без реального выполнения их. |
====dv_disable.pl====
Версия: 0.5\\
[[http://abills.net.ua/misc/dv_disable.pl|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====
[[http://abills.net.ua/misc/snmp_control.pl|snmp_control.pl]] - Управление портами коммутатора (port,vlan,speed) на основе данных модулей Dhcphosts и Dv. Включение отключение портов управление скоростью.
Запуск
snmp_control.pl (ONLINE_ENABLE|ONLINE_DISABLE|HANGUP) %LOGIN %FILTER_ID %PORT
====convert_db.sh====
Версия: 0.9\\
[[http://abills.net.ua/misc/convert_db.sh|convert_db.sh]] - конвертация базы.
* Конвертация из latin1 в cp1251. После конвертации не забудте установить правильно переменную **/usr/abills/libexec/config.pl**
$conf{dbcharset}='cp1251';
* конвертация из cp1251 в utf8
# ./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 | Подсказка |
====traffic_class_add.pl (Фетчер сетей)====
Версия: 0.16\\
[[http://abills.net.ua/misc/traffic_class_add.pl|traffic_class_add.pl]] - Скрипт заполнения списка сетей для разных классов трафика. \\ Скрипт заполняет уже существующие классы трафика.
* По умолчанию скрипт заносит UA-IX в 2 класс трафика
* [[abills:docs:manual:misc_soft:roskomnadzor|РОСКОМНАДЗОР Выгрузка]]
В переменной %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====
[[http://abills.net.ua/misc/pppoe_search.pl|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''
Конвертирует старые контакты в [[abills:docs:manual:admin:form_users:user_contacts|новый формат]].\\
Дамп с старыми контактами сохраняется в ''backup/abills_users_pi-%DATE%.sql.gz''\\
# chmod +x /usr/abills/misc/contacts_migrate.pl
# /usr/abills/misc/contacts_migrate.pl
====Скрипт Фильтра негативного депозита для ИПН====
[[http://abills.net.ua/misc/ipnfilter.sh|ipnfilter.sh]] - скрипт Фильтра негативного депозита для ИПН
в конфигурационный файл добавляем
$conf{IPN_FILTER}='/usr/abills/libexec/ipnfilter.sh %IP %STATUS \"%FILTER_ID\"';
====Загрузка архива базы с удалённого сервера====
[[http://abills.net.ua/misc/fetch_backup|fetch_backup]] \\
Загружает с удалённого сервера последний архив базы
\\
Перед работой с программой нужно создать на удалённом сервере (на сервер с бакапами abills) абонента и загрузить с локального на него сертифика для доступа по ssh без пароля
\\. При первом запуске программа проверяет наличие сертификата для доступа к удалённому хосту и IP адрес удалённого хоста. Пользователь по умолчанию abills_admin
запуск программы
# fetch_backup [удалённый сервер]
\\
====Тестирование производительности системы====
==Тест №1 Ubench для Freebsd==
Чем больше число в результате тем лучше\\
cd /usr/ports/benchmarks/ubench && make install
==Тест №2 Простой тест на подсчет числа Пи==
Чем меньше времени тем лучше\\
Скрипт:\\
#!/bin/sh
time echo "scale=5000; 4*a(1)" | bc -l -q
==Тест №3 Unixbench 4.1==
Чем больше число в результате тем лутше
Установка на примере 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
==Тест №4 Производительность жёстких дисков==
# 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)
==== Тестирование системы после установки ====
=== perldeps.pl ===
Скрипт, который проверяет установлены ли все необходимые модули для perl.\\
Умеет устанавливать с помощью нескольких систем сборки:
* Собирать из портов
* pkg
* apt-get
* yum
Для проверки, запускать с ключом ''test''\\
Для установки, запустить с одним из:
* apt-get
* pkg
* port
* yum
=== post-install.sh ===
Скрипт, для проверки модулей Perl и корректности значений файла ''abills/Abills/programs'' \\
* Предложит запустить ''perldeps.pl'', если есть неустановленные модули.\\
* Проверяет переменные и файлы описанные в внутренних масивах.\\
* Предлагает команды для исправления ошибок, если это возможно.\\
* Проверяет соединение с базой.