Exemple #1
0
        public bool DeleteRule(string ruleName)
        {
            RunProcess("iptables", true, out IReadOnlyList <string> lines, "-L --line-numbers");
            string ruleNameWithSpaces = " " + ruleName + " ";

            foreach (string line in lines)
            {
                if (line.Contains(ruleNameWithSpaces, StringComparison.OrdinalIgnoreCase))
                {
                    // rule number is first piece of the line
                    int index   = line.IndexOf(' ');
                    int ruleNum = int.Parse(line.Substring(0, index));

                    // remove the rule from iptables
                    RunProcess("iptables", true, $"-D INPUT {ruleNum}");
                    SaveTableToDisk();

                    // remove the set
                    DeleteSet(ruleName);

                    return(true);
                }
            }

            return(firewall6.DeleteRule(ruleName));
        }