Come posso disattivare Internet per i coinquilini che non hanno pagato il conto questo mese?


56

Ho diversi coinquilini che dividono la mia fattura su Internet ogni mese. A volte si dimenticano di pagarmi e io devo assillarli per i soldi.

Se dopo 3 giorni di infestazioni non hanno ancora pagato, creo una regola firewall nel mio router basato su unix che blocca il traffico verso il loro indirizzo mac. Ciò si rivela molto efficace nel convincere i coinquilini delinquenti a guadagnare denaro.

Come potrei automatizzare l'aggiunta / rimozione di un indirizzo mac a una regola firewall il 3 di ogni mese? Vorrei un modo semplice per sbloccarli per il resto del mese una volta che hanno pagato.

Attualmente sto usando pfsense. Sebbene esista un modulo del portale captive , non supporta la regolazione dell'accesso per utente / al mese.

Come potrei automatizzare il blocco / sblocco dell'accesso a internet del compagno di stanza?


14
Quello che stai facendo in questo momento sembra il modo più efficiente al riguardo: non riesco a immaginare una soluzione di captive portal che sia qualcosa di più di un overkill completo. Semmai, potresti creare un semplice script di shell per automatizzare la regola.
NReilingh,

8
Gli indirizzi MAC sono molto, molto, facili da modificare e non devono essere utilizzati per costituire una misura di sicurezza. Windows richiede una modifica del registro. Linux richiede un comando. Con un comando in Linux potrebbe persino copiare il tuo indirizzo MAC. Mi sembra che una soluzione migliore sarebbe automatizzare una modifica della password una volta al mese. Limita l'accesso in base alle tue conoscenze piuttosto che alla sua mancanza.
Mark Lopez,

3
@Nikolay hai ragione, la modifica dell'indirizzo MAC potrebbe essere un argomento più avanzato. Tuttavia, volevo solo sottolineare che, come riferimento per i nostri posteri, il filtro MAC non è affidabile. Inoltre, il filtro MAC nella maggior parte dei casi non è la soluzione migliore. Voglio spostare i numerosi tutorial online che dicono che il filtro MAC è una buona pratica di sicurezza.
Mark Lopez,

6
Ricorda, tutti, questa è una situazione ROOMMATE. Invece di provare a bloccare i loro indirizzi tramite MAC, @spuder, ti consiglio di CONSENTIRE solo i tuoi indirizzi MAC ed escludere tutti gli altri. Se hai 4 dispositivi, li consenti solo. Tutti gli altri indirizzi MAC (anche falsificati) sarebbero esclusi. Ricordi questo SOLO un appartamento, giusto? Quindi, quando i tuoi furbi coinquilini provano a fare lo spoof additivo MAC ... e non funziona ... sorridi. Ricorda i bambini: a volte vale la pena "invertire" il tuo pensiero ...
Leo of Borg,

11
Sono sorpreso che nessuno abbia ancora menzionato l' Upside-Down-Ternet . Molto più divertente del semplice blocco.
SQB,

Risposte:


33
  1. Crea uno script bash che aggiunge una regola iptables restrittiva.
  2. Metti questo script in cron mensile.
  3. All'interno dello script bash crea una condizione - se il file ~/do_not_block_friendsesiste e il suo tempo di modifica è entro il periodo del mese ( stat -c %y filename) - non eseguire lo script.
  4. Una volta che ti pagano, fallo touch ~/do_not_block_friends.

Lo script verrà eseguito e vedrà che è do_not_block_friendsstato modificato, quindi non eseguirà il comando iptables.

Se non ti hanno pagato, lo script li bloccherà.

Una volta che hai pagato, esegui un altro script preparato per sbloccarli.

Questo è un piano generale senza molti dettagli, ma non credo che sarà difficile capire il resto.

Modifica :

Ecco un modo più semplice di scrivere un tale script:

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

Usiamo il findcomando con le seguenti opzioni:

  • maxdepth 1 - Non cercare ricorsivo
  • type f - Cerca file
  • name - Cerca questo nome
  • mtime -31 - Trova il file che è stato modificato meno di 31 giorni fa

wc -lconterà la quantità di righe generate dal comando. Sarà 0se gli amici non hanno pagato (nulla trovato) e lo sarà 1se gli amici hanno pagato e abbiamo touchcontrollato il file.

Questo script non calcola la quantità di giorni del mese e il valore predefinito è 31, penso che vada bene dato che non stiamo costruendo un sistema di fatturazione commerciale, ma credo che anche questo possa essere calcolato in bash.


Cron lavoro è sicuramente la strada da percorrere!
Rob,

14

Potrebbe essere più di quello che stai cercando, ma hai preso in considerazione l'idea di impostare credenziali wireless utilizzando l'autenticazione 802.1x contro RADIUS come back-end?

RADIUS può essere impostato per controllare qualsiasi validatore desideri (qualcosa che probabilmente dovrai scrivere e archiviare in un database o qualcosa del genere) per vedere se i tuoi coinquilini hanno pagato l'affitto. Quando eseguono l'autenticazione e hanno pagato, RADIUS li autentica. Altrimenti no. L'aspetto positivo di questo è che non stai facendo affidamento sul filtraggio su indirizzi MAC. In questo modo, se hai coinquilini esperti di tecnologia, non saranno in grado di aggirare facilmente i controlli che hai messo in atto.


migliore soluzione per la vita reale. e sarebbe facilmente adattabile a nuovi / più coinquilini o altre persone come aggiungere il tuo altro significativo in modo da non bloccarli
PsychoData

sembra abbastanza semplice, meglio del filtraggio dei mac e più semplice di un portale
MDT Guy

1

Verifica se il tuo conto bancario o un'altra soluzione di transazione che puoi utilizzare (PayPal?) Fornisce una modalità di notifica automatica del pagamento, come:

  • notifica e-mail per transazione
  • e-mail di riepilogo delle transazioni giornaliere
  • qualche API decente

Se tale metodo è disponibile, tutto ciò che rimane è scrivere alcuni semplici script che monitorino i pagamenti. Puoi semplicemente analizzare le e-mail dalla banca che cerca i pagamenti mensili dai tuoi amici. Avresti bisogno di un file di configurazione che memorizzi il numero di conto o l'ID di ogni amico, la somma da pagare (potrebbe anche essere una costante globale) e l'indirizzo MAC.

Lo script regolerebbe quindi le voci del firewall in base allo stato del pagamento mensile.

Successivamente, informa i tuoi amici delle opzioni di pagamento disponibili e, durante la configurazione del firewall, ricordati di fornire ai tuoi amici l'accesso al meccanismo di pagamento in modo che possano comunque pagare quando non rispettano il periodo di tolleranza di 3 giorni :)


sì, ma poi dovrà pagare le tasse di elaborazione, dato che è al college che non va bene
iamkrillin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.