Site Tools


clearing_iptables

Clearing iptables custom commands prior to applying new ones

As an example, let's say that you wanted to use some custom iptables commands in a script, such as the firewall script. (Actually, the following principles would apply to any recurring script, such as “WAN Up”).


You can remove previously-added iptables directives using a simple approach:


nvram get script_fire | grep -E '^iptables*' | sed 's/-A\|-I/-D/' | while read line; do exec ${line} &>/dev/null; done


The commands below will check what iptables -A (append) or -I (insert) directives have been issued previously in the current Script/Firewall text. They will then force a run of the same command, replacing any instance of -A or -I with a -D (Delete) command. In essence, this will reverse/remove any previous user-added iptables directives.

You might have created custom tables in which to use advanced iptables commands. This is usually performed using the “-N” (new) command. The same principles described above will also apply to previously-issued directives which used the -N command.


Here are a few rules to remember when using these commands:


  • First, you need to dereference the custom table from the built-in one,
    using the above method.
  • A table must then be emptied with the -F (Flush) switch/parameter
    (for example: “iptables -F $TABLE_NAME”) .
  • Only then will you be allowed to remove the table by using the command:
    iptables -X $TABLE_NAME”.


clearing_iptables.txt · Last modified: 2024/10/31 21:09 by hogwild