Jak mogę wyłączyć internet dla współlokatorów, którzy nie zapłacili rachunku w tym miesiącu?

56

Mam kilku współlokatorów, którzy co miesiąc dzielą ze mną rachunek za internet. Czasami zapominają mi zapłacić, a ja muszę ich męczyć za pieniądze.

Jeśli po 3 dniach szkodników nadal nie zapłacą, tworzę regułę zapory na moim routerze opartym na Uniksie, która blokuje ruch na ich adres mac. To okazuje się bardzo skuteczne w zachęcaniu współlokatorów do gromadzenia gotówki.

Jak mogę zautomatyzować dodawanie / usuwanie adresu MAC do reguły zapory sieciowej 3 każdego miesiąca? Chciałbym w prosty sposób odblokować je do końca miesiąca, gdy zapłacą.

Obecnie używam pfsense. Chociaż istnieje moduł portalu dla niewolników , nie obsługuje on regulowania dostępu na użytkownika / na miesiąc.

Jak mogę zautomatyzować blokowanie / odblokowywanie dostępu do Internetu współlokatora?

Spuder
źródło
14
To, co robisz teraz, wydaje się być najbardziej efektywnym sposobem - nie wyobrażam sobie, że rozwiązanie dla portalu dla niewolników byłoby czymś więcej niż całkowitą nadwyżką. Jeśli już, możesz zrobić prosty skrypt powłoki, aby zautomatyzować regułę.
NReilingh
8
Adresy MAC są bardzo, bardzo łatwe do zmiany i nie powinny być używane do tworzenia jakichkolwiek zabezpieczeń. System Windows wymaga jednej edycji rejestru. Linux wymaga jednego polecenia. Jednym poleceniem w Linuksie może nawet skopiować twój adres MAC. Wydaje mi się, że lepszym rozwiązaniem byłoby zautomatyzowanie zmiany hasła raz w miesiącu. Ogranicz dostęp na podstawie twojej wiedzy, a nie jego braku.
Mark Lopez
3
@ Nikolay masz rację, zmiana adresu MAC może być bardziej zaawansowanym tematem. Chciałem jednak podkreślić, że dla odniesienia przez naszą potomność - filtrowanie adresów MAC jest zawodne. Ponadto filtrowanie adresów MAC w większości przypadków nie jest najlepszym rozwiązaniem. Chcę zastąpić liczne samouczki online, które mówią, że filtrowanie adresów MAC jest dobrą praktyką bezpieczeństwa.
Mark Lopez
6
Pamiętajcie, wszyscy, to jest sytuacja POKÓJ. Zamiast próbować blokować ich adresy przez MAC, @spuder, zalecam ZEZWALANIE tylko na adresy MAC i wykluczenie wszystkich innych. Jeśli masz 4 urządzenia, zezwalasz tylko na te. Wszystkie inne adresy MAC (nawet sfałszowane) zostałyby wykluczone. Pamiętaj, że TYLKO mieszkanie, prawda? Potem, kiedy twoi chytrzy współlokatorzy próbują podrobić MAC ... i to nie działa ... uśmiechasz się. Pamiętajcie o dzieciach: Czasem opłaca się „odwrócić” wasze myślenie…
Leo Borga
11
Dziwię się, że nikt jeszcze nie wspomniał o Ternecie do góry nogami . O wiele więcej zabawy niż tylko blokowanie.
SQB

Odpowiedzi:

33
  1. Stwórz skrypt bash, który doda restrykcyjną regułę iptables.
  2. Umieść ten skrypt w miesięcznym cronie.
  3. Wewnątrz skryptu bash stwórz warunek - jeśli plik ~/do_not_block_friendsistnieje, a jego czas modyfikacji mieści się w przedziale miesiąca ( stat -c %y filename) - nie uruchamiaj skryptu.
  4. Kiedy ci zapłacą touch ~/do_not_block_friends.

Skrypt uruchomi się i zobaczy, że do_not_block_friendszostał zmodyfikowany, więc nie uruchomi polecenia iptables.

Jeśli ci nie zapłacili - skrypt je zablokuje.

Po zapłaceniu uruchom kolejny przygotowany skrypt, aby je odblokować.

To ogólny plan bez wielu szczegółów, ale nie sądzę, że trudno będzie ustalić resztę.

Edytuj :

Oto prostszy sposób napisania takiego skryptu:

#!/bin/bash

count=`find ~ -maxdepth 1 -type f -name do_not_block_friends -mtime -31 | wc -l`

if [ "$count" -eq 1 ]; then

# Friends have paid. Do nothing;

else

# Friends have not paid. Run iptables command;

fi

Używamy findpolecenia z następującymi opcjami:

  • maxdepth 1 - Nie wyszukuj rekurencyjnych
  • type f - Wyszukaj plik
  • name - Wyszukaj tę nazwę
  • mtime -31 - Znajdź plik, który został zmodyfikowany mniej niż 31 dni temu

wc -lpoliczy liczbę wierszy wygenerowanych przez polecenie. Będzie tak, 0jeśli znajomi nie zapłacili (nic nie znaleziono) i będzie, 1jeśli znajomi zapłacili, a my touchskontrolujemy plik.

Ten skrypt nie oblicza liczby dni w miesiącu i domyślnie wynosi 31, myślę, że jest w porządku, ponieważ nie budujemy komercyjnego systemu rozliczeniowego, ale uważam, że nawet to można obliczyć bash.

VL-80
źródło
Praca w Cron to zdecydowanie najlepsza droga!
Rob
14

Może to być więcej niż szukasz, ale czy zastanawiałeś się nad skonfigurowaniem poświadczeń bezprzewodowych przy użyciu uwierzytelniania 802.1x względem RADIUS jako zaplecza?

RADIUS można skonfigurować tak, aby sprawdzał dowolny moduł sprawdzania poprawności (coś, co prawdopodobnie będziesz musiał napisać i zapisać w bazie danych lub coś takiego), aby sprawdzić, czy współlokatorzy zapłacili czynsz. Po uwierzytelnieniu i opłaceniu RADIUS uwierzytelnia je. W przeciwnym razie tak nie będzie. Pozytywnym aspektem tego jest to, że nie polegasz na filtrowaniu adresów MAC. W ten sposób, jeśli masz doświadczonych technologicznie współlokatorów, nie będą oni w stanie łatwo ominąć kontroli, które wprowadziłeś.

zamaskowany 1
źródło
najlepsze rozwiązanie dla prawdziwego życia. i będzie łatwo dostosować do nowych / More współlokatorów lub innych ludzi, takich jak dodawanie innych znaczących więc nie byłby to je blokuje
PsychoData
brzmi dość prosto, lepiej niż filtrowanie mac i prostsze niż portal
MDT Guy
1

Sprawdź, czy Twoje konto bankowe lub inne rozwiązanie transakcyjne, z którego możesz skorzystać (PayPal?), Zapewnia automatyczne powiadomienie o płatności, takie jak:

  • powiadomienie e-mail dotyczące transakcji
  • codzienny e-mail z podsumowaniem transakcji
  • przyzwoity API

Jeśli jakakolwiek taka metoda jest dostępna, pozostaje tylko napisanie prostego skryptu, który monitorowałby płatności. Możesz po prostu parsować wiadomości e-mail z banku poszukującego miesięcznych płatności od znajomych. Potrzebny byłby plik konfiguracyjny przechowujący numer konta lub identyfikator każdego znajomego, sumę do zapłaty (może być również stałą globalną) i adres MAC.

Skrypt następnie dostosowuje wpisy zapory ogniowej zgodnie z miesięcznym statusem płatności.

Następnie poinformuj znajomych o dostępnych opcjach płatności i - podczas konfigurowania zapory - pamiętaj, aby zapewnić swoim znajomym dostęp do mechanizmu płatności, aby nadal mogli płacić, gdy nie dotrzymasz 3-dniowego okresu karencji :)

Michał Sacharewicz
źródło
tak, ale wtedy będzie musiał uiścić opłaty za przetwarzanie, ponieważ jest na studiach, co nie jest dobre
iamkrillin