Tengo varios compañeros de cuarto que dividen mi factura de internet conmigo cada mes. En ocasiones se olvidan de pagarme y tengo que molestarlos por el dinero.
Si después de 3 días de molestar aún no han pagado, creo una regla de firewall en mi enrutador basado en Unix que bloquea el tráfico a su dirección MAC. Esto demuestra ser muy efectivo para conseguir que los delincuentes compartan el dinero.
¿Cómo podría automatizar la adición / eliminación de una dirección mac a una regla de firewall el 3 de cada mes? Me gustaría una manera simple de desbloquearlos por el resto del mes una vez que paguen.
Actualmente estoy usando pfsense. Si bien hay un módulo de portal cautivo , no admite la regulación del acceso por usuario / por mes.
¿Cómo podría automatizar el bloqueo / desbloqueo del acceso a internet de un compañero de cuarto?
fuente
Respuestas:
~/do_not_block_friends
existe y su tiempo de modificación está dentro del período de un mes (stat -c %y filename
), no ejecute la secuencia de comandos.touch ~/do_not_block_friends
.El script se ejecutará y verá que
do_not_block_friends
se modificó, por lo que no ejecutará el comando iptables.Si no te pagaron, el script los bloqueará.
Una vez que hayan pagado, ejecute otro script preparado para desbloquearlos.
Este es un plan general sin muchos detalles, pero no creo que sea difícil descifrarlo.
Editar :
Aquí hay una forma más simple de escribir tal script:
Usamos el
find
comando con las siguientes opciones:maxdepth 1
- No busques recursivotype f
- Buscar archivoname
- Busque este nombremtime -31
- Buscar archivo modificado hace menos de 31 díaswc -l
contará la cantidad de filas generadas por el comando. Será0
si los amigos no han pagado (no se ha encontrado nada) y será1
si los amigos pagaron y nosotrostouch
controlamos el archivo.Este script no calcula la cantidad de días en el mes y el valor predeterminado es 31, creo que está bien ya que no estamos construyendo un sistema de facturación comercial, pero creo que incluso eso se puede calcular en bash.
fuente
Puede ser más de lo que está buscando, pero ¿ha considerado la posibilidad de configurar credenciales inalámbricas utilizando la autenticación 802.1x contra RADIUS como back-end?
RADIUS se puede configurar para verificar el validador que desee (algo que probablemente tenga que escribir y almacenar en una base de datos o algo) para ver si sus compañeros de habitación han pagado el alquiler. Cuando se autentican y han pagado, RADIUS los autentica. De lo contrario, no lo hace. El aspecto positivo de esto es que no confía en el filtrado de direcciones MAC. De esa manera, si tienes compañeros expertos en tecnología, no podrán pasar por alto fácilmente los controles que has establecido.
fuente
Compruebe si su cuenta bancaria u otra solución de transacción que pueda usar (¿PayPal?) Proporciona alguna forma de notificación de pago automático, como:
Si alguno de estos métodos está disponible, todo lo que queda es escribir una secuencia de comandos simple que controle los pagos. Puede analizar los correos electrónicos del banco buscando los pagos mensuales de sus amigos. Necesitaría un archivo de configuración que almacene el número de cuenta o ID de cada amigo, la suma a pagar (también podría ser una constante global) y la dirección MAC.
El script luego ajustaría las entradas del firewall de acuerdo con el estado del pago mensual.
Luego, informe a sus amigos sobre las opciones de pago disponibles y, mientras configura su firewall, recuerde brindarles a sus amigos acceso al mecanismo de pago para que puedan pagar cuando se pierdan el período de gracia de 3 días :)
fuente