Necesito consultar las reglas existentes, así como también poder agregar y eliminar reglas fácilmente. No he encontrado ninguna API para hacer esto. ¿Hay algo que me estoy perdiendo?¿Cómo puedo gestionar programáticamente las reglas de iptables sobre la marcha?
Lo más cerca que he llegado a una solución es usar iptables-save | iptables-xml
para consultar y llamar manualmente el comando de iptables para agregar/eliminar reglas. Otra solución que he considerado es simplemente regenerar todo el conjunto de reglas de la base de datos de mi aplicación y vaciar toda la cadena, y luego volver a aplicarla. Pero quiero evitar esto ya que no quiero soltar ningún paquete, a menos que haya una manera de hacerlo atómicamente. Me pregunto si hay una mejor manera.
Una API en C sería genial; sin embargo, como estoy planeando convertir esto en un programa suid independiente, las bibliotecas que hacen esto en CUALQUIER idioma también están bien.
Aparentemente es posible pasar de XML a iptables-restore 'xsltproc iptables.xslt my-iptables.xml | iptables-restore'. Ver la página de manual de 'iptables-xml'. – CMCDragonkai