Blokada użytkowników zalegających z płatnościami
Ostatnia zmiana: 2014-04-09 22:36
Celem projektu jest łatwa możliwość zablokowania dostępy dla wybranej grupy podłączonych klientów i przekierowanie ich na inną stronę informacyjną. Blokada następuje na podstawie adresu MAC, dotyczy zarówno klientów przewodowych jak i bezprzewodowych. Rozwiązanie ma działać na wszystkich platformach wspieranych przez OpenWrt.
Projekt w całości napisany został jako skrypty shella i wykorzystuje komponenty standardowo dostępne w normalnej instalacji OpenWrt. Nie jest zależny od konkretnej platformy sprzętowej.
Historia zmian
- wyświetlanie listy adresów MAC z arp
- zamiana module parsowania adresów MAC
- zamiana serwera httpd na uhttpd
- modyfikacja sposobu aktualizacji blokad
- wersja początkowa
Instalacja
Należy zainstalować pakiet
blokada (dostępny jest w moim
repozytorium)
# opkg install blokada
# /etc/init.d/blokada enable
# /etc/init.d/blokada start
Plik z blokadami:
/etc/lista_mac.txtPanel administratora:
http://ip_rutera:8765/cgi-bin/admin.sh (domyślne hasło:
admin1234)
Konfiguracja
Można wykonać w dwojaki sposób:
- edycja pliku /etc/lista_mac.txt
Zawiera ona listę blokowanych adresów oraz domyślny komunikat w przypadku braku blokady. Każdy adres musi być umieszczony w oddzielnej linii, a po przecinku komunikat (można stosować tagi HTML) który zostanie wyświetlony dla użytkownika w przypadku jego zablokowana. Adres mac musi być podany w formacie 00:00:00:00:00:00. Po zmodyfikowaniu pliku należy pamiętać o ponownym uruchomieniu programu
# /etc/init.d/blokada start
w celu zaktualizowania blokad adresów.
Usunięcie blokady to po prostu usunięcie odpowiedniej linii z pliku
/etc/lista_mac.txt i ponowne uruchomienie programu.
Przykładowa zawartość pliku
/etc/lista_mac.txt
00:00:00:00:00:00,Wszystko ok!
00:00:00:26:03:01,Blokada dostępu! Nie płaciłeś!<br>(no i teraz masz problem)
00:00:00:26:03:02,Zgłoś się do administratora
Wpis z adresem 00:00:00:00:00:00 musi istnieć - jest on wykorzystywany w przypadku kiedy brak jest blokady.
- wykorzystanie panelu administratora
Po uruchomieniu dostępny jest prosty panel administratora pod adresem
http://adres_rutera:8765/cgi-bin/admin.sh. Po podaniu hasła (domyślnie:
admin1234) zostanie wyświetlona bieżąca konfiguracja, w której można dodać nowy adres mac wraz z komunikatem, lub odblokować istniejący już wpis.
Panel administratora
Przykładowy komunikat po zablokowaniuTechnikalia
Działanie projektu
- skrypty startowe odczytują listy adresów MAC z pliku tekstowego
- przekierowanie ruchu odpowiadającego każdemu adresowi MAC na adres http://ip_rutera:8765
Jeżeli komputer o przekierowanym adresem mac będzie próbował odwołać się do dowolnej witryny nastąpi wykonanie skryptu
blokada.sh umieszczonego na ruterze który:
- odczytuje adres ip komputera
- na podstawie tablicy arp odczytuje adres MAC tego komputera
- na podstawie pliku /etc/lista_mac.txt odczytywany jest komunikat i wyświetlany dla użytkownika
Uwagi
- restart firewalla powoduje zdjęcie blokad, więc należy pamiętać także o ew. uruchomieniu programu