// ReSharper disable once TooManyDeclarations
        public void CreateDirectIPv6Rule()
        {
            var ruleName      = RulesPrefix + Guid.NewGuid().ToString("N");
            var remoteAddress = SingleIP.Parse("2607:fea8:4260:31a::9");
            var rule          = new FirewallWASRule(
                ruleName,
                FirewallAction.Block,
                FirewallDirection.Outbound,
                FirewallProfiles.Public
                )
            {
                Protocol        = FirewallProtocol.Any,
                RemoteAddresses = new IAddress[] { remoteAddress }
            };

            _firewall.Rules.Add(rule);

            var checkRule = _firewall.Rules.FirstOrDefault(firewallRule => firewallRule.Name == ruleName);

            Assert.IsNotNull(checkRule);
            Assert.IsTrue(checkRule.RemoteAddresses.SequenceEqual(new IAddress[] { remoteAddress }));
            Assert.AreEqual(checkRule.Profiles, FirewallProfiles.Public);
            Assert.AreEqual(checkRule.Direction, FirewallDirection.Outbound);
            Assert.AreEqual(checkRule.Action, FirewallAction.Block);

            _firewall.Rules.Remove(rule);

            checkRule = _firewall.Rules.FirstOrDefault(firewallRule => firewallRule.Name == ruleName);
            Assert.IsNull(checkRule);
        }
        // ReSharper disable once TooManyDeclarations
        public void CreateDirectICMPRule()
        {
            var ruleName = RulesPrefix + Guid.NewGuid().ToString("N");
            var rule     = new FirewallWASRule(
                ruleName,
                FirewallAction.Allow,
                FirewallDirection.Inbound,
                FirewallProfiles.Domain
                )
            {
                Protocol        = FirewallProtocol.ICMPv4,
                RemoteAddresses = new IAddress[] { SingleIP.Parse("192.168.0.1") }
            };

            _firewall.Rules.Add(rule);

            var checkRule = _firewall.Rules.FirstOrDefault(firewallRule => firewallRule.Name == ruleName);

            Assert.IsNotNull(checkRule);
            Assert.AreEqual(checkRule.Protocol, FirewallProtocol.ICMPv4);
            Assert.AreEqual(checkRule.Profiles, FirewallProfiles.Domain);

            _firewall.Rules.Remove(rule);

            checkRule = _firewall.Rules.FirstOrDefault(firewallRule => firewallRule.Name == ruleName);
            Assert.IsNull(checkRule);
        }
Ejemplo n.º 3
0
        private static void AddFwRule(string ruleName, string exeFullPath)
        {
            var rule = new FirewallWASRule(ruleName,
                                           exeFullPath,
                                           FirewallAction.Allow,
                                           FirewallDirection.Inbound,
                                           FirewallProfiles.Private | FirewallProfiles.Public | FirewallProfiles.Domain);

            FirewallManager.Instance.Rules.Add(rule);
        }
Ejemplo n.º 4
0
        public void bansAfterEnoughFailures()
        {
            for (int i = 0; i < MAX_ALLOWED_FAILURES + 1; i++)
            {
                eventLogListener.failure += Raise.With(null, SOURCE_ADDRESS);
            }

            Assert.NotEmpty(firewallRules);
            FirewallWASRule actual = firewallRules.First();

            Assert.True(actual.IsEnable);
            Assert.Equal("Banned 192.0.2.0/24", actual.Name);
            Assert.Equal("Fail2Ban4Win", actual.Grouping);
            Assert.Equal(FirewallAction.Block, actual.Action);
            Assert.Equal(FirewallDirection.Inbound, actual.Direction);
            Assert.Equal(NetworkAddress.Parse("192.0.2.0/24"), actual.RemoteAddresses[0]);
        }