これは私の考えでは、`iproute2
フレームワークを使用しています。
は、ルールによって(私の例のテーブルID 33で)ルーティングテーブルblockhole /到達不能バケットを作成し、それを高いPRIOを与える:
# ip rule add from all lookup 33 prio 1
今あなたがブロックしようとしている接続を見つけます。私の場合は、google.comに接続するためにクロムを使用しています
# ss -n -e -p | grep "chrom" | grep "173.194.*:443"
ESTAB 0 0 10.211.55.4:46710 173.194.35.2:443 timer: (keepalive,38sec,0) users:(("chromium-browse",8488,106)) uid:1000 ino:38318 sk:f6a4f800
ESTAB 0 0 10.211.55.4:49288 173.194.35.18:443 timer:(keepalive,34sec,0) users:(("chromium-browse",8488,109)) uid:1000 ino:38047 sk:f6a4cb00
それでは、表33に173.194.0.0/16を追加して、キャッシュをフラッシュしてみましょう:
# ip route add unreachable 173.194.0.0/16 table 33
# ip route flush cache
Googleアカウントへの接続を試み.comがブラウザに表示され、ブラウザにERR_CONNECTION_REFUSED
が表示されます。あなたの自主閉塞、あなたの簡単なフラッシュバケットのベール持ち上げるために
:もちろん
# ip route flush table 33
を使用すると、よりきめ細かな区別が必要な場合、あなたは正確なフラグにtc
とU32分類器を使用することができますIP:PORT
コンボ(および他のパケット側面)とバケット(未テスト)にFWルールを追加します。
# tc filter add dev eth1 parent ffff: protocol ip prio 1 u32 \
match ip src 173.194.0.0/16 match ip dport 443 classid :1
# ip rule add fwmark 1 table 33 prio 1 realms 3/4
し、適切な権限を持っている:http://www.digitage.co.uk/digitage/software/linux-security/cutter
Debianはそれのパッケージを持っています。 –
このコマンドは、ファイアウォールテーブルにエントリを追加するだけです。実際には接続を閉じるわけではありませんが、FFは送受信しようとする次のパケットにエラーが発生するため、動作するはずです。 –
@Aaron Digulla:良い点 – vitaut