今月請求書を支払っていないルームメイトのインターネットをオフにするにはどうすればよいですか?


56

私は、毎月インターネット料金を私と一緒に分割するルームメイトを何人か持っています。時々彼らは私にお金を払うのを忘れて、私はお金のために彼らを困らせなければなりません。

3日間の苦労の末にまだ支払いが済んでいない場合は、Unixベースのルーターで、Macアドレスへのトラフィックをブロックするファイアウォールルールを作成します。これは、非行のルームメイトが現金を獲得するのに非常に効果的であることがわかります。

毎月3日にファイアウォールルールへのMACアドレスの追加/削除を自動化するにはどうすればよいですか?支払いが済んだ月の残りの期間、ブロックを解除する簡単な方法が欲しい。

現在pfsenseを使用しています。あるがキャプティブポータルモジュールは、それは月額/ユーザーごとのアクセスを規制するサポートしていません。

ルームメイトのインターネットアクセスのブロック/ブロック解除を自動化するにはどうすればよいですか?


14
あなたが今していることは、それについて最も効率的な方法のように聞こえます-私は、キャプティブポータルソリューションが完全な過剰であるとは想像できません。どちらかといえば、ルールの追加を自動化する単純なシェルスクリプトを作成できます。
NReilingh 14年

8
MACアドレスは非常に簡単に変更でき、セキュリティ対策として使用しないでください。Windowsには1つのレジストリ編集が必要です。Linuxには1つのコマンドが必要です。Linuxの1つのコマンドで、MACアドレスをコピーすることさえできます。より良い解決策は、パスワードの変更を月に1回自動化することだと思います。彼の知識の不足ではなく、知識に基づいてアクセスを制限します。
マークロペス14年

3
@Nikolayあなたの言うとおり、MACアドレスの変更はもっと進んだトピックかもしれません。ただし、後世の参照のために、MACフィルタリングは信頼できないことを強調したかっただけです。さらに、ほとんどの場合、MACフィルタリングは最適なソリューションではありません。MACフィルタリングは優れたセキュリティ対策であると言っている多数のチュートリアルをオンラインで置き換えたいと思います。
マークロペス14年

6
皆さん、これはルームメイトの状況です。MACアドレス@spuderでアドレスをブロックする代わりに、MACアドレスのみを許可し、他のアドレスはすべて除外することをお勧めします。4つのデバイスがある場合は、それらのみを許可します。他のすべてのMACアドレスは(スプーフィングされていても)除外されます。これはアパートだけですよね?それから、あなたのずるい部屋がMAC addy spoofを試みるとき…そしてそれは働かない…あなたは微笑む。子供を覚えてください:あなたの思考を「逆転させる」ことが時々あります
...-ボルグのレオ14

11
Upside-Down-Ternetについて誰もまだ言及していないことに驚いています。ウェイより多くの楽しみは、単に遮断します。
SQB 14年

回答:


33
  1. 制限的なiptablesルールを追加するbashスクリプトを作成します。
  2. このスクリプトを毎月のcronに入れます。
  3. bashスクリプト内で条件を作成します-ファイル~/do_not_block_friendsが存在し、その変更時刻が月の期間(stat -c %y filename)内にある場合-スクリプトを実行しないでください。
  4. 彼らがあなたに支払いをしたらtouch ~/do_not_block_friends

スクリプトが実行do_not_block_friendsされ、変更されたことが確認されるため、iptablesコマンドは実行されません。

彼らがあなたに支払わなかった場合-スクリプトはそれらをブロックします。

支払いが完了したら、別の準備されたスクリプトを実行してロックを解除します。

これは詳細な説明はほとんどない一般的な計画ですが、残りの部分を理解するのは難しいとは思いません。

編集

このようなスクリプトを記述するより簡単な方法を次に示します。

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

find次のオプションでコマンドを使用します。

  • maxdepth 1 -再帰的に検索しないでください
  • type f -ファイルを検索
  • name -この名前を検索
  • mtime -31 -31日以内に変更されたファイルを見つける

wc -lコマンドによって生成された行の数をカウントします。それは次のようになります0友人が支払われていない場合(何も見つからなかった)、それは次のようになります1友人が賃金を行なったし、私たちがやった場合はtouch、制御ファイルを。

このスクリプトは月の日数を計算せず、デフォルトは31です。商用の課金システムを構築していないので問題ないと思いますが、bashで計算することもできます。


Cronジョブは間違いなく行く方法です!
ロブ14年

14

それはあなたが探している以上のものかもしれませんが、バックエンドとしてRADIUSに対する802.1x認証を使用してワイヤレス資格情報を設定することを検討したことはありますか?

RADIUSは、希望する検証ツール(おそらくスクリプトを作成してデータベースなどに保存する必要があるもの)をチェックして、部屋が家賃を払っているかどうかを確認するように設定できます。認証および支払いが完了すると、RADIUSが認証します。そうでなければ、そうではありません。これの良い面は、MACアドレスのフィルタリングに依存していないことです。こうすれば、ハイテクに精通した部屋があれば、設置したコントロールを簡単にバイパスできません。


実生活に最適なソリューション。新しい/より多くのルームメイトや重要な他の人を追加するような他の人に簡単に適応できるので、ブロックすることはありません
PsychoData

ポータルよりMACフィルタリングよりも良いとシンプルな、十分に簡単に聞こえる
MDTガイ

1

銀行口座または使用する別のトランザクションソリューション(PayPal?)が、次のような自動支払い通知の方法を提供しているかどうかを確認します。

  • トランザクションごとの電子メール通知
  • 毎日の取引概要メール
  • いくつかのまともなAPI

そのような方法が利用可能な場合、残っているのは支払いを監視する簡単なスクリプトを書くことだけです。友人からの毎月の支払いを求める銀行からの電子メールを解析するだけです。各友人のアカウント番号またはID、合計金額(グローバル定数である場合もあります)、およびMACアドレスを格納する構成ファイルが必要になります。

スクリプトは、毎月の支払いステータスに従ってファイアウォールエントリを調整します。

その後、利用可能な支払いオプションを友人に通知し、ファイアウォールを設定している間、3日間の猶予期間を逃した場合でも支払いできるように、支払いメカニズムへのアクセスを友人に提供することを忘れないでください:)


いや、しかし、彼は大学のthatsでhesのため、処理手数料を支払う必要があるでしょうがない良い
iamkrillin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.