Ho bisogno di interrogare le regole esistenti, oltre ad essere in grado di aggiungere e cancellare facilmente le regole. Non ho trovato alcuna API per farlo. C'è qualcosa che mi manca?Come posso gestire in modo programmatico le regole di iptables al volo?
Il più vicino a una soluzione è l'utilizzo di iptables-save | iptables-xml
per l'interrogazione e la chiamata manuale del comando iptables stesso per aggiungere/eliminare regole. Un'altra soluzione che ho considerato è semplicemente la rigenerazione dell'intero set di regole dal database della mia applicazione e il lavaggio dell'intera catena, quindi l'applicazione di nuovo. Ma voglio evitare questo perché non voglio rilasciare alcun pacchetto, a meno che non ci sia un modo per farlo atomicamente. Mi chiedo se c'è un modo migliore.
Un'AP in C sarebbe ottima; tuttavia, poiché sto pianificando di creare questo in un programma suideo autonomo, anche le librerie che fanno questo in QUALUNQUE lingua vanno bene.
Apparentemente è possibile passare da XML a iptables-restore 'xsltproc iptables.xslt my-iptables.xml | iptables-restore'. Vedi la pagina di manuale di 'iptables-xml'. – CMCDragonkai