====== UHW aka Unknown HardWare helper ======
В Ubilling починаючи з версії 0.3.1 з'явився сервіс, що дає змогу значно спростити життя під час використання авторизації IP+MAC і роздачі адрес абонентам за допомогою DHCP. Сам сервіс знаходиться в дистрибутиві Ubilling у каталозі /docs/uhw. Суть "спрощення життя" зводитися до того, що користувач, який купив собі роутер, поміняв мережеву карту, притягнув додому ноутбук, при спробі зайти на будь-який сайт, замість улюбленого сайту буде споглядати таку картину:\\
\\
{{:uhw.png?300 |}}
{{:uhw2.png?300 |}}
{{:uhw3.png?300 |}}
===== Встановлення та налаштування =====
Невідомим MAC DHCP має видавати адреси зі службової підмережі, яка не має доступу до інтернету і для якої має проводитися заворот на домен нашого сервісу.
1. Додаємо мережу невідомих пристроїв до шаблону головного конфіга dhcpd у Ubilling **/config/dhcp/global.template** після секції {SUBNETS}:
###### Unknown users network
subnet 172.31.0.0 netmask 255.255.240.0 {
default-lease-time 3600;
option domain-name "isp";
option subnet-mask 255.255.240.0;
option domain-name-servers 172.31.0.1;
option routers 172.31.0.1;
range 172.31.0.100 172.31.0.254;
}
2. Переконуємося, що на інтерфейсі, який дивиться на абонентів, призначено відповідний alias у **/etc/rc.conf**:
ifconfig_em0_alias0="inet 172.31.0.1 netmask 255.255.240.0"
3. Додаємо заворот на себе, для цієї підмережі у **/etc/firewall.conf**:
#unknown users redirect
${FwCMD} add 5 fwd 127.0.0.1,80 ip from 172.31.0.0/20 to not me dst-port 80
4. Встановлюємо JavaScript редирект із замовчуваного VirtualHost на URL, де розташований UHW, у **/usr/local/www/apache24/data/index.php**:
(А ніхто до речі не забороняє підняти собі окремий VirtualHost для цього сервісу, скажімо uhw.isp і прописати його собі в локальну зону).
5. Для того, щоб заворот працював для відмінних від "/" посилань, за якими ходить користувач, слід додати таку річ у **/usr/local/www/apache24/data/.htaccess**:
ErrorDocument 404 /index.php
6. Забираємо uhw з дистрибутива Ubilling у відповідне місце:\\
# cp -R docs/uhw /usr/local/www/apache24/data/
7. Прописуємо відповідні налаштування у **/usr/local/www/apache24/data/uhw/config/mysql.ini**:
;Сервер БД
server = "localhost"
;Порт БД
port = "3306"
;Користувач
username = "mylogin"
;Пароль користувача
password = "newpassword"
;БД Ubilling
db = "stg"
character = "UTF8"
prefix = "billing"
8. Редагуємо відповідно до наших реалій конфіг **/usr/local/www/apache24/data/uhw/config/uhw.ini**:
;
; Налаштування ISP і мережеві опції
;
;Чи запитувати в користувача логін, чи орієнтуватися тільки за паролем?
USE_LOGIN=0
; Назва ISP
ISP_NAME="Роги&Копита"
; URL сайта ISP
ISP_URL="http://ubilling.net.ua"
; Логотип ISP (може бути шляхом або URL)
ISP_LOGO="images/logo.png"
; Маска IP підмережі невідомих користувачів
UNKNOWN_MASK="172.31."
UNKNOWN_LEASE="DHCPACK on "
; Ховати точки в MAC
HIDE_DOTS=1
; Показувати стільки-то останніх символів MAC користувачеві (0 - без обрізки)
SHOW_MAC_SIZE=4
; Шляхи до необхідного ПЗ
SUDO_PATH="/usr/local/bin/sudo"
CAT_PATH="/bin/cat"
GREP_PATH="/usr/bin/grep"
TAIL_PATH="/usr/bin/tail"
; За цим шляхом, будуть шукатись рядки з парами IP + MAC користувача.
LOG_PATH="/var/log/dhcpd.log"
;
; Налаштування локалізації та сповіщень, сподіваємося тут усе зрозуміло
;
; Заголовок сторінки
TITLE="Невідоме обладнання"
; Підзаголовок сторінки
SUB_TITLE="Вибачте, ви використовуєте невідоме нам обладнання";
SUP_PHONES="12345 або 54321"
SUP_DESC="Час роботи служби техпідтримки"
SUP_DAYS="понеділок-субота"
SUP_TIME="с 09:00 до 18:00"
CALL_US="Будь ласка, зателефонуйте нам за номером"
SUP_ACTIVATE="для того, щоб активувати ваше поточне обладнання для роботи в мережі."
SUP_REQUIRE="Вам необхідно буде продиктувати службі техпідтримки адресу проживання, ваші П.І.Б. і наступний набір літер або цифр виділених червоним кольором:"
SUP_SELFACT="Самостійна активація"
SUP_PASS="Пароль користувача"
SUP_PASSNOTICE="Пароль користувача НЕ є червоними літерами і цифрами які ви бачите на цій сторінці, дізнатися його ви можете зі свого договору. Він є конфіденційною інформацією, не довіряйте його нікому. Не забудьте перезавантажити ваше обладнання після активації, для отримання нових налаштувань."
SUP_ACTIVATE_QUERY="Активувати моє поточне обладнання"
SUP_MACEXISTS="...Ой, ваше обладнання здається вже активоване, перезавантажте його."
SUP_ERROR="Помилка"
SUP_NOMAC="Трапилася дивна помилка, перезавантажте ваше обладнання і спробуйте ще раз."
SUP_WRONGPASS="Ви ввели неправильний пароль, у вас, до речі, не так багато спроб. Зверніть увагу на регістр букв."
SUP_STRANGE="Дивна помилка, її взагалі не могло статися. Зверніться до адміністратора."
SUP_BRUTEERROR="На жаль, ви вичерпали кількість спроб. Самостійна активація неможлива."
SUP_SELFACTDONE="Активація вашого нового обладнання завершена. Не забудьте перезавантажити ваш пристрій, для отримання нових налаштувань."
;
; Опції самоактивації обладнання
;
;Чи ввімкнено самоактивацію взагалі?
SELFACT_ENABLED=1
;Тип поля, в яке користувач повинен вводити свій пароль (text або password)
SELFACT_FIELDTYPE="text"
;Максимальна кількість неправильних спроб введення пароля перед блокуванням самоактивації
SELFACT_BRUTE=3
;Посилання на працюючий Ubilling для виклику функцій віддаленого API (Опція REMOTEAPI_ENABLED=1 в alter.ini)
UBILLING_REMOTE="http://127.0.0.1/billing/"
;Серійний номер вашого Uilling (можна знайти в модулі "Стан системи")
UBILLING_SERIAL="серійний номер вашого Ubilling"
Як видно з конфіга, функціонал "Самоактивації" вмикаємо та вимикаємо. Його використання вимагає наявності ввімкненої опції allow_url_fopen у php.ini, а також дуже ретельного тестування.
====== UHW_MLG ======
При використанні [[multigen|КучаГена]] та авторизації IP+MAC і роздачі адрес абонентам за допомогою DHCP. Сам сервіс знаходиться в дистрибутиві Ubilling у каталозі /docs/uhw_mlg.
===== UHW_MLG Вам потрібен, якщо: =====
- Сконфігуровано [[multigen|КучаГен]].
- У ролі DHCP сервера виступає NAS/BRAS
- Ваш NAS/BRAS шле radius accounting
- [[mgdefauth|У вас є дефолтна авторизація для невідомих абонентів]]
===== Встановлення та налаштування =====
Робимо все як у прикладі вище з деякими винятками:
* Пропускаємо пункт 1
* Пункт два більше відноситься до того як ви будете перенаправляти невідоме вам обладнання
* У конфігураційному файлі uhw.ini правильно вказати MAC_FIELD
===== Корисні опції =====
- [[alteriniconf|alter.ini]]: NMLEASES = /var/log/radius.log
- alter.ini: NMLEASES_EXTEND=1