Ejemplo n.º 1
0
        public static void AddApplicationRule(string ruleName, string fileName, FirewallDirection direction,
                                              FirewallProtocol protocol)
        {
            if (Firewall.Instance.IsSupported)
            {
                if (StandardRuleWin8.IsSupported)
                {
                    var rule = new StandardRuleWin8(ruleName, fileName, FirewallAction.Allow,
                                                    direction,
                                                    FirewallProfiles.Domain | FirewallProfiles.Private | FirewallProfiles.Public)
                    {
                        Grouping       = "Celeste Fan Project",
                        Description    = "Auto-generated rules by \"Celeste Fan Project Launcher\"",
                        InterfaceTypes = FirewallInterfaceTypes.Lan | FirewallInterfaceTypes.RemoteAccess |
                                         FirewallInterfaceTypes.Wireless,
                        Protocol = protocol
                    };

                    //if (direction == FirewallDirection.Inbound && (protocol.Equals(FirewallProtocol.TCP) || protocol.Equals(FirewallProtocol.UDP)))
                    //    rule.EdgeTraversalOptions = EdgeTraversalAction.DefferToUser;

                    Firewall.Instance.Rules.Add(rule);
                }
                else if (StandardRuleWin7.IsSupported)
                {
                    var rule = new StandardRuleWin7(ruleName, fileName, FirewallAction.Allow,
                                                    direction,
                                                    FirewallProfiles.Domain | FirewallProfiles.Private | FirewallProfiles.Public)
                    {
                        Grouping       = "Celeste Fan Project",
                        Description    = "Auto-generated rules by \"Celeste Fan Project Launcher\"",
                        InterfaceTypes = FirewallInterfaceTypes.Lan | FirewallInterfaceTypes.RemoteAccess |
                                         FirewallInterfaceTypes.Wireless,
                        Protocol = protocol
                    };

                    //if (direction == FirewallDirection.Inbound && (protocol.Equals(FirewallProtocol.TCP) || protocol.Equals(FirewallProtocol.UDP)))
                    //    rule.EdgeTraversalOptions = EdgeTraversalAction.DefferToUser;

                    Firewall.Instance.Rules.Add(rule);
                }
                else
                {
                    goto default_rule;
                }
                return;
            }
default_rule:
            var defaultRule = FirewallManager.Instance.CreateApplicationRule(
                FirewallProfiles.Domain | FirewallProfiles.Private | FirewallProfiles.Public, ruleName,
                FirewallAction.Allow, fileName, protocol);

            defaultRule.Direction = direction;

            FirewallManager.Instance.Rules.Add(defaultRule);
        }
Ejemplo n.º 2
0
        public static void AddPortRule(string ruleName, ushort portNumber, FirewallDirection direction,
                                       FirewallProtocol protocol)
        {
            if (Firewall.Instance.IsSupported)
            {
                if (StandardRuleWin8.IsSupported)
                {
                    var rule = new StandardRuleWin8(ruleName, portNumber, FirewallAction.Allow,
                                                    direction,
                                                    FirewallProfiles.Domain | FirewallProfiles.Private | FirewallProfiles.Public)
                    {
                        Grouping       = "Celeste Fan Project",
                        Description    = "Auto-generated rules by \"Celeste Fan Project Launcher\"",
                        InterfaceTypes = FirewallInterfaceTypes.Lan | FirewallInterfaceTypes.RemoteAccess |
                                         FirewallInterfaceTypes.Wireless,
                        Protocol = protocol
                    };

                    Firewall.Instance.Rules.Add(rule);
                }
                else if (StandardRuleWin7.IsSupported)
                {
                    var rule = new StandardRuleWin7(ruleName, portNumber, FirewallAction.Allow,
                                                    direction,
                                                    FirewallProfiles.Domain | FirewallProfiles.Private | FirewallProfiles.Public)
                    {
                        Grouping       = "Celeste Fan Project",
                        Description    = "Auto-generated rules by \"Celeste Fan Project Launcher\"",
                        InterfaceTypes = FirewallInterfaceTypes.Lan | FirewallInterfaceTypes.RemoteAccess |
                                         FirewallInterfaceTypes.Wireless,
                        Protocol = protocol
                    };

                    Firewall.Instance.Rules.Add(rule);
                }
                else
                {
                    goto default_rule;
                }

                return;
            }
default_rule:
            var defaultRule = FirewallManager.Instance.CreatePortRule(
                FirewallProfiles.Domain | FirewallProfiles.Private | FirewallProfiles.Public, ruleName,
                FirewallAction.Allow, portNumber, protocol);

            defaultRule.Direction = direction;

            FirewallManager.Instance.Rules.Add(defaultRule);
        }