Exemple #1
0
        public IPBanLinuxFirewall(string rulePrefix = null) : base(rulePrefix)
        {
            MigrateOldDefaultRuleNames();
            firewall6 = new IPBanLinuxFirewall6(RulePrefix + "v6_");

            /*
             * // restore existing sets from disk
             * RunProcess("ipset", true, out IReadOnlyList<string> existingSets, $"-L | grep ^Name:");
             * foreach (string set in existingSets.Where(s => s.StartsWith("Name: " + RulePrefix, StringComparison.OrdinalIgnoreCase))
             *  .Select(s => s.Substring("Name: ".Length)))
             * {
             *  RunProcess("ipset", true, $"flush {set}");
             * }
             */

            foreach (string setFile in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.set"))
            {
                RunProcess("ipset", true, $"restore < \"{setFile}\"");
            }

            allowedIPAddresses = LoadIPAddresses(AllowRuleName, "ACCEPT", "ip", allowRuleMaxCount);
            bannedIPAddresses  = LoadIPAddresses(BlockRuleName, "DROP", "ip", blockRuleMaxCount);

            // restore existing rules from disk
            string ruleFile = GetTableFileName();

            if (File.Exists(ruleFile))
            {
                RunProcess("iptables-restore", true, $"< \"{ruleFile}\"");
            }
        }
Exemple #2
0
 protected override void OnInitialize()
 {
     base.OnInitialize();
     firewall6 = new IPBanLinuxFirewall6(RulePrefix);
 }