J'ai plusieurs colocataires qui partagent ma facture Internet avec moi chaque mois. Ils oublient parfois de me payer et je dois les harceler pour obtenir de l'argent.
Si après trois jours de harcèlement ils n'ont toujours pas payé, je crée une règle de pare-feu dans mon routeur basé sur Unix qui bloque le trafic vers leur adresse mac. Cela s'avère très efficace pour inciter les colocataires délinquants à payer le prix fort.
Comment puis-je automatiser l'ajout / la suppression d'une adresse Mac à une règle de pare-feu le 3 de chaque mois? Je voudrais un moyen simple de les débloquer pour le reste du mois une fois qu'ils paient.
J'utilise actuellement pfsense. Il existe un module de portail captif , mais il ne prend pas en charge la réglementation des accès par utilisateur / par mois.
Comment puis-je automatiser le blocage / déblocage de l'accès Internet aux colocataires?
la source
Réponses:
~/do_not_block_friends
existe et que son heure de modification est comprise dans le délai (monthstat -c %y filename
) ( ) - n'exécutez pas le script.touch ~/do_not_block_friends
.Le script s'exécutera et verra que celui-ci a
do_not_block_friends
été modifié, il ne lancera donc pas la commande iptables.S'ils ne vous paient pas - le script les bloquera.
Une fois qu'ils ont payé, vous exécutez un autre script préparé pour les déverrouiller.
C'est un plan général sans trop de détails, mais je ne pense pas qu'il sera difficile de trouver le reste.
Modifier :
Voici un moyen plus simple d'écrire un tel script:
Nous utilisons la
find
commande avec les options suivantes:maxdepth 1
- Ne cherchez pas récursiftype f
- Recherche de fichiername
- Rechercher ce nommtime -31
- Trouver le fichier qui a été modifié il y a moins de 31 jourswc -l
comptera le nombre de lignes générées par la commande. Ce sera0
si les amis n'ont pas payé (rien trouvé) et ce sera1
si les amis ont payé et nous avonstouch
contrôlé le fichier.Ce script ne calcule pas le nombre de jours dans le mois et prend par défaut 31, je pense que c'est correct, car nous ne construisons pas de système de facturation commerciale, mais je pense même que cela peut être calculé en bash.
la source
Cela pourrait être plus que ce que vous recherchiez, mais avez-vous envisagé de configurer des informations d'identification sans fil utilisant l'authentification 802.1x contre RADIUS en tant que serveur principal?
RADIUS peut être configuré pour vérifier le validateur que vous désirez (quelque chose que vous devrez probablement écrire et stocker dans une base de données ou quelque chose du genre) pour voir si vos colocataires ont payé leur loyer. Quand ils s'authentifient et ont payé, le RADIUS les authentifie. Sinon, ça ne va pas. L'aspect positif de ceci est que vous ne comptez pas sur le filtrage d'adresses MAC. De cette façon, si vous avez des colocataires férus de technologie, ils ne pourront pas facilement contourner les contrôles que vous avez mis en place.
la source
Vérifiez si votre compte bancaire ou une autre solution de transaction que vous pouvez utiliser (PayPal?) Fournit un moyen de notification automatique de paiement, tel que:
Si une telle méthode est disponible, il ne reste plus qu'à écrire un script simple permettant de surveiller les paiements. Vous pouvez simplement analyser les e-mails de la banque pour rechercher les paiements mensuels de vos amis. Vous aurez besoin d'un fichier de configuration contenant le numéro de compte ou l'ID de chaque ami, la somme à payer (pouvant également être une constante globale) et l'adresse MAC.
Le script ajusterait ensuite les entrées du pare-feu en fonction du statut du paiement mensuel.
Ensuite, informez vos amis des options de paiement disponibles et, lors de la configuration de votre pare-feu, veillez à donner à vos amis l'accès au mécanisme de paiement afin qu'ils puissent toujours payer s'ils ne respectent pas le délai de grâce de 3 jours :)
la source