Como posso programaticamente gerenciar as regras do iptables on the fly?

Preciso consultar regras existentes, além de poder adicionar e excluir regras facilmente. Eu não encontrei nenhuma API para fazer isso. Existe algo que eu estou sentindo falta?

O mais próximo que cheguei de uma solução é usariptables-save | iptables-xml para consultar e chamar manualmente o próprio comando iptables para adicionar / excluir regras. Outra solução que considerei é simplesmente regenerar todo o conjunto de regras do banco de dados do meu aplicativo e liberar toda a cadeia e, em seguida, aplicá-la novamente. Mas eu quero evitar isso, pois não quero descartar nenhum pacote - a menos que haja uma maneira de fazer isso atomicamente. Eu estou querendo saber se há um caminho melhor.

Uma API em C seria ótima; no entanto, como estou planejando criar isso em um programa suid independente, as bibliotecas que fazem isso em QUALQUER linguagem também estão bem.

questionAnswers(8)

yourAnswerToTheQuestion