|
3 | 3 | # parallelcluster-iptables |
4 | 4 | # |
5 | 5 | # chkconfig: 12345 99 99 |
6 | | -# description: Backup and restore iptables rules |
| 6 | +# description: Backup and restore iptables rules (both for IPv4 and IPv6) |
7 | 7 |
|
8 | 8 | ### BEGIN INIT INFO |
9 | 9 | # Provides: $parallelcluster-iptables |
|
16 | 16 | ### END INIT INFO |
17 | 17 |
|
18 | 18 | IPTABLES_RULES_FILE="<%= @iptables_rules_file %>" |
| 19 | +IP6TABLES_RULES_FILE="<%= @ip6tables_rules_file %>" |
19 | 20 |
|
20 | | -function start() { |
21 | | - if [[ -f $IPTABLES_RULES_FILE ]]; then |
22 | | - iptables-restore < $IPTABLES_RULES_FILE |
23 | | - echo "iptables rules restored from file: $IPTABLES_RULES_FILE" |
| 21 | +function save_tables() { |
| 22 | + local iptables_command=$1 |
| 23 | + local iptables_file=$2 |
| 24 | + echo "saving iptables rules to file: $iptables_file" |
| 25 | + mkdir -p $(dirname $iptables_file) |
| 26 | + $iptables_command > $iptables_file |
| 27 | + echo "iptables rules saved to file: $iptables_file" |
| 28 | +} |
| 29 | + |
| 30 | +function restore_tables() { |
| 31 | + local iptables_command=$1 |
| 32 | + local iptables_file=$2 |
| 33 | + if [[ -f $iptables_file ]]; then |
| 34 | + $iptables_command < $iptables_file |
| 35 | + echo "iptables rules restored from file: $iptables_file" |
24 | 36 | else |
25 | | - echo "iptables rules left unchanged as file was not found: $IPTABLES_RULES_FILE" |
| 37 | + echo "iptables rules left unchanged as file was not found: $iptables_file" |
26 | 38 | fi |
27 | 39 | } |
28 | 40 |
|
| 41 | +function start() { |
| 42 | + restore_tables iptables-restore $IPTABLES_RULES_FILE |
| 43 | + restore_tables ip6tables-restore $IP6TABLES_RULES_FILE |
| 44 | +} |
| 45 | + |
29 | 46 | function stop() { |
30 | | - echo "saving iptables rules to file: $IPTABLES_RULES_FILE" |
31 | | - mkdir -p $(dirname $IPTABLES_RULES_FILE) |
32 | | - iptables-save > $IPTABLES_RULES_FILE |
33 | | - echo "iptables rules saved to file: $IPTABLES_RULES_FILE" |
| 47 | + save_tables iptables-save $IPTABLES_RULES_FILE |
| 48 | + save_tables ip6tables-save $IP6TABLES_RULES_FILE |
34 | 49 | } |
35 | 50 |
|
36 | 51 | case "$1" in |
|
0 commit comments