Como posso desativar a Internet para colegas de quarto que não pagaram a conta este mês?

56

Tenho vários colegas de quarto que dividem minha conta de internet comigo todos os meses. Ocasionalmente, eles esquecem de me pagar, e eu tenho que incomodá-los pelo dinheiro.

Se, após três dias de incomodo, eles ainda não tiverem pago, eu crio uma regra de firewall no meu roteador baseado em unix que bloqueia o tráfego para o endereço MAC. Isso prova ser muito eficaz para conseguir que colegas de quarto inadimplentes paguem o dinheiro.

Como automatizar a adição / remoção de um endereço mac em uma regra de firewall no dia 3 de cada mês? Eu gostaria de uma maneira simples de desbloqueá-los pelo resto do mês depois que eles pagarem.

Atualmente, estou usando o pfsense. Embora exista um módulo de portal cativo , ele não suporta a regulação do acesso por usuário / mês.

Como automatizar o acesso à Internet de colegas de quarto de bloqueio / desbloqueio?

spuder
fonte
14
O que você está fazendo no momento parece a maneira mais eficiente: não consigo imaginar uma solução de portal cativo sendo algo além de um exagero total. Se alguma coisa, você poderia criar um script shell simples para automatizar a adição de regras.
NReilingh
8
O endereço MAC é muito, muito fácil de alterar e não deve ser usado para formar nenhuma medida de segurança. O Windows requer uma edição do registro. Linux requer um comando. Com um comando no Linux, ele pode até copiar seu endereço MAC. Parece-me que uma solução melhor seria automatizar uma alteração de senha uma vez por mês. Restrinja o acesso com base no seu conhecimento e não na falta dele.
Mark Lopez
3
@ Nikolay, você está certo, a mudança de endereço MAC pode ser um tópico mais avançado. No entanto, eu só queria enfatizar que, para referência por nossa posteridade - a filtragem MAC não é confiável. Além disso, a filtragem MAC na maioria dos casos não é a melhor solução. Quero substituir os inúmeros tutoriais on-line que dizem que a filtragem MAC é uma boa prática de segurança.
Mark Lopez
6
Lembre-se, pessoal, esta é uma situação ROOMMATE. Em vez de tentar bloquear seus endereços pelo MAC, @spuder, eu recomendaria que você PERMITIR apenas seus endereços MAC e excluir todos os outros. Se você possui 4 dispositivos, apenas os permite. Todos os outros endereços MAC (mesmo falsificados) seriam excluídos. Lembre-se disso APENAS um apartamento, certo? Então, quando seus colegas de quarto tentam roubar paródia MAC ... e isso não funciona ... você sorri. Recorde miúdos: Às vezes paga para "inverter" o seu pensamento ...
leo de Borg
11
Estou surpreso que ninguém tenha mencionado o Upside-Down-Ternet ainda. Muito mais divertido do que apenas bloquear.
SQB

Respostas:

33
  1. Faça um script bash que adicione regra restritiva de tabelas de ip.
  2. Coloque esse script no cron mensal.
  3. Dentro do script bash, faça uma condição - se o arquivo ~/do_not_block_friendsexistir e seu horário de modificação estiver dentro do período do mês ( stat -c %y filename) - não execute o script.
  4. Uma vez que eles pagam, você paga touch ~/do_not_block_friends.

O script será executado e verá que do_not_block_friendsfoi modificado, portanto, não será executado o comando iptables.

Se eles não pagaram, o script os bloqueará.

Depois que eles pagam, você executa outro script preparado para desbloqueá-los.

Este é um plano geral, sem muitos detalhes, mas não acho que seja difícil descobrir o resto.

Editar :

Aqui está uma maneira mais simples de escrever esse 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

Usamos o findcomando com as seguintes opções:

  • maxdepth 1 - Não procure recursivo
  • type f - Procurar arquivo
  • name - Procure este nome
  • mtime -31 - Localizar arquivo modificado há menos de 31 dias

wc -lcontará a quantidade de linhas geradas pelo comando. Será 0que os amigos não pagaram (nada foi encontrado) e será 1se os amigos pagaram e nós touchcontrolamos o arquivo.

Esse script não calcula a quantidade de dias no mês e o padrão é 31, acho que está bom, pois não estamos construindo um sistema de cobrança comercial, mas acredito que mesmo isso possa ser calculado no bash.

VL-80
fonte
Trabalho Cron é definitivamente o caminho a percorrer!
Rob Rob
14

Pode ser mais do que você procura, mas você já pensou em configurar credenciais sem fio usando a autenticação 802.1x no RADIUS como back-end?

O RADIUS pode ser configurado para verificar o validador desejado (algo que você provavelmente precisará criar e armazenar em um banco de dados ou algo do tipo) para ver se seus colegas de quarto pagaram o aluguel. Quando eles se autenticam e pagam, o RADIUS os autentica. Caso contrário, não. O aspecto positivo disso é que você não depende da filtragem de endereços MAC. Dessa forma, se você tem colegas de quarto experientes em tecnologia, eles não poderão facilmente ignorar os controles que você colocou no lugar.

cloaked1
fonte
melhor solução para a vida real. e seria facilmente adaptável a novas mais roommates / ou outras pessoas como a adição de seu outro significativo para que ele não iria bloqueá-los
PsychoData
parece simples o suficiente, melhor que a filtragem por mac e mais simples que um portal #
MDT Guy
1

Verifique se sua conta bancária ou outra solução de transação que você pode usar (PayPal?) Oferece alguma forma de notificação de pagamento automático, como:

  • notificação por email por transação
  • e-mail diário de resumo da transação
  • alguma API decente

Se qualquer método desse tipo estiver disponível, basta escrever um script simples que monitore os pagamentos. Você pode apenas analisar os e-mails do banco buscando os pagamentos mensais de seus amigos. Você precisaria de um arquivo de configuração para armazenar o número da conta ou o ID de cada amigo, a soma a pagar (também pode ser uma constante global) e o endereço MAC.

O script ajustaria as entradas do firewall de acordo com o status do pagamento mensal.

Posteriormente, informe seus amigos sobre as opções de pagamento disponíveis e - ao configurar seu firewall - lembre-se de fornecer a seus amigos acesso ao mecanismo de pagamento para que eles ainda possam pagar quando perderem o período de cortesia de três dias :)

Michał Sacharewicz
fonte
sim, mas ele terá que pagar as taxas de processamento, já que ele não está na faculdade, isso é bom
iamkrillin