ウェブサイトの時間を制限する方法(iptablesの使用など)を知っている人はいますか?
より正確には、上司は従業員がホワイトリスト内の特定のWebサイトにアクセスできるようにし、ホワイトリスト内の各Webサイトに毎日の累積接続時間(分)を割り当てようとします。たとえば、従業員はいつでもサイトAに自由にアクセスできますが、割り当てられたすべてのX分を使用した後は合計X分だけアクセスできるため、特定のサイトへのアクセスをブロックする必要があります。他のホワイトリストサイトも同様です。ユーザーがウェブサイトに接続している限り(ブラウザのタブでウェブサイトを開くなど)、その時間は後でサイトに再訪問するのに含まれます。私たちの仕事をしなければならないホワイトリストサイトがいくつかあり、1日に許可されているX分は1日です。一部のサイトは個人的な目的に使用されます(たとえば、電子メールサイト)、これらのサイト(携帯電話よりもキーボード/マウス/大画面にナビゲートするのが簡単です)は時間が限られています。
iptablesレベルでこれを行う方法があれば良いでしょう。 iptablesレベルでこれを実行できない場合は、これを行う方法はありますか?私たちはUbuntu 16.04 LTSを使用しています。 (ブラウザプラグインなしで簡単に変更できます。Squidはタイムアウトを設定できません。)
答え1
ウェブサイトで費やされる時間を定義することは非常に困難です。ウェブサイト(ウェブサイトの特定のページ)に何らかの動的更新がない場合、つまり完全に静的なページの場合は、朝にそのページを読み込み、次の時間にタブを閉じることができます。そのため、一部の専用ファイアウォールやルーターでは、ユーザー画面に表示されるWebサイトの兆候を検出できません。
したがって、実行可能な唯一の解決策は、各ユーザーの時間統計を実行するようにブラウザをカスタマイズすることです。ニーズに合わせて変更できるWebキットベースの軽量ブラウザがたくさんあります。
同僚が使用する機器は会社の資産であるため、会社は機器の使用に関する方針を確立し、違反した場合に制裁する絶対的な権利を有します。
労働者が確立された政策に従う能力がなく、とにかく違反しようとした場合、その人はその役職を引き受ける資格がありますか?
答え2
私はそれについてしばらく考え、次のようなことがうまくいくと思いました。
cron操作を介してルートホームディレクトリ(通常は/root
)にファイルを作成します。 1日に1回これを行います。ファイルには、ユーザーが「ブロックされた」サイトにアクセスできる時間(分)を示す整数値を含める必要があります。
許可されていないすべてのWebサイトをlocalhostにリダイレクトする行をファイルに追加します。/etc/hosts
これにより、そのウェブサイトを「ブロック」する効果があります。
分を表すパラメータを使用する小さなプログラムを作成します。プログラムは、ルートホームディレクトリにあるファイルから要求された時間(分)を減算します。プログラムはファイルを編集し/etc/hosts
て「ブロックされた」サイトを削除し、ネットワークインターフェースをリセットします。その後、選択した分スリープ状態になり、/etc/hosts
ファイルを再編集してWebサイトをブロックし、ネットワークインターフェイスをリセットします。これは、ルートディレクトリのファイルがゼロを保存するまで許可されます。その後、翌日にのみリセットされます。