iptables-xml を使うと、iptables-save の出力をより扱いやすい XML 形式に変換し、標準出力に出力することができる。 ファイルに書き出すには、シェルで提供されている I/O リダイレクションを使うこと。
iptables-xml does a mechanistic conversion to a very expressive xml format; the only semantic considerations are for -g and -j targets in order to discriminate between <call> <goto> and <nane-of-target> as it helps xml processing scripts if they can tell the difference between a target like SNAT and another chain.
出力例を以下に示す。
<iptables-rules>
<table name="mangle">
<chain name="PREROUTING" policy="ACCEPT" packet-count="63436"
byte-count="7137573">
<rule>
<conditions>
<match>
<p>tcp</p>
</match>
<tcp>
<sport>8443</sport>
</tcp>
</conditions>
<actions>
<call>
<check_ip/>
</call>
<ACCEPT/>
</actions>
</rule>
</chain>
</table>
</iptables-rules>
XML から iptables-save への変換は、以下のように iptables.xslt スクリプトと xsltproc を使って行うことができる。 libxsltproc などを使ったカスタムプログラムで行うことができる。
xsltproc iptables.xslt my-iptables.xml | iptables-restore