Как создать правило брандмауэра в стандарте .net 2.0, которое может поддерживаться в Linux? ⇐ Linux
-
Anonymous
Как создать правило брандмауэра в стандарте .net 2.0, которое может поддерживаться в Linux?
В настоящее время мы используем NetFwTypeLib COMReference для добавления правила брандмауэра в наше приложение, но оно работает только в Windows
public static bool AddRule(Правило брандмауэра){ INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule")); firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW; firewallRule.Description = rule.RuleDescription; firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN; firewallRule.Enabled = правда; firewallRule.ApplicationName = rule.ApplicationPath; firewallRule.RemoteAddresses = "LocalSubnet"; firewallRule.InterfaceTypes = "Все"; firewallRule.Name = rule.RuleName; переключатель (правило.Протокол) { случай FirewallRule.ProtocolType.TCP: firewallRule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP; перерыв; случай FirewallRule.ProtocolType.UDP: firewallRule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP; перерыв; по умолчанию: throw new ArgumentOutOfRangeException("rule", "Свойство Protocol правила брандмауэра содержит недопустимое значение!"); } INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); firewallPolicy.Rules.Add(firewallRule); вернуть истину; } этот фрагмент кода поддерживается только в Windows, поэтому как мне заменить этот фрагмент кода на другую библиотеку, чтобы наш код работал и в Linux?
В настоящее время мы используем NetFwTypeLib COMReference для добавления правила брандмауэра в наше приложение, но оно работает только в Windows
public static bool AddRule(Правило брандмауэра){ INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule")); firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW; firewallRule.Description = rule.RuleDescription; firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN; firewallRule.Enabled = правда; firewallRule.ApplicationName = rule.ApplicationPath; firewallRule.RemoteAddresses = "LocalSubnet"; firewallRule.InterfaceTypes = "Все"; firewallRule.Name = rule.RuleName; переключатель (правило.Протокол) { случай FirewallRule.ProtocolType.TCP: firewallRule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP; перерыв; случай FirewallRule.ProtocolType.UDP: firewallRule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP; перерыв; по умолчанию: throw new ArgumentOutOfRangeException("rule", "Свойство Protocol правила брандмауэра содержит недопустимое значение!"); } INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); firewallPolicy.Rules.Add(firewallRule); вернуть истину; } этот фрагмент кода поддерживается только в Windows, поэтому как мне заменить этот фрагмент кода на другую библиотеку, чтобы наш код работал и в Linux?
Мобильная версия