この質問は2つの部分で構成されています。
まず、ブロックしたいウェブサイトのリストがある場合です。これらのドメインと関連サブドメインをブロックするように自分のコンピュータにどのように指示しますか?
次に、ユーザーごとにこれを行う方法です。たとえば、ユーザーAのFacebookアクセスをブロックするようにコンピュータに指示しても、ユーザーBのFacebookアクセスをブロックしてはいけません。
回答がコマンドライン回答の場合、ボーナスポイント。
答え1
実際、あなたの質問は3つの部分に分かれています。
- ネットワークレベルのブロックポリシーの決定:どの接続が許可されますか?
- このブロックポリシーを実装してください。
- ...特定のユーザーにのみ影響を与える方法です。
ウェブサイトをブロックするのは簡単ではありません。実際、ネットワークアクセスを完全にブロックすることなくウェブサイトを完全にブロックすることは不可能だと言いたいと思います。あなたができることは、ブロックされたユーザーの人生をより困難にすることです。ただし、必要に応じてブロックされたWebサイトにアクセスできますが、技術が十分に複雑で可能であると仮定すると、待ち時間が長くなり、帯域幅が減少します。外部サーバーに依存します。一般的なナビゲーションでは、ユーザーはGoogleまたは他の手段を介してキャッシュされたコピーを見ることができます。外部サーバーを持つユーザーはこれをプロキシとして使用したり、既存のプロキシを使用したりできます(オープンプロキシはあまりにも早く行き来したため、効果的にブロックできません)。
ドメイン名またはIPアドレスでブロックを試みることができます。 IPアドレスはFacebookなどの大規模サイトで機能できますが、すべてのサーバーの移動に追いつく必要があります。共同ホストされている小規模なウェブサイトでは機能しません。
特定のウェブサイトをブロックする簡単な方法は、そのウェブサイトのDNS名前解決を防ぐことです。これは、ユーザーが外部プロキシを使用してブロックをバイパスするのに十分なユーザーの生活を迷惑にすることができるということです(これには少し複雑さが必要です)。ただし、ユーザーごとにDNS検証を調整するための実際的な方法はありません(原則としては不可能ではありませんが、機能する設定を設定する必要があります)。identd
会話するDNSサーバーを見つけます)。
Webサイトをブロックする自然な方法は、直接Webアクセスをブロックし、Webプロキシを介したアクセスのみを許可することです。イカ事実上の標準です。次のように設定できます。透明プロキシ(ポート80および443のすべての接続はプロキシシステムにルーティングされます。他のポートの奇妙なWebサイトはファイアウォールの設定方法によっては機能しない場合があります)または明示的なプロキシ(ユーザーはブラウザを設定する必要があります。は外部に接続できます)。
ユーザー固有の設定を実装する簡単な方法は次のとおりです。確認するエージェントから。それではそこにいます。さまざまなアクセスレベルエージェントの仕事です。パスワードの要件を避けるために、次のように入力することもできます。エージェント使用ID(これにより、すべてのアクセスの待ち時間が長くなります。)
他のマシン(仮想マシンである可能性があります)でエージェントを実行できる場合は、操作が簡単になります。すべてのタスクを同じシステムで実行するLinuxでは可能ですが複雑です、私はこれが他のUnixでも可能だと思いますが、複雑です。