====== 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