Ich habe mehrere Mitbewohner, die meine Internetrechnung jeden Monat mit mir teilen. Gelegentlich vergessen sie, mich zu bezahlen, und ich muss sie für das Geld belästigen.
Wenn sie nach 3 Tagen immer noch nicht bezahlt haben, erstelle ich in meinem Unix-basierten Router eine Firewall-Regel, die den Datenverkehr an ihre Mac-Adresse blockiert. Dies erweist sich als sehr effektiv, wenn es darum geht, kriminelle Mitbewohner dazu zu bringen, das Geld aufzubessern.
Wie kann ich das Hinzufügen / Entfernen einer Mac-Adresse zu einer Firewall-Regel am 3. jedes Monats automatisieren? Ich hätte gerne eine einfache Möglichkeit, sie für den Rest des Monats freizugeben, sobald sie bezahlt haben.
Ich benutze gerade pfsense. Es gibt zwar ein Captive-Portal-Modul , es unterstützt jedoch nicht die Regelung des Zugriffs pro Benutzer / pro Monat.
Wie kann ich das Sperren / Entsperren des Internetzugangs von Mitbewohnern automatisieren?
quelle
Antworten:
~/do_not_block_friends
vorhanden ist und die Änderungszeit innerhalb des Monatszeitraums liegt (stat -c %y filename
).touch ~/do_not_block_friends
.Das Skript wird ausgeführt und stellt fest, dass
do_not_block_friends
es geändert wurde, sodass der Befehl iptables nicht ausgeführt wird.Wenn sie dich nicht bezahlt haben, blockiert sie das Skript.
Sobald sie bezahlt haben, führen Sie ein anderes vorbereitetes Skript aus, um sie freizuschalten.
Dies ist ein allgemeiner Plan ohne viele Details, aber ich denke nicht, dass es schwierig sein wird, den Rest herauszufinden.
Bearbeiten :
Hier ist eine einfachere Art, ein solches Skript zu schreiben:
Wir verwenden den
find
Befehl mit folgenden Optionen:maxdepth 1
- Nicht rekursiv suchentype f
- Nach Datei suchenname
- Suchen Sie nach diesem Namenmtime -31
- Datei suchen, die vor weniger als 31 Tagen geändert wurdewc -l
Zählt die Anzahl der vom Befehl generierten Zeilen. Es wird sein,0
wenn Freunde nicht bezahlt haben (nichts gefunden) und es wird sein,1
wenn Freunde bezahlt haben und wir dietouch
Datei kontrolliert haben.Dieses Skript berechnet nicht die Anzahl der Tage im Monat und ist standardmäßig auf 31 eingestellt. Ich denke, es ist in Ordnung, da wir kein kommerzielles Abrechnungssystem erstellen, aber ich glaube, auch das kann mit bash berechnet werden.
quelle
Es könnte mehr sein, als Sie suchen, aber haben Sie darüber nachgedacht, drahtlose Anmeldeinformationen mithilfe der 802.1x-Authentifizierung für RADIUS als Backend einzurichten?
RADIUS kann so eingerichtet werden, dass überprüft wird, welchen Validator Sie wünschen (etwas, das Sie wahrscheinlich schreiben und in einer Datenbank speichern müssen), um festzustellen, ob Ihre Mitbewohner ihre Miete bezahlt haben. Wenn sie sich authentifizieren und bezahlt haben, authentifiziert der RADIUS sie. Ansonsten nicht. Der positive Aspekt dabei ist, dass Sie sich nicht auf das Filtern nach MAC-Adressen verlassen müssen. Auf diese Weise können technisch versierte Raumfahrer die von Ihnen eingerichteten Steuerungen nicht einfach umgehen.
quelle
Überprüfen Sie, ob Ihr Bankkonto oder eine andere von Ihnen verwendete Transaktionslösung (PayPal?) Eine automatische Zahlungsbenachrichtigung bietet, z.
Wenn eine solche Methode verfügbar ist, müssen Sie lediglich ein einfaches Skript schreiben, das die Zahlung überwacht. Sie können einfach die E-Mails der Bank analysieren, um die monatlichen Zahlungen Ihrer Freunde zu erhalten. Sie benötigen eine Konfigurationsdatei, in der die Kontonummer oder ID jedes Freundes, die zu zahlende Summe (möglicherweise auch eine globale Konstante) und die MAC-Adresse gespeichert sind.
Das Skript würde dann die Firewall-Einträge entsprechend dem monatlichen Zahlungsstatus anpassen.
Informieren Sie anschließend Ihre Freunde über die verfügbaren Zahlungsoptionen und denken Sie beim Konfigurieren Ihrer Firewall daran, Ihren Freunden Zugriff auf den Zahlungsmechanismus zu gewähren, damit sie auch dann noch bezahlen können, wenn die 3-tägige Nachfrist verpasst wird :)
quelle