C# ile Windows Güvenlik Duvarı(Firewall ) Kural(Roles) Ekleme | Ebubekir Bastama
Windows Güvenlik Duvarı
Bütün "Windows" işletim sistemleri içerisinde yer alan bir güvenlik yazılımıdır.
Microsoft'un resmi ürünlerinden biri olan ve halen geliştirilmesine devam edilen "Windows" işletim sistemleri, bir kişisel bilgisayar kullanıcısının ihtiyacı olabileceği birçok temel yazılımla birlikte sunulmakta olup ve özellikle yeni nesil teknoloji'de
güvenlik risklerin sayısının oldukça fazla olması nedeniyle "Microsoft" kullanıcıları kimlik avı ve diğer tehditlere karşı korumak için kendi güvenlik yazılımını varsayılan olarak sunmaktadır.
Microsoft'un Güvenlik Duvarların'da değişik kurallar oluşturarak erişim kısıtlamaları veya izinler verebiliriz fakat bazen bazı kuralları elle vermek yerine yazacağımız bir program ile yapmamız hem hız hemde yazdığımız diğer otomasyon ve programların izinleri için daha hızlı ve sorunsuz işlemler gerçekleştirecektir.
Şimdi sizlere C# Dili ile Nasıl Windows Güvenlik Duvarı(Firewall ) Kural(Roles) Eklemeyi göstereceğim ve aynı zaman'da aşağıdaki "github" hesabımız'dan örnek projeye ulaşabilirsiniz.
C# Kodu:
Not:Projemize öncelikle “FirewallAPI.dll”i eklememiz gerekmektedir.
Eklemek için “Solution Explorer -> References -> Add Reference -> Browse ” browse butonuna tıklayıp açılan ekrandan “C:\Windows\System32” yoluna gidip “FirewallAPI.dll” seçiyoruz ve projemize ekliyoruz.
using NetFwTypeLib;
Type tNetFwPolicy2 = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
INetFwPolicy2 fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(tNetFwPolicy2);
var currentProfiles = fwPolicy2.CurrentProfileTypes;
INetFwRule firewallRule = fwPolicy2.Rules.OfType<INetFwRule>().Where(
x => x.Name == textBoxX2.Text)
.FirstOrDefault(); // Koymak istediğiniz kural ile kayıtlı kayıt var mı diye kontrol ediyoruz
if (firewallRule == null)
{
INetFwRule2 inboundRule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
inboundRule.Enabled = true;
inboundRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
inboundRule.Protocol = 6; // TCP Protokol Numarası
inboundRule.LocalPorts = textBoxX1.Text; // Açmak istediğiniz port
inboundRule.Name = textBoxX2.Text; // Kural ismi
inboundRule.ApplicationName = textBoxX3.Text;
inboundRule.Description = richTextBox1.Text;
inboundRule.Profiles = currentProfiles;
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Add(inboundRule);
MessageBox.Show("Kural Başarılı Bir Şekilde Oluşturuldu.");
}
else
{
MessageBox.Show("Bu Kural Mevcut.");
}
güvenlik risklerin sayısının oldukça fazla olması nedeniyle "Microsoft" kullanıcıları kimlik avı ve diğer tehditlere karşı korumak için kendi güvenlik yazılımını varsayılan olarak sunmaktadır.
Microsoft'un Güvenlik Duvarların'da değişik kurallar oluşturarak erişim kısıtlamaları veya izinler verebiliriz fakat bazen bazı kuralları elle vermek yerine yazacağımız bir program ile yapmamız hem hız hemde yazdığımız diğer otomasyon ve programların izinleri için daha hızlı ve sorunsuz işlemler gerçekleştirecektir.
Şimdi sizlere C# Dili ile Nasıl Windows Güvenlik Duvarı(Firewall ) Kural(Roles) Eklemeyi göstereceğim ve aynı zaman'da aşağıdaki "github" hesabımız'dan örnek projeye ulaşabilirsiniz.
C# Kodu:
Not:Projemize öncelikle “FirewallAPI.dll”i eklememiz gerekmektedir.
Eklemek için “Solution Explorer -> References -> Add Reference -> Browse ” browse butonuna tıklayıp açılan ekrandan “C:\Windows\System32” yoluna gidip “FirewallAPI.dll” seçiyoruz ve projemize ekliyoruz.
using NetFwTypeLib;
Type tNetFwPolicy2 = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
INetFwPolicy2 fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(tNetFwPolicy2);
var currentProfiles = fwPolicy2.CurrentProfileTypes;
INetFwRule firewallRule = fwPolicy2.Rules.OfType<INetFwRule>().Where(
x => x.Name == textBoxX2.Text)
.FirstOrDefault(); // Koymak istediğiniz kural ile kayıtlı kayıt var mı diye kontrol ediyoruz
if (firewallRule == null)
{
INetFwRule2 inboundRule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
inboundRule.Enabled = true;
inboundRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
inboundRule.Protocol = 6; // TCP Protokol Numarası
inboundRule.LocalPorts = textBoxX1.Text; // Açmak istediğiniz port
inboundRule.Name = textBoxX2.Text; // Kural ismi
inboundRule.ApplicationName = textBoxX3.Text;
inboundRule.Description = richTextBox1.Text;
inboundRule.Profiles = currentProfiles;
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Add(inboundRule);
MessageBox.Show("Kural Başarılı Bir Şekilde Oluşturuldu.");
}
else
{
MessageBox.Show("Bu Kural Mevcut.");
}
Hiç yorum yok
Yorum Gönder