2

私は WFP でいくつかの作業を行っていますが、FWPM_LAYER_ALE_CONNECT_REDIRECT_V4 レイヤーでフィルターをブロックすることに問題があります。ローカル IP からのトラフィックをブロックする必要がありますが、そうではありません。レイヤーを FWPM_LAYER_ALE_AUTH_CONNECT_V4 に変更すると、フィルターが正しく機能します。

だから私はいくつかの質問があります:

1) FWPM_LAYER_ALE_CONNECT_REDIRECT_V4 レイヤーで指定したローカル IP からのトラフィックをブロックできますか (以下のコードは機能しません)。

2) ale_connect_redirect(または ale_bind_redirect) レイヤーで local_ip(remote_ip) を使用して条件を作成できますか?

UINT32 test_wfp_filter(HANDLE engine_handle,
FWP_V4_ADDR_AND_MASK* source_ip,
UINT8 weight)
{  
UINT32 status;
FWPM_FILTER filter = { 0 };
FWPM_FILTER_CONDITION filter_conditions[1] = { 0 };

filter_conditions[0].fieldKey = FWPM_CONDITION_IP_LOCAL_ADDRESS;
filter_conditions[0].matchType = FWP_MATCH_EQUAL;
filter_conditions[0].conditionValue.type = FWP_V4_ADDR_MASK;
filter_conditions[0].conditionValue.v4AddrMask = source_ip;

status = UuidCreate(&(filter.filterKey));

if (status != NO_ERROR)
{
    return status;
}

filter.layerKey = FWPM_LAYER_ALE_CONNECT_REDIRECT_V4;

//With this layerKey filter doesn't work,
//but with FWPM_LAYER_ALE_AUTH_CONNECT_V4 filter works properly

filter.displayData.name = L"Blocking filter";
filter.displayData.description = L"Blocks all trafic from current comp";
filter.action.type = FWP_ACTION_BLOCK;
filter.subLayerKey = WFP_TEST_SUBLAYER;
filter.weight.type = FWP_UINT8;
filter.weight.uint8 = weight;
filter.filterCondition = filter_conditions;
filter.numFilterConditions = 1;

status = FwpmFilterAdd(engine_handle, &filter, 0, 0);
return 0;
}

ありがとうございました!

4

1 に答える 1

2

あなたが達成しようとしていることは100%明らかではありませんが、

  1. いいえ、ALE_CONNECT_REDIRECT および ALE_BIND_REDIRECT レイヤーは、フローをブロックするのではなく、フローに関連付けられたソース/宛先の詳細を (確立前に) 変更するためのものです。使用例は、ローカル プロキシの作成です。ALE_CONNECT_REDIRECT コールアウトをインストールして、試行された接続の宛先の詳細を変更し、最初に意図された場所ではなく、実際に独自のアプリケーションに接続されるようにすることができます。

  2. ALE_CONNECT_REDIRECT および ALE_BIND_REDIRECT で送信元および宛先 IP アドレス条件を確実に使用できますが、これらのレイヤーはブロックではなくリダイレ​​クト用であることを覚えておいてください。

于 2016-02-02T16:02:12.923 に答える