Здесь вы можете найти ответы на самые часто задаваемые вопросы.
Версия FAQ: 26.12.2018
Общие вопросы
Как получить справку по функциям веб интерфейса?
Можно нажать кнопку подсказки и получить информацию по открытой странице интерфейса
Почему https запросы не редиректятся на страницу заглушки?
https запросы отличаются от http тем, что сначала устанавливается шифрованное соединение точка точка, а только потом идёт трафик. Если абонент пытается установить шифрованное соединение с google.com то, соответственно, при предложении установить соединение с сайтом rogakopyta.com браузер откинет соединение как невалидное или как попытку подмены соединения.
Почему для вебинтерфейса используется порт 9443?
9443 порт используется для более гибкой схемы фильтрации трафика. Например: на 80 порту сайт провайдера, а на 9443 билинг закрытый с интернета 9443 - должен быть шифрованным, Если для сервисов нужен не шифрованный порт используйте 8443.
Примеры конфигурации в /usr/abills/misc/apache/
Первичная диагностика
Если у вас ошибка, проблема, неправильная работа программы в *nix, первым делом смотрим логи. в отдельном окне (сессии, панели tmux
| screen
):
tail -f -10 xxx/xxx/xxx
где xxx/xxx/xxx
- файл лога программы, которая неправильно работает.
/var/log/httpd/abills-error.log - лог Web-сервера (Возможно у Вас лог в другом месте, если не придерживались инструкции);
/var/log/accel-ppp/accel-ppp.log - лог accel-ppp;
/var/log/radius.log - лог freeradius (Рекомендуется запускать радиус в режиме отладки
radiusd -X
);/var/log/mpd.log - лог mpd.
После повторяем действия, которые приводят к ошибке (запуск, подключение и т.д.).
Смотрим лог, если непонятная ошибка, копируем часть строки ошибки, делаем поиск по wiki (строка поиска сверху в правом углу).
Если ничего не найдено, делаем поиск по форуму или в Google.
Обрыв сессий 1-го числа в 00:00:00
Билиинг завершает учётный период.
При подключении абонента система передаёт также параметр максимальной длинны сессии, она должна быть не дольше, чем до конца месяца.
Для отключения данной функции можно внести в радиус пары сервера доступа (Настройка>Сервер доступа).
!Session-Timeout=0
Чтобы использовать большие буквы в логине
/usr/abills/libexec/config.pl
$conf{USERNAMEREGEXP}="^[A-Za-z0-9_][A-za-z0-9_-]*\$";
Обнуление пароля администратора
MySQL:
UPDATE admins SET password=ENCODE('new_pass', 'test12345678901234567890') WHERE aid=1;
где test12345678901234567890 - переменная config.pl:$conf{secretkey}.
Как перевести интерфейс с cp1251 на другую кодировку.
Пример перевода Unicode
/usr/abills/libexec/config.pl
$conf{dbcharset}='utf8'; $conf{MAIL_CHARSET}='utf8'; $conf{default_language}='russian'; $conf{default_charset}='utf-8';
Перекодировка словарей
!/bin/sh ICONV="iconv"; BASE_CHARSET="cp1251"; OUTPUT_CHARSET="utf8"; Convert lang files ${FIND} ${WRKSRC}/language -name "*.pl" -type f -exec ${ICONV} -f${BASE_CHARSET} -t${OUTPUT_CHARSET} {} -o{}.bak `mv {}.bak {}` \; Convert modules lang files ${FIND} ${WRKSRC}/language -name "lng*.pl" -type f -exec ${ICONV} -f${BASE_CHARSET} -t${OUTPUT_CHARSET} {} -o{}.bak `mv {}.bak {}` \;
Маскарадинг
Linux
Проверяем наличие вкомпилированной поддержки
sysctl net.ipv4.conf.all.forwarding net.ipv4.conf.all.forwarding = 1
Если не включён включаем
sysctl -w net.ipv4.conf.all.forwarding=1
Включаем маскарадинг
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source your_real_ip
192.168.0.0/24 - ваша внутренняя сеть
your_real_ip - IP, через который все будет ходить
FreeBSD
Собрать ядро с опциями
options IPFIREWALL options DUMMYNET
/etc/rc.conf
gateway_enable="YES" firewall_enable="YES" firewall_type="OPEN" natd_enable="YES" natd_interface="fxp0" natd_flags=""
fxp0 - инерфейс смотрящий в мир.
Перезапуск сетевых сервисов
/etc/netstart
Как загрузить бекап в базу?
cd abills/backup gzip -d backup_file.tgz mysql -D abills < backup_file
Возможности
Как анализировать логи из удалённого NAS?
В конфигурационном файле прописать команду отображения файла с удалённого хоста.
Например
$conf{SHARING_APACHE_ERROR_LOG}='cat /usr/local/apache2/logs/error_log';
заменить на
$conf{SHARING_APACHE_ERROR_LOG}='ssh -o StrictHostKeyChecking=no '. ' -i /usr/Certs/id_rsa.asm asm@remote.host '. ' "cat /usr/local/apache2/logs/error_log" |';
На основном сервере создайте сертификат для пользователя удалённого NAS (в данном случае asm)
/usr/abills/misc/certs_create.sh ssh asm
и поместите публичный ключ /usr/abills/Certs/id_rsa.asm.pub в файл /home/asm/.ssh/authorized_keys на удалённом сервере.
Нужно учитывать, что если у Вас очень большой файл логов, то желательно вместо команды 'cat' использовать 'tail -1000'
Таким же способом можно выполнять команды на удалённом NAS.
Можно ли всем NAS'ам дать один блок адресов?
Да, можно.
Чтобы один пул раздавался между несколькими серверами доступа нужно настроить ospf между ними и маршрутизатором.
Activation / Expire
Activation - Дата активизации аккаунта. Если значения не равно 0000-00-00, то пользователя будет пускать только в том случае, если дата подключения равна или больше даты активизации.
Expire - дата окончания работы аккаунта. Если поле не равно 0000-00-00, то пользователя будет пускать только до даты окончания.
Абонплата
В системе предусмотрено два вида абонплаты: дневная, месячная. Для снятия абон. платы Вам нужно в /etc/crontab внести
1 0 * * * root /usr/abills/libexec/periodic daily 1 0 * * * root /usr/abills/libexec/periodic monthly
Дневная - снимается каждый день.
Месячная - снимается раз в месяц. Абонплата снимается каждого месяца 1 числа.
Если в поле Activation указанное значение не равно 0000-00-00, то абонплата снимается через 31 день после указанной даты и, после снятия денег, устанавливается в текущую дату.
Как отключить снятие средств первого января и включить пятого числа за первое января?
Перед первым января комментируете в /etc/crontab периодические процессы списания.
5 января запускаете периодические процессы с консоли указав дату списания
/usr/abills/libexec/periodic daily DATE='2018-01-01' /usr/abills/libexec/periodic monthly DATE='2018-01-01'
Если используется распределенная абон. плата периодические процессы нужно запустить за все дни от первого до пятого числа, включая пятое.
Запуск изменения тарифов 1 числа.
/usr/abills/libexec/periodic daily SHEDULE=1
Несъемный минимум (Credit Tresshold)
Несъемный минимум при подключении по DialUp и VPN.
Установка и настройка
Веб интерфейс ошибка 500?
Если возникли проблемы с работой веб интерфейса, смотрите лог веб-сервера
/var/log/httpd/abills-error.log
После перезагрузки сервера доступа сессии все еще висят в биллинге?
Если сервер доступа был перезагружен аномально (выключение света), то биллинг не получает запросов от NAS о завершении сессий, и сессии продолжают висеть в журнале активных сессий (Online). Данные сессии биллинг самостоятельно сбросит через 3 Alive периода. Чтобы избежать данной ситуации можно воспользоваться утилитой autozh.pl установив её в автозагрузку сервера доступа. Данная утилита после запуска сервера будет отправлять неактивные сессии в zap.
FreeBSD. Не стартует Radius + rlm_perl при старте системы?
В файле /usr/local/etc/rc.d/radiusd нужно поменять
REQUIRE: NETWORKING SERVERS
на
REQUIRE: NETWORKING SERVERS apache22 mysql
DEBIAN. Первый заход в админку - Account Disabled or Not exist?
У Вас не установлен apache mod_rewrite
a2enmod rewrite /etc/init.d/apache2 force-reload
Кажется настроил, но никто не может подключиться?
Посмотрите в журнал подключений Отчёт> Internet>Ошибка, если заполняется список ошибок можно посмотреть тут Ошибки подключения клиентов. Если записи не появляются переходите к следующему пункту поиска неисправностей.
Запустите радиус в режиме отладки radiusd -X.
При подключении абонента должны появляться запросы авторизации примерно такого вида
rad_recv: Access-Request packet from host 127.0.0.1:25296, id=74, length=167 NAS-Port-Type = Ethernet Acct-Session-Id = 7299999-vlan62-2 Service-Type = Framed-User User-Password = "123456" Tunnel-Client-Endpoint = b8:00:5a:14:30:d5 Tunnel-Client-Auth-Id = 80fb-06c4-9058 NAS-IP-Address = 127.0.0.1 NAS-Port-Id = vlan62 ADSL-Agent-Remote-Id = 80fb-06c4-9058 Tunnel-Medium-Type = IEEE-802 Calling-Station-Id = b8:00:5a:14:30:d5 Framed-Protocol = PPP User-Name = test NAS-Port = 2 mpd-link = vlan62-2
Если никакие данные не поступают, значит сервер доступа был настроен не корректно или на нём не прописаны данные авторизации через Radius.
Если данные поступают, но в биллинге Вы их не видите, значит не корректно настроен RADIUS.
скорее всего секция raddb/sites-enabled/ . В данном каталоге должен быть только файл abills_default
Радиус показывает такой ответ
Ignoring request to authentication address * port 1812 from unknown client 192.168.0.109 port 22777
сервер доступа c IP 192.168.0.109 не заведён в raddb/clients.conf.
Просмотрите лог ошибок сервера доступа на предмет ошибок или предупреждений
MPD
/var/log/mpd.log
Mikrotik
В Winbox пункт **Log**
Accel-IPoE
/var/log/accel-ppp
Подключил словарь к радиусу, но радиус все равно не видит параметров?
После $INCLUDE разделитель табуляция.
При подключении к серверу, после стадии проверки данных юзера идёт обрыв соединения, хотя в логе abills.log пишет всё ок
'03:46:27 LOG_INFO: AUTH [myrka] NAS: 3 (192.168.10.1) GT: 0.24659'
Если используете Exppp или стандартный FreeBSD ppp проверьте лог /var/log/ppp.log. Скорее всего установлен NAS exppp, а в radius словарь не внесены для него атрибуты. см. Exppp
ExPPP Трафик не считается как Ext_in, EXT_out
Посмотреть передаётся ли информация о подсетях для exppp
/var/log/ppp.log
Apr 16 11:18:55 nacho ppp[66019]: Phase: IP table '/usr/abills/cgi-bin/admin/nets/7.nets'
ExPPP + poptop не работает MAC авторизация.
Установка PopTop
Все операции проводим от пользователя root.
cd /usr/ports/net/poptop/ make patch
Копируем патч (http://www.opennet.ru/soft/vpn/pptpctrl.patch) в каталог: /usr/ports/net/poptop/work/poptop-1.1.4/ и далее:
cd /usr/ports/net/poptop/work/poptop-1.1.4 patch < pptpctrl.patch
Hmm... Looks like a new-style context diff to me... The text leading up to this was: -------------------------- |*** pptpctrl.c.orig Wed Jul 16 14:51:40 2003 |--- pptpctrl.c Mon Jul 14 15:51:35 2003 -------------------------- Patching file pptpctrl.c using Plan A... Hunk #1 succeeded at 388. done
cd ../.. make install make clean cp /usr/local/etc/pptpd.conf.sample /usr/local/etc/pptpd.conf mv /usr/local/etc/rc.d/pptpd.sh.sample /usr/local/etc/rc.d/pptpd.s
И запускаем poptop
/usr/local/etc/rc.d/pptpd.sh start
MPD + Windows XP рваный пинг
set pptp disable windowing
Cisco не понимает Session-Timeout
В конфигурации обязательно должна присутствовать строка такого вида без изменений
aaa authorization network default group radius if-authenticated
Зависла сессия
Мониторинг>Интернет+
(Z) - Zap | Закончить зависшую сессию и посчитать деньги |
---|
FreeBSD Поднятие скорости шейпера DUMMYNET
/etc/sysctl.conf
net.inet.ip.fw.enable=1 логическая (булева) переменная (значения 0 и 1). - показывает, включено ли использование firewall в текущий момент. Позволяет включать и выключать firewall в любой момент времени.
net.inet.ip.fw.autoinc_step
Целочисленная переменная. Задает шаг автоматического превращения номеров правил firewall при вводе без принудительного указания номера
net.inet.ip.fw.verbose net.inet.ip.fw.verbose_limit
Аналогичны соответствующим опциям ядра
net.inet.ip.fw.one_pass
Логическая переменная. При ее установки в 0 пакет, выходящий из dummynet, продолжит свое путешествие по правилам firewall. В противном случае pipe действует, как allow. Значение по умолчанию - 1.
net.inet.ip.dummynet.hash_size=1024
Целочисленная переменная. Соответствует размеру хэш-таблицы, используемой dummynet для хранения очередей. Увеличение этого значение ускоряет работу dummynet при большом количестве очередей, естественно, в обмен на оперативную память. Значение по умолчанию - 64.
net.inet.ip.dummynet.expire
Логическая переменная. При установке в 1 очереди dummynet удаляются через некоторое время после того, как через них перестали «бегать» пакеты. В противном случае, очереди удаляются только при нехватке памяти для размещения новых. Значение по умолчанию - 1. Имеет смысл выставлять в 0, если Ваш сервер обслуживает несколько крупных потребителей трафика, постоянно находящихся в режиме on-line - в этом случае кратковременное прекращение активности потребителя не должно вызывать удаления его очереди, чтобы не тратить времени на ее создание заново при появлении потребителя. В случае множества мелких потребителей, подключающихся и отключающихся от сети на длительный срок имеет смысл освобождать ресурсы, чтобы ускорить работу dummynet за счет меньшей таблицы очередей.
net.inet.ip.dummynet.io_fast=1 режим шейпинга вместо эмуляции медленного соединения
net.inet.ip.dummynet.max_chain_len=1024
Целочисленная переменная, значение по умолчанию - 16. Количество очередей, способных одновременно храниться в одной ячейке хэш-таблицы. При превышении этого значение пустые очереди удаляются. (или те, которым меньше всего повезло).
net.inet.ip.fastforwarding=1
net.inet.ip.fw.dyn_keepalive
Булева переменная. Заставляет генерировать «поддерживающие» пакеты (keep-alive) для tcp-соединений, обрабатываемых динамическими правилами keep-state. Установка в 1 понижает вероятность прерывания tcp-соединения по таймауту, но генерирует лишний трафик. Значение по умолчанию - 1.
net.inet.ip.fw.dyn_max
Целочисленная переменная. Максимальное количество одновременно существующих динамических правил. Значение по умолчанию - 8192.
Проверка активности PPTP и PPPOE
PPTP
tcpdump -i em0 port 1723
PPPOE
tcpdump -i em0 -n not ip
или
tcpdump -i em0 -n ether proto 0x8863 '||' ether proto 0x8864
Internal server error
Internal Server Error
«The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, you@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.»
В большинстве случаев корни такой ошибки надо искать в логах апача.
/var/log/httpd/abills-error.log
Ошибки
Не отображаются ошибки подключения в 0.7 версии биллинга
В 0.7 версии были изменены конфигурационные файлы Freeradius. Обновите их,
cp /usr/abills/misc/freeradius/v2/default_rlm_perl /usr/local/etc/raddb/sites-enabled/abills_default
перезагрузить радиус.
ngctl: recv msg: No buffer space available
Есть некоторые моменты, которые следует учесть, если ваш сервер имеет большое количество соединений. Например, можно столкнуться с ситуацией, когда при выводе команды ngctl list будет выдаваться No buffer space available. Чтобы этого избежать следует добавить в /boot/loader.conf:
kern.ipc.nmbclusters=16384 kern.ipc.maxsockets=16384 net.graph.maxalloc=2048 kern.maxusers=512 kern.ipc.maxpipekva=32000000
в /etc/sysctl.conf:
net.graph.maxdgram=128000 net.graph.recvspace=128000
Обрыв сессии ровно через 00:37:30 минут
В этом виноват протокол передачи данных, у него это в голове зашито, что если данные не идут, то что бы не портить ничего, отключать интерфейс, это проверка на существование канала связи между пользователем и сервером и, если сервер видит, что трафик туда вообще не идет за определенный промежуток времени, он вешает трубку, если идет, то он оставляет все как есть.
В детализации сессии для таких сессий есть причина сброса указывается User-Request
см. также Статистика