Как программно управлять правилами iptables на лету?
Мне нужно запросить существующие правила, а также возможность легко добавлять и удалять правила. Я не нашел API для этого. Есть ли что-то, чего мне не хватает?
Самое близкое, что я пришел к решению, используетiptables-save | iptables-xml
для запроса и ручного вызова самой команды iptables для добавления / удаления правил. Другое решение, которое я рассмотрел, заключается в простом восстановлении всего набора правил из базы данных моего приложения и очистке всей цепочки с последующим применением его снова. Но я хочу избежать этого, поскольку я не хочу отбрасывать какие-либо пакеты - если только не существует способа сделать это атомарно. Мне интересно, есть ли лучший способ.
API в C был бы великолепен; однако, поскольку я планирую встроить это в отдельную программу suid, библиотеки, которые делают это на ЛЮБОМ языке, тоже подойдут.