2017-02-23 9 views
0

netfilterのチェーンでいくつかのURLをブロックするには、いくつかのパケットに対してNF_DROPを返すと、同じ要求に対して複数のパケットが得られます。同じURLをブロックする不要なプロセスを避けるために、後続のパケットを停止したい。同じURLに対する要求を繰り返すのではなく、いくつかのエラーページを表示する - 私の場合にすなわち、Webブラウザを -netfilterでNF_DROPを返した後の後続パケットを停止する方法はありますか?

NF_DROPのような任意の値は、私はその依頼者ので、このプロセスを停止するために返すことができるということ、ありますか?

リクエストされたURLをパケットに置き換えて、NF_ACCEPTを返すと、リクエスタがページを取得してリクエストを停止することはできますか?

答えて

0

クライアント(あなたの場合はブラウザ)は、送信した内容がサーバーによって受け入れられなかった理由を認識しません。クライアントはackを得ると予想したが、それはしなかった。それで彼は依頼を再送し続けます。 要求を停止するために、リセットパケットを(サーバーのIPアドレスを使用して)クライアントに送信する必要があります。 エラーページを表示するには、より複雑ですが可能です。

+0

ありがとうございました。私はカーネル空間からユーザ空間の 'netfilter'までパケットをキューイングし、処理後にエラーHTMLページをクライアントに送ってこれを解決しました。 –

+0

これはいいですが、パケットを盗み、IPアドレスとポートを書き換えて、RSTフラグを立て、IPとTCPの両方のチェックサムを修正してNF_ACCEPTを返すことができます。 –

関連する問題