System prostej konfiguracji
Ostatnia zmiana: 2017-12-08 06:48

Dawno temu powstał projekt "Szybka konfiguracja" którego celem miała być prosta konfiguracja podstawowych elementów systemu. Projekt ten został porzucony dawno temu przeze mnie; następstwem eksperymentów z własnym system był kolejny projekt "Dysk bezprzewodowy" który automatyzował większość czynności związanych z połączeniem internetowym. Obecnie projekty te zostały zastąpione programem easyconfig którego celem jest to samo co poprzednich projektów - konfiguracja podstawowych elementów systemu. Easyconfig w postaci obrazów MiFi używany jest przeze mnie z powodzeniem na małych/mobilnych routerach których zadaniem jest udostępnienie internetu np. przez modem komórkowy na USB, gdzie priorytetem jest szybkość i łatwość konfiguracji takiego połączenia internetowego.

Easyconfig może być jedynym środowiskiem graficznym (gui) zainstalowanym na routerze, ale może także współistnieć także wraz z innymi GUI (jak LuCI czy Gargoyle). Wykorzystuje elementy dostępne standardowo w OpenWrt/LEDE, nie pobiera online elementów niezbędnych do działania.

Dostęp do systemu:
- jeżeli jest jedynym gui: http://ip-lub-nazwa-routera, np: http://192.168.1.1
- jeżeli jest dodatkowym elementem systemu: http://ip-lub-nazwa-routera/easyconfig.html, np. http://192.168.1.1/easyconfig.html

Jeżeli serwer http pracuje na innym porcie należy odpowiednio dostosować adres wywołania.

Easyconfig do działania wymaga serwera uhttpd i korzysta z wywołań rpc/ubus. Napisany został z wykorzystaniem frameworka bootstrap, ale z powodu przyjętych założeń (minimalna wielkość pakietu) jest to wersja pozbawiona niektórych elementów, nie korzysta także z jquery.

Obsługa

Po wczytaniu strony pojawi się ekran logowania. Aby zalogować się do systemu należy podać hasło użytkownika root. System podzielony jest na kilka podstron, do których dostęp możliwy przez wybranie odpowiednich opcji z menu. Poszczególne elementy na stronach podzielone są tematycznie w sekcje których opisy można znaleźć poniżej. System został zaprojektowany do obsługi na małych ekranach (np. smartfonów), z tego też powodu wykorzystane zostały duże elementy wyboru czy przełączania opcji. Odświeżenie strony powoduje wylogowanie i konieczność ponownego zalogowania się. Czas bezczynności sesji po której użytkownik musi się ponownie zalogować wynosi 5 minut. Interfejs dostępny jest tylko w języku polskim.
Niektóre elementy interfejsu wyświetlane są na niebiesko, kliknięcie ich powoduje wykonanie określonej czynności w zależności od kontekstu - przejście do szczegółów, sortowanie lub wyświetlenie hasła. Elementy wyświetlane na czerwono są ostrzeżeniami.





Przykładowy wygląd stron na urządzeniu mobilnym

Wygląd stron zależy od wielkości ekranu urządzenia.

Zakładka "Status"

Modem

Wyświetla podstawowe informacje o parametrach modemu komórkowego: nazwa operatora, poziom sygnału, technologia połączenia oraz status karty SIM. Sekcja wyświetlana jest w przypadku wybrania połączenia internetowego "Modem USB" typu "RAS", "QMI" lub "NCM".



Słupkowy wskaźnik poziomu podzielony jest na pięć części odpowiadających odpowiednio 0 do 20%, do 40%, do 60%, do 80% oraz do 100% sygnału.

Internet

Ogólne parametry połączenia internetowego: ile razy wznowiono połączenie z internetem, czas trwania sesji, ilość danych wysłanych i pobranych w ramach bieżącego połączenia, bieżący adres IP. Sekcja wyświetlana tylko w przypadku wyboru jakiegoś typu podłączenia internetowego.



Liczba uruchomień połączenia z internetem pozwala na prostą diagnostykę jakości połączenia.

Wi-Fi

Zawiera informację o liczbie połączonych klientów bezprzewodowych. Kliknięcie na liczbę powoduje przejście do zakładki wyświetlającej szczegółową listę połączeń.



System

Podstawowe bieżące informacje o systemie: obciążenie (1m / 5m / 15m), czas działania systemu oraz bieżąca data i czas (o ile urządzenie zsynchronizowało czas).



Zakładka "Ustawienia"

Internet

Umożliwia wybranie typu połączenia internetowego. Liczba opcji uzależniona jest od wykrytych interfejsów przewodowych i podłączonego modelu modemu na usb:
- brak (bez połączenia internetowego)
- statyczny adres IP (dane wprowadzone ręcznie)
- dynamiczny adres IP (dane uzyskane z DHCP)
- Modem USB - typ połączenia z wykorzystaniem protokołu ppp
- Modem USB - typ połączenia z wykorzystaniem protokołu QMI
- Modem USB - typ połączenia z wykorzystaniem protokołu NCM
- Modem USB - typu HiLink lub RNDIS

Dla niektórych typów połączenia możliwe jest także ustawienie innych serwerów DNS.


Przykładowa zawartość sekcji dla typu połączenia Modem USB (QMI)

Jedna z opcji umożliwia automatyczne wykrycie typu połączenia. Po jej wybraniu następuje próba sprawdzenia dostępnych typów, w tym czasie połączenie z internetem może nie być dostępne. Dla modemów USB może istnieć potrzeba wprowadzenia poprawnego interfejsu komunikacyjnego.

W przypadku wybrania konkretnego typu połączenia istnieje możliwość określenia adresu urządzenia w strefie DMZ (na którego zostaną przekierowane wszystkie porty wejściowe). Dla połączeń internetowych z wykorzystaniem modemu USB wymagane jest wykupienie odpowiedniej usługi w planie abonamentowym aby działało przekierowanie portów.



Sieć lokalna

Adresacja wewnętrzna urządzenia, możliwość włączenia/wyłączenia serwera DHCP w sieci lokalnej (wykorzystywanego do przydzielania adresów dla połączonych klientów) oraz włączenie logowania zapytań DNS (patrz zakładkę Zapytania DNS).



Wi-Fi

Daje możliwość włączenia Wi-Fi, ustawienia nazwy sieci, kanału, sposobu zabezpieczenia sieci oraz włączenia izolacji klientów bezprzewodowych. Ilość sekcji uzależniona jest od ilości wykrytych interfejsów; dla routerów dwupasmowych wyświetlane są sekcje dla obu pasm. Obsługiwany jest tylko tryb AP.



System

Daje możliwość zmiany hasła oraz ustawienia nazwy systemu.



Dodatkowo, jeżeli został zainstalowany pakiet ekooneplstat, pojawia się możliwości włączenia statystyk oraz link do ich podglądu dla danego routera.



Zakładka "System"

System

Podstawowe informacje o systemie: model routera, wersja GUI (easyconfig), wersja oprogramowania systemowego oraz możliwość zrestartowania urządzenia



Pozostałe zakładki

Monitor połączenia

Tester połączenia bazujący na metodzie badania pingów do podanego adresu. Należy podać opóźnienie po starcie systemu przed uruchomieniem monitora, adres IP lub nazwę domenową urządzenia które ma być monitorowane, okres sprawdzania, liczbę nieudanych sprawdzeń przed wykonaniem akcji oraz wykonywaną akcję w przypadku problemów z połączeniem. Monitor połączenia może być aktywowany tylko jeżeli ustawione jest połączenie z internetem.



Monitor cyklicznie (co podany "Okres sprawdzenia" w przedziałach minutowych) robi kilka pingów do adresu określonego w polu "Adres lub nazwa". Jeżeli nie będzie odpowiedzi z tego adresu i powtórzyło się to tyle razy ile mamy określone w polu "Liczba nieudanych sprawdzeń" to nastąpi wykonanie czynności podanej w polu "Akcja" - ponownie nawiązanie połączenia z internetem lub restart całego urządzenia. Zaleca się użycie adresu domenowego zamiast adresu IP - gdyż umożliwia to także monitorowanie poprawności działania dnsów. Pole "Opóźnienie na starcie systemu" określa po jakim czasie zaczyna działać monitor połączenia - przydatne jeżeli nawiązanie połączenia z internetem wymaga dłuższego okresu czasu.

Przykłady ustawień:

  • chcemy monitorować co minutę dostępność połączenia internetowego i resetować urządzenie natychmiast jeżeli nie ma tego połączenia. Ustawiamy:
- "Opóźnienie przy starcie systemu": 3
- "Adres lub nazwa": google.com
- "Okres sprawdzania": 1
- "Liczba nieudanych sprawdzeń": 1
- "Akcja": "Ponowne uruchomienie urządzenia"
W tym przypadku pingowany jest adres "google.com" co minutę. Jeżeli nie będzie odpowiedzi od google to nastąpi restart całego urządzenia.


  • mamy słabe łącze komórkowe które często "przerywa" pingi i chcemy wznowić połączenie jeżeli nie ma dostępu do internetu przez co najmniej 10 minut. Ustawiamy:
- "Opóźnienie przy starcie systemu": 3
- "Adres lub nazwa": google.com
- "Okres sprawdzania": 1
- "Liczba nieudanych sprawdzeń": 10
- "Akcja": "Restart połączenia z internetem"
W tym przypadku pingowany jest adres "google.com" co minutę. Jeżeli nie będzie odpowiedzi od google przez 10 kolejnych sprawdzeń to nastąpi próba ponownego nawiązania połączenia z internetem.

Sieci Wi-Fi

Pozwala na wyświetlenie listy dostępnych sieci bezprzewodowych; wynik skanowania można posortować po kilku parametrach.



Skan sieci wykonywany jest na wszystkich dostępnych interfejsach bezprzewodowych. Pokazywane są sieci Wi-Fi widoczne w ciągu ostatnich 3 minut. Moduł wykrywa inne AP o takiej samej nazwie jaka jest ustawiona w systemie i wyświetla stosowane ostrzeżenie.
Lista sieci Wi-Fi wykorzystywana jest także do pokazania procentowego wykorzystania poszczególnych kanałów Wi-Fi.



Należy pamiętać że w zależności od trybu pracy sieci Wi-Fi mogą także rozgłaszać się na innych kanałach.

Klienci

Podaje informacje o połączonych klientach bezprzewodowych, przybliżoną ilość danych wysłanych i pobranych w ramach bieżącego połączenia oraz procentowy udział w ruchu, który wyliczany jest na podstawie sumy transferów aktualnie połączonych klientów bezprzewodowych.



Wybranie "blokuj" umożliwia zablokowanie dostępu do internetu dla wskazanego klienta. Blokada zakładana jest na podstawie adresu MAC urządzenia, nie jest zapisywana na stałe w systemie i obowiązuje do restartu routera. W oknie wyświetlane są także dodatkowe informację związane z połączonym klientem, które mogą pomóc w pojęciu decyzji o blokadzie klienta.

Klikając na nazwę urządzenia można zmienić jego nazwę na bardziej czytelną (np. z android-72e5ac2b2e022bdf na tablet służbowy - zmieniany jest opis, nie nazwa hosta w sieci).

Zakładka zawiera także informacje o połączeniach i rozłączeniach klientów bezprzewodowych. Dane pobierane są z logu systemowego.



Zapytania DNS

Wyświetla listę domen (nie kompletnych adresów URL!) o które został zapytany serwer nazw. Wyświetlane tylko jeżeli została włączona opcja "Logowanie zapytań DNS" w sekcji "Sieć lokalna" zakładki "Ustawienia". Dane pobierane są z logu systemowego.



Transfer

Liczniki transferu łącznego z i do internetu.



Wyświetlanie są następujące podsumowania:
- ilość przetransferowanych danych w bieżącym dniu
- ilość przetransferowanych danych w poprzednim dniu
- ilość przetransferowanych danych w ciągu ostatnich 7 dni (bez dnia bieżącego)
- ilość przetransferowanych danych w ciągu ostatnich 30 dni (bez dnia bieżącego)
- łączna ilość przetransferowanych danych
- ilość przetransferowanych danych w bieżącym okresie rozliczeniowym (łącznie z dniem rozpoczęcia okresu oraz dniem bieżącym)
- ilość przetransferowanych danych w poprzednim okresie rozliczeniowym

Ustawienia obejmują możliwość włączenia/wyłączenia zbierania statystyk transferu, ustawienia okresu co jaki czas dane będą zapisywane do pamięci routera oraz możliwość wyboru początku dnia okresu rozliczeniowego.



Wyliczenia transferu mogą różnić się od wskazań operatora.
Wyłączenie urządzenia może powodować utratę bieżących danych.
Dane odczytywane są raz na minutę z interfejsu wan. Przechowywane są w pamięci ram a co określony czas są kompresowane i kopiowane do pamięci flash routera. Zbyt częste zapisywanie danych może prowadzić do nadmiernego zużycia pamięci flash routera.

Możliwe jest także włączenie ostrzeżenia na dzień lub cały okres rozliczeniowy. Przekroczenie ustawionego limitu sygnalizowane jest czerwonym napisem w danym podsumowaniu transferu.



Włączenie ostrzeżenia powoduje wyświetlenie paska postępu zużycia transferu.



USSD / SMS

Zakładka wyświetlana jest tylko jeżeli jest zainstalowany program sms_tool oraz w przypadku wybrania połączenia internetowego "Modem USB" typu "RAS", "QMI" lub "NCM". Pozwala na:
- wysłanie kodu USSD i odczyt wyniku
- wysłania wiadomości SMS
- skasowania wybranej wiadomości



- odczytu wiadomości SMS



Numer telefonu w wysyłanej wiadomości SMS musi być poprzedzony prefiksem kraju (dla Polski: 48), bez znaku "+". Tekst wiadomości nie może być dłuższy niż 80 do 160 znaków (zależy od używanych znaków specjalnych). Z powodu ograniczeń zastosowanego narzędzia do wysyłania SMSów polskie znaki narodowe są zamieniane na ich odpowiedniki ASCII. Można wysłać wiadomość tylko do jednego odbiorcy na raz. Usługa działa tylko z modemami wyposażonymi w interfejs szeregowy (nie Hilink).

Instalacja pakietu

Pakiet dostępny jest w moim repozytorium LEDE. Wymagane jest ok 250KB wolnej przestrzeni flash oraz miejsce na niezbędne zależności jeżeli nie ma ich jeszcze w systemie. Instalacja:


    # opkg update
    # opkg install easyconfig

Pliki instalowane są m.in. w katalogach /www oraz /www/easyconfig. Do działania niezbędny jest także serwer uhttpd (jeżeli nie został zainstalowany wcześniej):


    # opkg install uhttpd
    # /etc/init.d/uhttpd enable

Należy upewnić się, że w konfiguracji serwera uhttpd znajduje się opcja ubus_prefix oraz że serwer udostępnia pliki z katalogu /www, np:


    # uci set uhttpd.main.ubus_prefix=/ubus
    # uci set uhttpd.main.home='/www'
    # uci commit uhttpd

przy założeniu że udostępnianiem stron www zajmuje się demon z sekcji main. Po instalacji należy zrestartować odpowiednie programy systemowe:


    # /etc/init.d/rpcd restart
    # /etc/init.d/uhttpd restart

Do obsługi modemów USB potrzebne są odpowiednie sterowniki:


    # opkg install chat comgt-ncm comgt uqmi usb-modeswitch
    # opkg install kmod-usb-net-cdc-ether kmod-usb-net-cdc-ncm kmod-usb-net-huawei-cdc-ncm
    # opkg install kmod-usb-net-qmi-wwan kmod-usb-net-sierrawireless kmod-usb-net-rndis
    # opkg install kmod-usb-serial-wwan kmod-usb-serial
    # opkg install kmod-usb-serial-option kmod-usb-serial-qualcomm kmod-usb-serial-sierrawireless

Jeżeli używany jest tylko jeden modem to można zainstalować tylko pakiety niezbędne do obsługi tego modemu.
Do obsługi kodów USSD i wiadomości SMS niezbędny jest pakiet sms_tool:


    # opkg install sms_tool

Do obsługi statystyk routera niezbędny jest pakiet ekooneplstat:


    # opkg install ekooneplstat

Dane ze statystykami transferu przechowywane są w pliku /usr/lib/easyconfig/easyconfig_traffic.txt.gz
Dane z nazwami klientów bezprzewodowymi zawarte są w pliku /etc/config/dhcp

Ustawienia

Większość z ustawień własnych easyconfig zawarta jest w pliku /etc/config/easyconfig. Niektóre z nich nie są dostępne do ustawienia z gui i modyfikują zachowanie dodatkowych programów współpracujących z easyconfig.

Odczyt danych z modemu

Odczytem parametrów pracy modemu zajmuje się program 3ginfo-lite. Jeżeli używamy modemu obsługiwanego przez protokół QMI możliwe jest wymuszenie odczytu parametrów korzystając z programu uqmi. Wykonuje się to poleceniem:


    # uci set easyconfig.modem.use_uqmi='1'

Interfejs szeregowy z którego odczytywane są dane jest wykrywany automatycznie przez wspomniany program 3ginfo-lite. Jest on także używany do wysyłania kodów USSD i obsługi wiadomości SMS. Jeżeli z jakiegoś powodu istnieje potrzeba zmiany interfejsu (mamy inne modemy, automatyczna detekcja nie zadziałała lub modem ma kilka interfejsów i chcemy użyć innego) można to wymusić poleceniem:


    # uci set 3ginfo.@3ginfo[0].device=/dev/ttyUSB1

Podając konkretny interfejs dostępny w systemie.
Po zmianie parametrów należy zapisać zmiany:


    # uci commit

USSD

W zależności od zastosowanego modemu USB może zaistnieć potrzeba wymuszenia wysyłania kodów USSD czystym tekstem lub odbieranie wyników bez dekodowania PDU. Decydują o tym dwie opcje.


    # uci set easyconfig.ussd.raw_input='1'

Wymusza wysyłanie kodu USSD do modemu czystym tekstem bez przekodowywania na format PDU.


    # uci set easyconfig.ussd.raw_output='1'

Wymusza wyświetlanie wyniku w postaci jakiej został odebrany z modemu, bez dekodowania z formatu PDU.
Po zmianie parametrów należy zapisać zmiany:


    # uci commit

SMS

Zmiana domyślnego obszaru odczytu wiadomości SMS możliwa jest poleceniem:


    # uci set easyconfig.sms.storage='SM'

gdzie zwykle 'SM' - to karta SIM, 'ME' - modem USB. Easyconfig nie wymusza żadnego obszaru pamięci i domyślnie używany jest ten wskazany przez modem.
Po zmianie parametrów należy zapisać zmiany:


    # uci commit

Producenci

Easyconfig potrafi wyświetlić producenta (vendora) sprzętu na podstawie adresu mac (dotyczy danych na zakładkach "Sieci Wi-Fi" oraz "Klienci") korzystając z odpowiedniego pliku. Jednakże nie jest on domyślnie dołączony do pakietu z powodu jego wielkości (ponad 800KB). Jeżeli w routerze zostało dużo wolnej pamięci flash to można pobrać właściwy plik poleceniami:


    # opkg update
    # opkg install libustream-mbedtls
    # rm /www/easyconfig/manuf.js
    # wget https://raw.githubusercontent.com/obsy/packages/master/easyconfig/addon/manuf.js -O /www/easyconfig/manuf.js

I odświeżyć stronę w przeglądarce.

Ograniczenia

Easyconfig nie obsługuje wszystkich możliwych ustawień, konfiguracji i dowolności nazw w systemie. Zakłada istnienie:
- sekcji o nazwie "lan" która dotyczy sieci lokalnej
- sekcji o nazwie "wan" która dotyczy połączenia z internetem
- obsługiwany jest tylko tryb AP sieci bezprzewodowej (o ile w ogóle wifi jest dostępne) dla sieci "lan"
- obsługiwane są maksymalnie dwa fizyczne interfejsy bezprzewodowe, może to być sieć 2.4GHz i/lub 5GHz w dowolnej kombinacji
- obsługiwana jest tylko jedna sekcja konfiguracyjna sieci Wi-Fi (bez VAP)
- możliwe jest ustawienie szyfrowania Wi-Fi tylko WPA Personal lub WPA2 Personal
- samodzielnie wykrywa modemy USB i typy połączenia ale wymaga ręcznego wybrania odpowiedniego interfejsu

Easyconfig korzysta z logu systemowego (logread) do wyświetlania danych o zapytaniach DNS oraz logowaniach klientów. Mały rozmiar logu i duży ruch w sieci może powodować stopniowe zanikanie wyświetlanych informacji.

Historia zmian

  • Wersja 20171206
- dodano link do GUI modemu dla modemów typu Huawei Hilink
- zmiana precyzji wyświetlania jednostek GiB i TiB
- wyświetlanie bieżącego adresu IP połączenia z internetem w zakładce statusu
- wyświetlanie dodatkowych informacji o podłączonym kliencie - poziom sygnału, czas połączenia
- zapis danych o transferze (o ile jest włączony) przy restartowaniu routera przyciskiem z GUI
- różne optymalizacje interfejsu
- (opcjonalnie) wyświetlanie producentów sprzętu na zakładkach "Sieci Wi-Fi" oraz "Klienci"

  • Wersja 20171110
- ukrywanie sekcji powiązanych z Wi-Fi dla urządzeń bez interfejsów radiowych
- oznaczanie wrogich AP przy skanowaniu sieci Wi-Fi (sieci o takiej samej nazwie jak ustawiona w systemie)
- zmiana organizacji kolumn dla małych ekranów na zakładce "Zapytania DNS"
- dodanie wyświetlania czasu systemowego na zakładce statusu

  • Wersja 20171023
- dodanie licznika wznowień połączenia z internetem

  • Wersja 20170927
- dodanie historii bieżących połączeń klientów do Wi-Fi
- dodanie automatycznego wykrywania typu połączenia z internetem

  • Wersja 20170914
- słupkowy wskaźnik sygnału modemu USB
- inny sposób wyświetlania wskaźnika zużycia transferu
- pokazanie procentowego udziału w ruchu klientów bezprzewodowych
- wykres zajętości kanałów przy skanowaniu sieci Wi-Fi
- wyświetlanie większej ilości informacji o skanowanych sieciach Wi-Fi

  • Wersja 20170831
- automatycznie wylogowanie po przekroczeniu czasu sesji
- dodanie wskaźnika postępu zużycia transferu

  • Wersja 20170825
- wyświetlanie listy sieci Wi-Fi widocznych przez ostatnie 3 minuty
- dodanie liczby nieudanych sprawdzeń przed wykonaniem akcji do monitora połączenia
- naprawa błędu przy ustawieniu wanu jako "Statyczny IP"

  • Wersja 20170818
- dodanie zakładki "USSD / SMS"
- dodanie linku do podglądu statystyk routera
- dodanie przełącznika "Logowanie zapytań DNS"
- odczyt informacji przez uqmi jest opcjonalny i sterowany przez opcję konfiguracyjną

  • Wersja 20170809
- możliwość ustawienia ostrzeżenia o przekroczeniu limitu transferu na dzień lub okres rozliczeniowy
- możliwość włączenia statystyk eko.one.pl (o ile zainstalowany jest odpowiedni pakiet)

  • Wersja 20170720
- dodanie informacji o statusie karty SIM (połączenie do sieci operatora)
- naprawa działania na wbudowanych przeglądarkach w starszych wersjach Androida
- obsługa tylko pierwszego interfejsu radiowego związanego z siecią lokalną
- dla typu połączenia QMI odczytywanie informacji o modemie przez protokół qmi
- różne poprawki i usprawnienia projektu

  • Wersja 20170531
- inny ekran logowania (wymagane tylko hasło)
- dodanie opcji izolacji klientów bezprzewodowych
- wyświetlanie większej ilości informacji o kliencie przy oknie blokowania
- dodanie liczników transferu - zakładka "Transfer"

  • Wersja 20170407
- zmiany kosmetyczne kodu

  • Wersja 20170401
- dodanie zakładki "Zapytania DNS"

  • Wersja 20170326
- dodanie możliwości blokowania klienta bezprzewodowego
- dodanie możliwości zmiany nazwy klienta bezprzewodowego

  • Wersja 20170317
- dodanie listy klientów bezprzewodowych - zakładka "Klienci"
- możliwość wyświetlenia wprowadzonych haseł

  • Wersja 20170308
- dodanie menu wysuwanego z lewej strony ekranu
- dodanie zakładki "System" z opcją restartu urządzenia
- dodanie zakładki "Monitor podłączenia"
- dodanie zakładki "Sieci Wi-Fi"
- dodanie możliwości ustawienia hosta DMZ przy aktywnym połączeniu internetowym

  • Wersja 20170212
- pierwsza wersja dostępna publicznie