1

Nous avons beaucoup de machines, et cela peut être très pénible lorsqu'un client sur l'un d'entre eux demande que l'on bloque certaines adresses IP. Nous exécutons des serveurs de jeu, donc généralement IPs qui doivent être bloqués peuvent être n'importe quel IP, n'importe quel port, etc.Ajouter des adresses IP bloquées à l'aide de .NET Framework

Je voudrais écrire une petite application pour simplifier l'ajout d'IP Bans dans Server 2008. Y at-il un bon moyen de faites-le, que ce soit à travers IPSec ou Windows Firewall? Certaines machines ont le pare-feu éteint, donc IPSec serait préférable, mais soit bien.

Répondre

3

Merci beaucoup pour les liens. J'ai été en mesure de le faire en utilisant le code suivant. Vous devrez toujours obtenir un objet FWManager à utiliser.

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); 
    } 
} 
0

Il y a quelque temps, je cherchais aussi une solution similaire. À la fin, nous choisissons un moyen un peu différent de résoudre nos problèmes, mais je me souviens encore qu'il y avait une API pour le pare-feu Windows. Malheureusement, je n'ai pas les URL sauvegardées, mais vous pouvez google "C# windows pare-feu API". Ici vous avez quelques liens:

  1. (Les échantillons sont en 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 question similaire: What are my options for adding and removing IPSec policies on Windows Server with C#?

Bonne chance!

Questions connexes