",&text('index_ecommand', "$c"),"
\n"; - &ui_print_footer("/", $text{'index'}); - exit; - } - -# Check if the kernel supports ip6tables -$out = &backquote_command("ip6tables -n -t filter -L OUTPUT 2>&1"); -if ($?) { - print "
",&text('index_ekernel', "
$out"),"
\n"; - &ui_print_footer("/", $text{'index'}); - exit; - } - -# Check if the distro supports ip6tables -if (!$config{'direct'} && defined(&check_ip6tables) && - ($err = &check_ip6tables())) { - print "
$err
\n"; - &ui_print_footer("/", $text{'index'}); - exit; - } - -# Check if firewall is being started at boot -if (!$config{'direct'} && &foreign_check("init")) { - $init_support++; - if (defined(&started_at_boot)) { - $atboot = &started_at_boot(); - } - else { - &foreign_require("init", "init-lib.pl"); - $atboot = &init::action_status("webmin-ip6tables") == 2; - } - } - -# Check if the save file exists. If not, check for any existing firewall -# rules, and offer to create a save file from them -@livetables = &get_ip6tables_save("ip6tables-save 2>/dev/null |"); - -# Display warnings about active external firewalls! -&external_firewall_message(\@livetables); -if (!$config{'direct'} && - (!-s $ip6tables_save_file || $in{'reset'}) && $access{'setup'}) { - @tables = @livetables; - foreach $t (@tables) { - $rules++ if (@{$t->{'rules'}}); - foreach $c (keys %{$t->{'defaults'}}) { - $chains++ if ($t->{'defaults'}->{$c} ne 'ACCEPT'); - } - $hastable{$t->{'name'}}++; - } - foreach $t (@known_tables) { - system("ip6tables -t $t -n -L >/dev/null") if (!$hastable{$t}); - } - if (!$in{'reset'} && ($rules || $chains)) { - # Offer to save the current rules - print &ui_confirmation_form("convert.cgi", - &text('index_existing', $rules, - "$ip6tables_save_file"), - undef, - [ [ undef, $text{'index_saveex'} ] ], - $init_support && !$atboot ? - &ui_checkbox("atboot", 1, $text{'index_atboot'}, 0) : - "", - ); - - print &ui_table_start($text{'index_headerex'}, "width=100%", 2); - $out = &backquote_command("ip6tables-save 2>/dev/null"); - print &ui_table_row(undef, - "".&html_escape($out)."", 2); - print &ui_table_end(); - } - else { - # Offer to set up a firewall - print &text($in{'reset'} ? 'index_rsetup' : 'index_setup', - "$ip6tables_save_file"),"
\n"; - print &ui_form_start("setup.cgi"); - print &ui_hidden("reset", $in{'reset'}); - print "
\n";
- print &ui_oneradio("auto", 0, $text{'index_auto0'}, 1)," \n"; - foreach $a (1 .. 5) { - print &ui_oneradio("auto", $a, - $text{'index_auto'.$a}, 0)." "; - print &interface_choice("iface".$a)," \n"; - } - print " |
\n"; - if ($init_support && !$atboot) { - print &ui_checkbox("atboot", 1, - $text{'index_atboot'}, 0); - } - print "
\n"; - } - # naming the detected firewall modules - foreach my $word (split ' ', $fwname) { - print "
\n"; - } - } diff --git a/firewall6/index.cgi b/firewall6/index.cgi new file mode 120000 index 000000000..7929461e1 --- /dev/null +++ b/firewall6/index.cgi @@ -0,0 +1 @@ +../firewall/index.cgi \ No newline at end of file