1

私たちは多くのマシンを所有しており、そのうちの 1 台の顧客が一部の IP をブロックするように要求した場合、それはかなりの苦痛になる可能性があります。ゲームサーバーを実行しているため、通常、ブロックする必要がある IP は任意の IP、任意のポートなどです。

Server 2008 に IP 禁止を簡単に追加するための小さなアプリケーションを書きたいと思います。これを行う良い方法はありますか?それが IPSec または Windows ファイアウォールを介して行われますか? 一部のマシンではファイアウォールがオフになっているため、IPSec が優先されますが、どちらでもかまいません。

4

2 に答える 2

3

リンクありがとうございます。次のコードを使用してこれを実行することができました。使用するには、引き続きFWManagerオブジェクトを取得する必要があります。

private void btnBlock_Click(object sender, EventArgs e)
{
    String IP = txtAddress.Text;
    txtAddress.Clear();

    if (IsAddressValid(IP))
    {
        INetFwRule2 firewallRule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));

        firewallRule.Name = "BrutalNT: IP Access Block " + txtAddress.Text;
        firewallRule.Description = "Block Incoming Connections from IP Address.";
        firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
        firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
        firewallRule.Enabled = true;
        firewallRule.InterfaceTypes = "All";
        firewallRule.RemoteAddresses = txtAddress.Text;

        INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
        firewallPolicy.Rules.Add(firewallRule);

        String msg = "IP Address \"" + IP + "\" Blocked Successfully!";
        MessageBox.Show(msg, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    else
    {
        String msg = "IP Address \"" + IP + "\" was Invalid!";
        MessageBox.Show(msg, "Failed", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
}
于 2011-11-30T01:55:54.890 に答える
0

少し前に、私も同様の解決策を探していました。最後に、問題を解決するために少し異なる方法を選択しましたが、それでも Windows ファイアウォール用の API があったことを覚えています。残念ながら、URL は保存されていませんが、「C# Windows Firewall API」をグーグルで検索できます。ここにいくつかのリンクがあります:

  1. (サンプルは VBScript です) http://msdn.microsoft.com/en-us/library/windows/desktop/aa366415%28v=vs.85%29.aspx
  2. http://social.msdn.microsoft.com/Forums/en-US/windowssecurity/thread/10c6ff4b-701b-4351-a3d8-a716d8831a66/
  3. http://blogs.msdn.com/b/securitytools/archive/2009/08/21/automating-windows-firewall-settings-with-c.aspx

EDIT 同様の質問: C# を使用して Windows Server で IPSec ポリシーを追加および削除するためのオプションは何ですか?

幸運を!

于 2011-11-28T10:46:08.497 に答える