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?
źródło
Odpowiedzi:
~/do_not_block_friends
istnieje, a jego czas modyfikacji mieści się w przedziale miesiąca (stat -c %y filename
) - nie uruchamiaj skryptu.touch ~/do_not_block_friends
.Skrypt uruchomi się i zobaczy, że
do_not_block_friends
został 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:
Używamy
find
polecenia z następującymi opcjami:maxdepth 1
- Nie wyszukuj rekurencyjnychtype f
- Wyszukaj plikname
- Wyszukaj tę nazwęmtime -31
- Znajdź plik, który został zmodyfikowany mniej niż 31 dni temuwc -l
policzy liczbę wierszy wygenerowanych przez polecenie. Będzie tak,0
jeśli znajomi nie zapłacili (nic nie znaleziono) i będzie,1
jeśli znajomi zapłacili, a mytouch
skontrolujemy 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.
źródło
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ś.
źródło
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:
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 :)
źródło