httpsテーブルをブロックするiptables


9

私の組織では、facebook、twitter、gmailなど、httpsでも実行されるいくつかのWebサイトをブロックしたいと思います。上級管理職からの注文により、Squidはここでは使用されません。Untangle Lite Packageとを使用できますiptables

これを行うにはSquid以外のオプションはありますか?また、iptablesこの種のトラフィックをブロックするいくつかのルールは本当に役立ちます。

私はこれを見つけました

iptables -t filter -I INPUT -m string --string facebook.com -j LOG --algo bm
iptables -t filter -I INPUT -m string --string facebook.com -j REJECT --algo bm

しかし、httpsはローカルマシン以外のマシンでも機能します。


2
個人アカウントでhttpsを回避することは会社内でIDを盗むことにつながる可能性があるため、会社に説明する必要があります。すべてのマシンに証明書を展開し、中間者として振る舞うと、誰がFacebookに接続しています。また、私はよくわかりませんが、httpsなしでgmailを接続することはもう不可能だと思います。
Kiwy

これらのIPアドレスをすべて取得した方法を知っていますか
Jagadeesh、2015

回答:


12

URLに基​​づいて照合する代わりに、証明書の内容に基づいて照合してみてください。

iptables -t nat -I INPUT --sport 443 -m string \
                 --string www.facebook.com --algo bm -j REJECT

フィンガープリントを照合することもできますが、宛先が証明書を変更または更新すると、ルールが無効になります。


これは、htmlの本文でもwww.facebook.comに一致するすべてのものをブロックできますが、コメントボックスではこのように合法です。URLレベルでブロックできますが、IPアドレスはどうなりますか?
Nikhil Mulley、2012年

@NikhilMulley:いいえ、Facebookが提供するSSL証明書にのみ一致します。それ以外はすべて暗号化されており、見ることはできません。
バハマ

2
接続の最初のパケットのみがnatテーブルに入ります(natテーブルにはINPUTチェーンがありません)filter。また、それは443がクライアントポートでパケットに一致していることを(非常に)リモートのチャンスがあります
ステファンChazelas

誰かがこのソリューションを使用しましたか?別にの不足の-p tcpルールのため、これは...何か有用であるとは思えない
ivanleoncz

10

URLが暗号化されているため、ファイアウォールはクライアントがアクセスしようとしているHTTPS URLを制御できません。ファイアウォールが制御できるのは、クライアントが接続しているサイトをIPアドレスを使用して制御することだけですが、サイトのHTTPバージョンとHTTPSバージョンが同じURLにある場合、これは役に立ちません(そうでない場合でも、 IPアドレスの膨大なリストを維持するため)。

HTTPSをブロックする唯一の現実的な方法は、完全にブロックすることです。すべての接続が有効なHTTPである必要があると主張します(つまり、クライアントはHTTP回線の送信から開始します)。これは、IPtablesだけでは実行できません。Squidなどの実際のプロトコル対応プロキシが必要です。(Untangle Liteで何ができるかわかりません。)

ほとんどすべてのHTTPSサーバーがそのポート上にあるため、ポート443への送信トラフィックをブロックすることにより、ほとんどのHTTPSトラフィックをブロックできます。または、ホワイトリストのアプローチに従って、ポート80(通常のHTTPポート)への送信トラフィックのみを許可します。

別のアプローチは、すべてのHTTPおよびHTTPS接続をプロキシすることです。次に、URLで照合できます。これには、クライアントに対して中間者攻撃を行う必要があります。独自の証明機関をすべてのクライアントマシンに展開し、信頼のルートとしてそこに登録すると、これを行うことができます。これは非倫理的であると考えられるかもしれません。

あなたが何をしても、断固としたユーザーが環境外にプロキシーをセットアップし、IP over HTTPなどを実行します。

あなたは技術的手段で社会的問題を修正しようとしているが、これはほとんど機能しないか、または管理から愚かな要件を実装するために最善を尽くしているようです(この場合、私はおそらくポート443をブロックするだけにします特定のIP。これにより、役立たずであることを報告できます。


1
Checkpointのようなプロのファイアウォールでは、最新バージョンのクライアント証明書をデプロイせずにhttpsフィルタリングを許可しています。どうやって管理したのかはわかりませんが、機能します。
Kiwy

4

1つのオプションを知っています。

使用する内部DNSサーバーがある場合は、TLDゾーンデータに静的参照を配置して、ドメイン(外部接続を確立したくない)を127.0.0.1に解決します。このようにして、ネットワーク内の中央DNSを使用するすべてのホストは、ドメイン(facebook.com/twitter.com自体)をループバックアドレスに解決します。

これは、ネットワークのクライアントマシンのリゾルバー構成に対して完全な権限のある制御がある場合に機能します。ワークステーション/クライアントが/ etc / hostsまたは/etc/resolv.confのいずれかを変更/編集する権限を持っている場合、それらはこのオプションを回避する可能性があります。


+1。これは、これらの参照を/etc/hostsファイルに挿入することで実行できます。例:127.0.0.1 www.facebook.com

2
または、より文明的な解決策として、DNS Aレコード(またはhosts / hosts.txtエントリ)を設定して、ユーザーがFacebookに送信されなかった理由などを正確に説明するWebサーバーを備えたイントラネットホストを参照するようにします。意図したホスト名(www.facebook.comなど)が証明書のCNと一致しないため、HTTPS。
Alexios

@Alexios:OpenDNSはこのための優れたソリューションです。
Kevin M

@KevinM:ありがとう、知っておくと役に立ちます。私はそれを覚えておきます(私たち自身の小さなDNSファームが働いていますが)
Alexios 2012年

2

オプションは、ネットワークブロックへのルートをブラックホール化することです:(リストされているのはFB用です)

ip route add blackhole 69.171.224.0/19
ip route add blackhole 74.119.76.0/22 
ip route add blackhole 204.15.20.0/22
ip route add blackhole 66.220.144.0/20
ip route add blackhole 69.63.176.0/20
ip route add blackhole 173.252.64.0/18

1
いいえ、そうではありません。facebookのtwitterやgoogleでさえ、それ自体のIP範囲の範囲をもう通信しないIPのリストを維持するのは複雑です。
Kiwy

1

プレーンコンテンツフィルターはsslサイトをブロックできません。

snort / suricataなどの侵入防御ツールを使用します。

サンプルIPSルール:特定のIPアドレスのssl URLをブロックするため。

drop ip any 443 -> 192.168.3.30 any (content:".facebook.com"; msg:"Simplewall Ssl block for User30 : Urls => .facebook.com " sid:26648513;rev:1;)

drop ip any 443 -> 192.168.3.30 any (content:".fbcdn.net"; msg:"Simplewall Ssl block for User30 : Urls => .fbcdn.net " ;sid:11469443;rev:1;)

drop ip any 443 -> 192.168.3.30 any (content:".youtube.com"; msg:"Simplewall Ssl block for User30 : Urls => .youtube.com " ;sid:13989722;rev:1;)

Simplewallのダウンロード:Squid + Suricata IPSが共有するsimplewallポリシールール。


0

あなたはこれをFORWARDチェーンに置くべきです、例えば

iptables -I FORWARD  -m string --string "facebook.com" \
                     --algo bm --from 1 --to 600 -j REJECT

ファイアウォールを除く、ネットワーク上の他のシステムに影響します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.