Pentru aceasta vom folosi un script perl. Creați un fișier cu numele:
mkscript.pl
Adăugați în el următorul conținut:
#!/usr/bin/perl use strict; if (@ARGV && $ARGV[0] =~ /^-/) { print 'converts an iptables-save file to a shell script', "\nUse: $0 [filename]\n"; exit 0; } open I, shift || '-' or die $!; my($table,$ipt); print "#!/bin/sh #iptables script, generated from iptables-save file IPT='/sbin/iptables' "; while (<I>) { if (/^\s*(#|$)/) { print; next; } if (/^\*(.*)/) { $table = $1; $ipt = $table eq 'filter' ? '$IPT' : '$IPT -t '.$table; print "$ipt -F\n"; print "$ipt -X\n"; next; } elsif (/^COMMIT/) { $table = 0; next; } die unless $table; if (/^:(\S+) +([^- ]\S*)/) { print "$ipt -P $1 $2\n"; next; } elsif (/^:(\S+)/) { print "$ipt -N $1\n"; next; } s/^\[[0-9:]+\]\s*//; die unless /^-A/; print "$ipt $_"; }
Folosiți următoarea comandă pentru a genera scriptul:
iptables-save | mkscript.pl > /etc/firewall.sh