Potrebbe capitare che le regole che gestite con iptables possano diventare improvvisamente centinaia. Alcune di queste però, potrebbe essere dei semplici duplicati.

Lo strumento che corre in aiuto in maniera efficace è certamente awk. Inserito in uno script diventa super.

/sbin/iptables-save | awk '!COMMIT||!x[$0]++'

Inseriamolo in uno script che faccia il lavoro per come dovrebbe essere fatto:

#!/bin/sh

/sbin/iptables-save | awk '!COMMIT||!x[$0]++' > /tmp/tmp_iptables.conf
uniq /tmp/tmp_iptables.conf > /tmp/iptables.conf

echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t raw -F
iptables -t raw -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

echo "Reactivating firewall ..."
/sbin/iptables-restore < /tmp/iptables.conf

echo "All done!"

if [ -f /tmp/iptables.conf ] ; then /bin/rm -f /tmp/iptables.conf ; fi
if [ -f /tmp/tmp_iptables.conf ] ; then /bin/rm -f /tmp/tmp_iptables.conf ; fi

exit 0

Facile vero?