Wie kann ich das Internet für Mitbewohner deaktivieren, die die Rechnung in diesem Monat nicht bezahlt haben?


56

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?


14
Was Sie gerade tun, klingt am effizientesten. Ich kann mir nicht vorstellen, dass eine Lösung für ein Captive-Portal mehr ist als ein völliger Overkill. Wenn überhaupt, könnten Sie ein einfaches Shell-Skript erstellen, um die Regel zu automatisieren, die sich selbst hinzufügt.
NReilingh

8
MAC-Adressen sind sehr, sehr einfach zu ändern und sollten nicht als Sicherheitsmaßstab verwendet werden. Windows erfordert eine Registrierungsbearbeitung. Linux erfordert einen Befehl. Mit einem Befehl unter Linux konnte er sogar Ihre MAC-Adresse kopieren. Mir scheint, dass eine bessere Lösung darin besteht, eine Passwortänderung einmal im Monat zu automatisieren. Beschränken Sie den Zugriff auf der Grundlage Ihres Wissens und nicht auf der Grundlage dessen, dass er nicht vorhanden ist.
Mark Lopez

3
@Nikolay du hast recht, das Ändern der MAC-Adresse könnte ein fortgeschritteneres Thema sein. Ich wollte jedoch nur betonen, dass die MAC-Filterung als Referenz für unsere Nachwelt unzuverlässig ist. Darüber hinaus ist die MAC-Filterung in den meisten Fällen nicht die beste Lösung. Ich möchte die zahlreichen Online-Tutorials ersetzen, die besagen, dass MAC-Filterung eine gute Sicherheitspraxis ist.
Mark Lopez

6
Denken Sie daran, jeder, das ist eine ROOMMATE-Situation. Anstatt zu versuchen, ihre Adressen durch MAC, @spuder, zu blockieren, würde ich empfehlen, dass Sie nur Ihre MAC-Adressen ERLAUBEN und alle anderen ausschließen. Wenn Sie 4 Geräte haben, erlauben Sie nur diese. Alle anderen MAC-Adressen (auch gefälschte) würden ausgeschlossen. Erinnerst du dich NUR an eine Wohnung, oder? Dann, wenn Ihre schlauen Mitbewohner versuchen, fälschungssüchtig zu werden ... und es nicht funktioniert ... lächeln Sie. Denken Sie daran, Kinder: Manchmal
Leo von Borg

11
Ich bin überrascht, dass noch niemand das Upside-Down-Ternet erwähnt hat. Viel mehr Spaß als nur Blockieren.
SQB

Antworten:


33
  1. Erstellen Sie ein Bash-Skript, das eine restriktive iptables-Regel hinzufügt.
  2. Setzen Sie dieses Skript in monatlichen Cron.
  3. Führen Sie im Bash-Skript keine Bedingung aus - wenn die Datei ~/do_not_block_friendsvorhanden ist und die Änderungszeit innerhalb des Monatszeitraums liegt ( stat -c %y filename).
  4. Sobald sie zahlen, tun Sie touch ~/do_not_block_friends.

Das Skript wird ausgeführt und stellt fest, dass do_not_block_friendses 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:

#!/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

Wir verwenden den findBefehl mit folgenden Optionen:

  • maxdepth 1 - Nicht rekursiv suchen
  • type f - Nach Datei suchen
  • name - Suchen Sie nach diesem Namen
  • mtime -31 - Datei suchen, die vor weniger als 31 Tagen geändert wurde

wc -lZählt die Anzahl der vom Befehl generierten Zeilen. Es wird sein, 0wenn Freunde nicht bezahlt haben (nichts gefunden) und es wird sein, 1wenn Freunde bezahlt haben und wir die touchDatei 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.


Cron Job ist definitiv der richtige Weg!
Rob

14

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.


beste lösung für das wirkliche leben. und wäre leicht anpassbar an neue / mehr Mitbewohner oder andere Menschen wie das Hinzufügen Ihres Lebensgefährten, damit es sie nicht blockiert
PsychoData

klingt einfach genug, besser als Mac-Filter und einfacher als ein Portal
MDT Guy

1

Überprüfen Sie, ob Ihr Bankkonto oder eine andere von Ihnen verwendete Transaktionslösung (PayPal?) Eine automatische Zahlungsbenachrichtigung bietet, z.

  • E-Mail-Benachrichtigung pro Transaktion
  • Tägliche Transaktionszusammenfassung per E-Mail
  • einige anständige API

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 :)


ja, aber dann muss er die Bearbeitungsgebühren bezahlen, da er im College ist, was nicht gut ist
iamkrillin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.