2011-06-03 5 views
10

いくつかのプログラムから既存のTCP/IP接続を切断するために使用できるコマンドはありますか?Linuxで任意のTCP/IP接続を切断するにはどうすればよいですか?

OSが認識しているTCP接続には何かがありますか、またはOSはローカルソケット上のTCP転送のみを参照し、どの要求がどのソケットに提供されているかを知りませんか?

たとえば、Firefoxが一部のサーバーのポート80に要求を送信し、その応答を待っている場合。 Firefoxのリスニングポートを見つけてFirefoxを騙してERR_CONNECTION_REFUSEDなどのように表示することは可能ですか?

私は、データフローを妨げず、アプリケーションがこの状況を途中で処理できるようにしたいと考えていますが、ソケットまたはTCP/IP接続を閉じることができます(ソケットは、私が思うのは責任がありますか?接続はOSのプロパティかアプリケーションの何かだけですか?)ので、アプリケーションはすぐに反応します。

答えて

3

tcpkillを使用してください。

+1

し、適切な権限を持っている:http://www.digitage.co.uk/digitage/software/linux-security/cutter

Debianはそれのパッケージを持っています。 –

+2

このコマンドは、ファイアウォールテーブルにエントリを追加するだけです。実際には接続を閉じるわけではありませんが、FFは送受信しようとする次のパケットにエラーが発生するため、動作するはずです。 –

+0

@Aaron Digulla:良い点 – vitaut

0

これは私の考えでは、`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 
+0

私はこの解決策もブラウザーが何かを送信しようとし、タイムアウトをトリガーするまで、ブラウザーが接続に失敗するようにしますが、TCPレイヤー上の接続を閉じることはできないと思います。 – dronus

2

カッター

カッターはTCP/IP接続の両端にパケットを送信して接続を終了します。これは、不要な接続を切断するためにLinuxルーターで使用するように設計されています。

ウェブサイト:https://packages.debian.org/stable/cutter

関連する問題