From cc861d0d6c243d4a4dbadf05862b53edd0ef6f03 Mon Sep 17 00:00:00 2001 From: Wouter van Bommel Date: Wed, 23 May 2012 21:57:04 +0200 Subject: [PATCH] Patch to add shorewall6 module --- shorewall6/CHANGELOG | 43 + shorewall6/acl_security.pl | 32 + shorewall6/backup_config.pl | 51 + shorewall6/check.cgi | 22 + shorewall6/clear.cgi | 18 + shorewall6/config | 5 + shorewall6/config.info | 7 + shorewall6/config.info.ca | 7 + shorewall6/config.info.de | 0 shorewall6/config.info.es | 5 + shorewall6/config.info.fr | 7 + shorewall6/config.info.nl | 7 + shorewall6/defaultacl | 2 + shorewall6/delete.cgi | 19 + shorewall6/down.cgi | 14 + shorewall6/dump.cgi | 15 + shorewall6/edit.cgi | 55 + shorewall6/editcmt.cgi | 37 + shorewall6/images/.xvpics/hosts.gif | Bin 0 -> 2374 bytes shorewall6/images/.xvpics/nat.gif | 5 + shorewall6/images/.xvpics/policy.gif | 5 + shorewall6/images/.xvpics/routestopped.gif | 5 + shorewall6/images/.xvpics/tunnels.gif | Bin 0 -> 2374 bytes shorewall6/images/.xvpics/zones.gif | 5 + shorewall6/images/after.gif | Bin 0 -> 82 bytes shorewall6/images/before.gif | Bin 0 -> 84 bytes shorewall6/images/blacklist.gif | Bin 0 -> 2450 bytes shorewall6/images/down.gif | Bin 0 -> 108 bytes shorewall6/images/gap.gif | Bin 0 -> 73 bytes shorewall6/images/hosts.gif | Bin 0 -> 1067 bytes shorewall6/images/icon.gif | Bin 0 -> 2403 bytes shorewall6/images/interfaces.gif | Bin 0 -> 362 bytes shorewall6/images/masq.gif | Bin 0 -> 1535 bytes shorewall6/images/nat.gif | Bin 0 -> 1481 bytes shorewall6/images/params.gif | Bin 0 -> 306 bytes shorewall6/images/policy.gif | Bin 0 -> 372 bytes shorewall6/images/providers.gif | Bin 0 -> 315 bytes shorewall6/images/proxyndp.gif | Bin 0 -> 311 bytes shorewall6/images/routestopped.gif | Bin 0 -> 1939 bytes shorewall6/images/rules.gif | Bin 0 -> 2918 bytes shorewall6/images/shorewall6.conf.gif | Bin 0 -> 478 bytes shorewall6/images/smallicon.gif | Bin 0 -> 1238 bytes shorewall6/images/tos.gif | Bin 0 -> 402 bytes shorewall6/images/tunnels.gif | Bin 0 -> 1206 bytes shorewall6/images/up.gif | Bin 0 -> 103 bytes shorewall6/images/zones.gif | Bin 0 -> 1631 bytes shorewall6/index.cgi | 104 ++ shorewall6/install_check.pl | 15 + shorewall6/lang/ca | 455 ++++++ shorewall6/lang/de | 212 +++ shorewall6/lang/en | 455 ++++++ shorewall6/lang/es | 298 ++++ shorewall6/lang/fr | 304 ++++ shorewall6/lang/nl | 431 +++++ shorewall6/lang/tr | 316 ++++ shorewall6/lang/zh_CN | 349 ++++ shorewall6/list.cgi | 123 ++ shorewall6/log_parser.pl | 19 + shorewall6/manual_form.cgi | 27 + shorewall6/manual_save.cgi | 18 + shorewall6/module.info | 10 + shorewall6/refresh.cgi | 21 + shorewall6/restart.cgi | 21 + shorewall6/save.cgi | 44 + shorewall6/savecmt.cgi | 33 + shorewall6/shorewall6-lib.pl | 1724 ++++++++++++++++++++ shorewall6/start.cgi | 21 + shorewall6/status.cgi | 15 + shorewall6/stop.cgi | 18 + shorewall6/up.cgi | 14 + 70 files changed, 5413 insertions(+) create mode 100644 shorewall6/CHANGELOG create mode 100755 shorewall6/acl_security.pl create mode 100755 shorewall6/backup_config.pl create mode 100755 shorewall6/check.cgi create mode 100755 shorewall6/clear.cgi create mode 100644 shorewall6/config create mode 100644 shorewall6/config.info create mode 100755 shorewall6/config.info.ca create mode 100644 shorewall6/config.info.de create mode 100755 shorewall6/config.info.es create mode 100644 shorewall6/config.info.fr create mode 100644 shorewall6/config.info.nl create mode 100644 shorewall6/defaultacl create mode 100755 shorewall6/delete.cgi create mode 100755 shorewall6/down.cgi create mode 100755 shorewall6/dump.cgi create mode 100755 shorewall6/edit.cgi create mode 100755 shorewall6/editcmt.cgi create mode 100644 shorewall6/images/.xvpics/hosts.gif create mode 100644 shorewall6/images/.xvpics/nat.gif create mode 100644 shorewall6/images/.xvpics/policy.gif create mode 100644 shorewall6/images/.xvpics/routestopped.gif create mode 100644 shorewall6/images/.xvpics/tunnels.gif create mode 100644 shorewall6/images/.xvpics/zones.gif create mode 100644 shorewall6/images/after.gif create mode 100644 shorewall6/images/before.gif create mode 100644 shorewall6/images/blacklist.gif create mode 100644 shorewall6/images/down.gif create mode 100644 shorewall6/images/gap.gif create mode 100644 shorewall6/images/hosts.gif create mode 100644 shorewall6/images/icon.gif create mode 100644 shorewall6/images/interfaces.gif create mode 100644 shorewall6/images/masq.gif create mode 100644 shorewall6/images/nat.gif create mode 100755 shorewall6/images/params.gif create mode 100644 shorewall6/images/policy.gif create mode 100644 shorewall6/images/providers.gif create mode 100644 shorewall6/images/proxyndp.gif create mode 100644 shorewall6/images/routestopped.gif create mode 100644 shorewall6/images/rules.gif create mode 100644 shorewall6/images/shorewall6.conf.gif create mode 100644 shorewall6/images/smallicon.gif create mode 100644 shorewall6/images/tos.gif create mode 100644 shorewall6/images/tunnels.gif create mode 100644 shorewall6/images/up.gif create mode 100644 shorewall6/images/zones.gif create mode 100755 shorewall6/index.cgi create mode 100755 shorewall6/install_check.pl create mode 100755 shorewall6/lang/ca create mode 100644 shorewall6/lang/de create mode 100644 shorewall6/lang/en create mode 100644 shorewall6/lang/es create mode 100644 shorewall6/lang/fr create mode 100644 shorewall6/lang/nl create mode 100644 shorewall6/lang/tr create mode 100644 shorewall6/lang/zh_CN create mode 100755 shorewall6/list.cgi create mode 100755 shorewall6/log_parser.pl create mode 100755 shorewall6/manual_form.cgi create mode 100755 shorewall6/manual_save.cgi create mode 100644 shorewall6/module.info create mode 100755 shorewall6/refresh.cgi create mode 100755 shorewall6/restart.cgi create mode 100755 shorewall6/save.cgi create mode 100755 shorewall6/savecmt.cgi create mode 100755 shorewall6/shorewall6-lib.pl create mode 100755 shorewall6/start.cgi create mode 100755 shorewall6/status.cgi create mode 100755 shorewall6/stop.cgi create mode 100755 shorewall6/up.cgi diff --git a/shorewall6/CHANGELOG b/shorewall6/CHANGELOG new file mode 100644 index 000000000..879361776 --- /dev/null +++ b/shorewall6/CHANGELOG @@ -0,0 +1,43 @@ +---- Changes since 1.360 ---- +(Updates by Paul Gear .) +BUG: Corrected mis-handling of nested zones introduced in 1.350. +Removed debugging cruft added in 1.350. +Added support for end-of-line comments in zones, params, and shorewall6.conf. +Added support for display of long zone names under the new zones format. +Added module option to disable display of long zone names in the rules file. +---- Changes since 1.350 ---- +(Updates by Paul Gear .) +Corrected name to "Shoreline Firewall". +Correctly determine Shorewall version for beta releases. +Corrected zones file support on version 3 or greater when IPSECFILE=ipsec. +Added bug compatibility with IPSECFILE on Shorewall 3.4.0-3.4.4. +Added support for renaming firewall zone. +Added support for editing of params & shorewall6.conf. +---- Changes since 1.140 ---- +Added buttons for adding rules or other table entries above or below an existing entry. +Added support for OpenVPN and generic tunnels. +---- Changes since 1.150 ---- +Added the ability to edit the blacklist table. +---- Changes since 1.160 ---- +Added a button for manually editing a table file. +Added simple access control, written by Stephen Carville. +---- Changes since 1.170 ---- +Improved access control, to limit which Shorewall tables a user can edit. +---- Changes since 1.180 ---- +Added Module Config page options for commands to run before and after starting, applying and refreshing Shorewall. +---- Changes since 1.200 ---- +Added support for standard Shorewall actions on the rules page. +---- Changes since 1.240 ---- +Added support for the providers Shorewall table. +---- Changes since 1.250 ---- +Updated the module to support new options and columns in Shorewall version 3, such as macros, the new zones table and so on. +Several records can be deleted at once from any table using checkboxes next to them. +---- Changes since 1.320 ---- +Comments can now be created and edited in the rules table (and a few others), when running Shorewall 3.3.3 or higher. +Added logging so that changes made using the module show up in the Webmin Actions Log module. +---- Changes since 1.390 ---- +Blacklist rules can now match any host. +---- Changes since 1.480 ---- +Added a button to create a shorewall6 dump, thanks to a patch by Paul Gear. +---- Changes since 1.500 ---- +New rules are added after the SECTION NEW line, if there is one. diff --git a/shorewall6/acl_security.pl b/shorewall6/acl_security.pl new file mode 100755 index 000000000..b660bdc09 --- /dev/null +++ b/shorewall6/acl_security.pl @@ -0,0 +1,32 @@ + +do 'shorewall6-lib.pl'; + +# acl_security_form(&options) +# Output HTML for editing security options for the acl module +sub acl_security_form +{ +print " $text{'acl_nochange'} \n"; +printf " $text{'yes'}\n", + $_[0]->{'nochange'} ? '' : 'checked'; +printf " $text{'no'}\n", + $_[0]->{'nochange'} ? 'checked' : ''; + +print "\n"; + +print " $text{'acl_files'} \n"; +print &ui_radio("files_def", $_[0]->{'files'} eq '*' ? 1 : 0, + [ [ 1, $text{'acl_all'} ], [ 0, $text{'acl_sel'} ] ]),"
\n"; +print &ui_select("files", [ split(/\s+/, $_[0]->{'files'}) ], + [ map { [ $_, $text{$_."_title"}." ($_)" ] } + @shorewall6_files ], 5, 1); +} + +# acl_security_save(&options) +# Parse the form for security options for the acl module +sub acl_security_save +{ +$_[0]->{'nochange'} = $in{'nochange'}; +$_[0]->{'files'} = $in{'files_def'} ? "*" + : join(" ", split(/\0/, $in{'files'})); +} + diff --git a/shorewall6/backup_config.pl b/shorewall6/backup_config.pl new file mode 100755 index 000000000..6f38a6f6a --- /dev/null +++ b/shorewall6/backup_config.pl @@ -0,0 +1,51 @@ + +do 'shorewall6-lib.pl'; + +# backup_config_files() +# Returns files and directories that can be backed up +sub backup_config_files +{ +local @rv; +opendir(DIR, $config{'config_dir'}); +while($f = readdir(DIR)) { + next if ($f eq "." || $f eq ".." || + $f =~ /\.rpmsave$/ || $f =~ /\.bak$/); + push(@rv, "$config{'config_dir'}/$f"); + } +return @rv; +} + +# pre_backup(&files) +# Called before the files are actually read +sub pre_backup +{ +return undef; +} + +# post_backup(&files) +# Called after the files are actually read +sub post_backup +{ +return undef; +} + +# pre_restore(&files) +# Called before the files are restored from a backup +sub pre_restore +{ +return undef; +} + +# post_restore(&files) +# Called after the files are restored from a backup +sub post_restore +{ +local $out = &backquote_logged("$config{'shorewall6'} restart 2>&1"); +if ($?) { + return "
$out
"; + } +return undef; +} + +1; + diff --git a/shorewall6/check.cgi b/shorewall6/check.cgi new file mode 100755 index 000000000..32d1d97ab --- /dev/null +++ b/shorewall6/check.cgi @@ -0,0 +1,22 @@ +#!/usr/bin/perl +# check.cgi +# Check if the firewall is valid + +require './shorewall6-lib.pl'; +&ui_print_header(undef, $text{'check_title'}, ""); +print "$text{'check_cmd'}
\n"; +print "
";
+open(STATUS, "$config{'shorewall6'} check 2>&1 |");
+while() {
+	print &html_escape($_);
+	}
+close(STATUS);
+print "
\n"; +if ($?) { + print "$text{'check_failed'}

\n"; + } +else { + print "$text{'check_ok'}

\n"; + } +&ui_print_footer("", $text{'index_return'}); + diff --git a/shorewall6/clear.cgi b/shorewall6/clear.cgi new file mode 100755 index 000000000..409e5fca7 --- /dev/null +++ b/shorewall6/clear.cgi @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# clear.cgi +# Clear out all rules + +require './shorewall6-lib.pl'; +if ($access{'nochange'}) { + &redirect("/"); + exit 0; +} + +&error_setup($text{'clear_err'}); +$out = &backquote_logged("$config{'shorewall6'} clear 2>&1"); +if ($?) { + &error("

$out
"); + } +&webmin_log("clear"); +&redirect(""); + diff --git a/shorewall6/config b/shorewall6/config new file mode 100644 index 000000000..072f722bf --- /dev/null +++ b/shorewall6/config @@ -0,0 +1,5 @@ +config_dir=/etc/shorewall6 +shorewall6=shorewall6 +actions=/etc/shorewall6/actions /usr/share/shorewall6/actions.std +macros=/usr/share/shorewall6 +display_zone_descriptions=1 diff --git a/shorewall6/config.info b/shorewall6/config.info new file mode 100644 index 000000000..5770a8a17 --- /dev/null +++ b/shorewall6/config.info @@ -0,0 +1,7 @@ +config_dir=Shorewall6 configuration directory,0 +shorewall6=Path to shorewall6 command,0 +actions=Standard actions files,9,40,5,\t +macros=Macro files directory,0 +before_apply_cmd=Command to run before applying configuration,3,None +after_apply_cmd=Command to run after applying configuration,3,None +display_zone_descriptions=Display zone descriptions in rules file?,1,0-No,1-Yes diff --git a/shorewall6/config.info.ca b/shorewall6/config.info.ca new file mode 100755 index 000000000..3ad17d853 --- /dev/null +++ b/shorewall6/config.info.ca @@ -0,0 +1,7 @@ +config_dir=Directori de configuraci de Shorewall6,0 +shorewall6=Cam de l'ordre shorewall6,0 +actions=Fitxers d'accions estndards,9,40,5,\t +macros=Directori de fitxers de macros,0 +before_apply_cmd=Ordre a executar abans d'aplicar la configuraci,3,Cap +after_apply_cmd=Ordre a executar deprs d'aplicar la configuraci,3,Cap +display_zone_descriptions=Mostra les descripcions de zona al fitxer de regles,1,0-No,1-S diff --git a/shorewall6/config.info.de b/shorewall6/config.info.de new file mode 100644 index 000000000..e69de29bb diff --git a/shorewall6/config.info.es b/shorewall6/config.info.es new file mode 100755 index 000000000..f60bf7eab --- /dev/null +++ b/shorewall6/config.info.es @@ -0,0 +1,5 @@ +config_dir=Directorio de configuración de Shorewall6,0 +shorewall6=Ruta al comando shorewall6,0 +actions=Archivo de acciones estándar,0 +before_apply_cmd=Comando a ejecutar antes de aplicar la configuración,3,Ninguno +after_apply_cmd=Comando a ejecutar después de aplicar la configuración,3,Ninguno diff --git a/shorewall6/config.info.fr b/shorewall6/config.info.fr new file mode 100644 index 000000000..9f2b81c16 --- /dev/null +++ b/shorewall6/config.info.fr @@ -0,0 +1,7 @@ +config_dir=Répertoire de configuration de Shorewall6,0 +shorewall6=Chemin vers la commande shorewall6,0 +actions=Fichiers standards des actions,9,40,5,\t +macros=Répertoire des fichiers macro,0 +before_apply_cmd=Commande à exécuter avant d'appliquer la configuration,3,Aucune +after_apply_cmd=Commande à exécuter après avoir appliqué la configuration,3,Aucune +display_zone_descriptions=Afficher les descriptions des zones dans le fichier des règles ?,1,0-Non,1-Oui diff --git a/shorewall6/config.info.nl b/shorewall6/config.info.nl new file mode 100644 index 000000000..380d5ffd6 --- /dev/null +++ b/shorewall6/config.info.nl @@ -0,0 +1,7 @@ +config_dir=Shorewall6 configuratie directory,0 +shorewall6=Pad naar Shorewall6 opdracht,0 +actions=Standaard actie files,9,40,5,\t +macros=Macro files directory,0 +before_apply_cmd=Opdracht om uit te voeren voor toevoegen configuratie,3,Geen +after_apply_cmd=Opdracht om uit te voeren na toevoegen configuratie,3,Geen +display_zone_descriptions=Laat zone omschrijvingen zien in regel file?,1,0-Nee,1-Ja diff --git a/shorewall6/defaultacl b/shorewall6/defaultacl new file mode 100644 index 000000000..c32d9ac4a --- /dev/null +++ b/shorewall6/defaultacl @@ -0,0 +1,2 @@ +nochange=0 +files=* diff --git a/shorewall6/delete.cgi b/shorewall6/delete.cgi new file mode 100755 index 000000000..45d8a66ad --- /dev/null +++ b/shorewall6/delete.cgi @@ -0,0 +1,19 @@ +#!/usr/bin/perl +# Delete a bunch of table rows + +require './shorewall6-lib.pl'; +&ReadParse(); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +$pfunc = &get_parser_func(\%in); +&error_setup($text{'delete_err'}); +@d = split(/\0/, $in{'d'}); +scalar(@d) || &error($text{'delete_enone'}); + +&lock_table($in{'table'}); +foreach $idx (sort { $b <=> $a } @d) { + &delete_table_row($in{'table'}, $pfunc, $idx); + } +&unlock_table($in{'table'}); +&webmin_log('deletes', 'table', $in{'table'}); +&redirect("list.cgi?table=$in{'table'}"); + diff --git a/shorewall6/down.cgi b/shorewall6/down.cgi new file mode 100755 index 000000000..1b8049b31 --- /dev/null +++ b/shorewall6/down.cgi @@ -0,0 +1,14 @@ +#!/usr/bin/perl +# down.cgi +# Move a row in a table down + +require './shorewall6-lib.pl'; +&ReadParse(); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +$pfunc = &get_parser_func(\%in); +&lock_table($in{'table'}); +&swap_table_rows($in{'table'}, $pfunc, $in{'idx'}, $in{'idx'}+1); +&unlock_table($in{'table'}); +&webmin_log('down', 'table', $in{'table'}); +&redirect("list.cgi?table=$in{'table'}"); + diff --git a/shorewall6/dump.cgi b/shorewall6/dump.cgi new file mode 100755 index 000000000..2b22d0d67 --- /dev/null +++ b/shorewall6/dump.cgi @@ -0,0 +1,15 @@ +#!/usr/bin/perl +# dump.cgi +# Show a shorewall6 dump + +require './shorewall6-lib.pl'; +&ui_print_header(undef, $text{'dump_title'}, ""); +print "
";
+open(DUMP, "$config{'shorewall6'} dump 2>&1 |");
+while() {
+	print &html_escape($_);
+	}
+close(DUMP);
+print "
\n"; +&ui_print_footer("", $text{'index_return'}); + diff --git a/shorewall6/edit.cgi b/shorewall6/edit.cgi new file mode 100755 index 000000000..9a6de5992 --- /dev/null +++ b/shorewall6/edit.cgi @@ -0,0 +1,55 @@ +#!/usr/bin/perl +# edit.cgi +# Display a form for editing or creating a table entry + +require './shorewall6-lib.pl'; +&ReadParse(); +&get_clean_table_name(\%in); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +if ($in{'new'}) { + &ui_print_header(undef, $text{$in{'tableclean'}."_create"}, ""); + if ($in{'before'} ne '') { + $msg = &text('edit_before', $in{'before'}+1); + } + elsif ($in{'after'} ne '') { + $msg = &text('edit_after', $in{'after'}+1); + } + print "
$msg
\n" if ($msg); + } +else { + &ui_print_header(undef, $text{$in{'tableclean'}."_edit"}, ""); + $pfunc = &get_parser_func(\%in); + @table = &read_table_file($in{'table'}, $pfunc); + $row = $table[$in{'idx'}]; + } + +print "
\n"; +print "\n"; +print "\n"; +print "\n"; +print "\n"; +print "\n"; + +print "\n"; +print "\n"; +print "
",$text{$in{'tableclean'}."_header"},"
\n"; + +$ffunc = $in{'tableclean'}."_form"; +&$ffunc(@$row); + +print "
\n"; +print "\n"; +if ($in{'new'}) { + print "\n"; + } +else { + print "\n"; + print "\n"; + } +print "
\n"; + +print "
\n"; + +&ui_print_footer("list.cgi?table=$in{'table'}", $text{$in{'tableclean'}."_return"}); + diff --git a/shorewall6/editcmt.cgi b/shorewall6/editcmt.cgi new file mode 100755 index 000000000..12510331d --- /dev/null +++ b/shorewall6/editcmt.cgi @@ -0,0 +1,37 @@ +#!/usr/bin/perl +# Display a form for editing or creating a comment + +require './shorewall6-lib.pl'; +&ReadParse(); +&get_clean_table_name(\%in); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +if ($in{'new'}) { + &ui_print_header(undef, $text{"comment_create"}, ""); + } +else { + &ui_print_header(undef, $text{"comment_edit"}, ""); + $pfunc = &get_parser_func(\%in); + @table = &read_table_file($in{'table'}, $pfunc); + $row = $table[$in{'idx'}]; + } + +print &ui_form_start("savecmt.cgi", "post"); +foreach $f ("table", "new", "idx") { + print &ui_hidden($f, $in{$f}); + } +print &ui_table_start($text{'comment_header'}, 2); + +print &ui_table_row($text{'comment_msg'}, + &ui_textbox("msg", join(" ", @$row[1..@$row-1]), 60)); + +print &ui_table_end(); +if ($in{'new'}) { + print &ui_form_end([ [ "create", $text{'create'} ] ]); + } +else { + print &ui_form_end([ [ "save", $text{'save'} ], + [ "delete", $text{'delete'} ] ]); + } + +&ui_print_footer("list.cgi?table=$in{'table'}", $text{$in{'tableclean'}."_return"}); + diff --git a/shorewall6/images/.xvpics/hosts.gif b/shorewall6/images/.xvpics/hosts.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5b2fa3682a8b3e385a0d1a5f6fdaf17ec7f84c4 GIT binary patch literal 2374 zcmbVO-D=w~7*#K$5~q(4s0~X-v#mdC8SH9p7Y*7Dw#z|bw3jxF?V@{#4y>|1NFnmO zSno3L9Le%eO1HF*V=14`_vz?J`96Q#AMfmJ%T0CiUY#DFz1cmu+C3Pn?Beq3@?!k# z)yvoWv=A%P5l3WHgkKoS`R&F9v9$DSD&9Oh&|~kHkME zeyykK@>=(|k zI}b@TOoV z4NP<0>gnS%_x0lk{M#@3*YB)@r?PND8ZI?IH5En^k!HsyU z^HibiQA1aAQEL;-(5b%y2@E!vSccgG&zMCS!^G7#_`tqy8_uqrS_6OQ7x4eCs=}fW zvHmyp9W-5$W3BS#jRtp`&}s3sat@)Py#M5xhVuSdn*?KrcMOkj`FE&$V~p1W&cyYH X_-LJ8I2C*+>Aj=WYb=mV9*zGCFpss# literal 0 HcmV?d00001 diff --git a/shorewall6/images/.xvpics/nat.gif b/shorewall6/images/.xvpics/nat.gif new file mode 100644 index 000000000..31f6bfe47 --- /dev/null +++ b/shorewall6/images/.xvpics/nat.gif @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:48x48 Indexed (1481 bytes) +#END_OF_COMMENTS +48 48 255 +I$II۶IH%I۶%HI%۶ڶ%HIIڶ%HII۶I$II۶I$II۶IH%I۶%HI۶$II%ڷڶ%HIIڶ%HII۶I$II۶IH%I۶%HI%۶ڷڒ۶۶$IIHڷH%IH۶I$II۶IH%I۶%H%ڷڶHڷ$II$۶۶$IIHڷ۶I$II۶%H%I۶mI$I۶$IIIڷH%IIڷ$I%I۶I$II۶%H%I۶ڶ%H%ڷH%IIڷ$I%Iڷڶ$II%۶I$II۶%H%I۶ڻ{{߶ֻ$IHEֺ$IHI׺D)IH۶I$II۶%H%Iۛ{W[[7$II)ڷֶ(EII׶$IEII$II۶IH%IڷHW{wZW7D۶HI$I۶$IH%۶ڷI$II۶IH%I۶HSS6272D۶E(EI۶%H)EۺֶI$II۶IH%I۶%w.D۶H%IIڷ$I%IڷI$II۶IH%I۶%HwrWVrD)$IDI۶D)HE۶۶I$II۶%H%I۶ڶ%$I۶ڑ$IH%۶ڷ$IIH۶I$II۶%H%I۶ڷ$%ڶ%HIIڶI$II۶%H%I۶I$II۶%H%I۶$I۶$IH%۶ڷ$IHIڷ$IIH۶$IIII$II۶IH%۶%HIIڶI$II۶%H%I$II$۶۶I$II۶IH%ڶ%HII۶I$II۶%H%I۶$IIHڷI$II۶IH%ڶ%HII۶I$II۶%H%I۶$IIHڷI$II۶$ڶ%HIIڶI$II۶ڷ$I۶$IIIڷ۶I$IIۺ$۶H%IH۶$I%H۶$I׺ַ$IH)۶I$I[w[WֻID)I۶%HE)7W7zW߶$I)E۶I$I7;W{3$I%Iڷڶ$IIW;67ֻ$II$۶I$I2v337R߶)DI)۶ֺ%HEW672׺%HI)I$II۶2 1%(I۶ַ(EH)ֶS(EIڷI$II۶VSR6w%HI%۶ڶ%HIIڶ231Rw$IH۶I$II۶IH%۶$II۶I$II۶$I$I$I%۶I$II۶IH%$IIֻH%IIڷ%H%I$IIֻ۶I$II۶$I%H۶۶$II$۶۶$IIHڷ$I$۶۶$IIH۶I$II۶$I$I۶$II$۶۶$IIHڷH%H۶۶$II$۶I$Iֻںڶ(EHI۶H)DI׺ڷ$I)E۶I$q׶E(EI۶%H)Em$IH%I$II۶ڶڶH%H۶۶$II$۶۶۶l%ڷI$II۶ڶI$II۶ڒ%IH۷H%IIڷڒH%Iڷֶm$۶I$II۶ڶIH%I۶ېH%Iڷֺ$II%ڷڶ$II۶q(׺׶I$II۶ڶI$II۶ڒ%IH۶H%IH۷ڒH%Iڷڶm$۶۶I$۶I$ڶ%HIIڶE(II۶$IID(E)I۶I$۶m۶$II$۶۶$II۵m$II۶IrmmmmmDI(I׺(Eߵqqqqn$I(۶q(EIH۶D)ֶq)H%I$II$ڶI$II۶ڶI$II۵۶ֺ׹ב$II۶)DII۶ѻ׺ںֶ$۶I$II$I%Iڷֺ$II%ڷڑ(EHֻI$II۶IH%I۶%HI%۶ڶ%HIIڶ%HII۶I$II۶۶I$Iڷڶ$I۶$IIIڷH%IIڷڷڷڶ$IHI۶I$Iڷ$I۶H%IIڷ$I%Iڷڶڶڶ$II%۶I$II۶%H%I۶ڶ%HI%۶ڶ%HIIڶI$II۶HI$I۶I$II۶%H%I۶ڶ%HI%۶ڶ%HIIڶI$II۶HI$I \ No newline at end of file diff --git a/shorewall6/images/.xvpics/policy.gif b/shorewall6/images/.xvpics/policy.gif new file mode 100644 index 000000000..75a766e7c --- /dev/null +++ b/shorewall6/images/.xvpics/policy.gif @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:48x48 Indexed (372 bytes) +#END_OF_COMMENTS +48 48 255 +I$II۶IH%I۶%HI%۶ڶ%HIIڶ%HII۶I$II۶Iڷڷڷ۶$۶۶$IIHڷH%IH۶HI%H۶$II$۶۶Iڷ۶H%IIڷHI%Iڷ$II%ڷڶ$III۶IImmnmmImnmڷ۶۶$۶$II$۶۶%HI۶۶$IH۷mmmIn۶H%Iڶ%I۶۶$IIH۷$I%I۶$IH۷ڶI$Inmm%۶ڷH%I۶ڶH%HI۶ڷ$II$۶$IH۷ڶI$I۶IڷڷH$۶۶H%II۶ڶ%HI%۶$IH۷ڶI$I۶ڷJ۶H%ڷڶI$II۶ڷ$IH%I$II۶ڶH%I۶%HI۶ۑm%I%$IH%۶ڷ$I%۶ڶI$II۶ڶH%I۶%HHڷnH$۶$I%ڷڶ%H%۶ڷI$II۶ڶ%$$$I۶ڒm%$۶$IH%۶ڷ$I%۶ڶI$Iڷڶ$ڶڶ۶ڷڶۑn%Hڷ$I%ڷ$Iڶ۶I$II۶%H%I۶ڶ%HIےIڷH%HI۶$I$I۶ڷ$IH%۶I$II۶%H%I۶ڶ%HIےIڷH%HI۶$I$I۶ڷ$IH%۶I$II۶%H%I۶ڶ%HIےIڷH%HI۶$I$I۶ڷ$IH%۶I$II۶%H%I۶ڶ%HIےIڷH%HI۶$I$I۶ڷ$IH%I$II۶IH%I۶%HI%۶ڷmI%ڷڶ$III۶$IIIڷI$II۶IH%I۶%HI%lJmmmnIڷڶ$II%۶$III۶I$II۶IH%I۶%HI%lڶIڷڶ$II%۶$III۶I$II۶IH%I۶ڷH%HIImmmJmm۶%H%I۶%HI%۶ڶ۶I$II۶%H%Im۶ڶmn$IIڷH%IIڷ$I%I۶I$II۶%H%Im$۶mn$IIڷ$I%Iڷ$II%۶ڷڶI$ڶ%HI۶۶$ڶ۶$Iڶ$II$ڷڷH%۶$$%I$IڷH%$۶$I$ڷ$IIڶ۶$$I$$۶$$I۶$IIHڷ$I$۶۶%H%H$I۶I$$۶$I$۶$IIHڷ$I$۶۶%H%H$I۶I$$۶ڶ%$۶$IH%۶I۶$IH۶۶$H%Iڷڶ۶۶ڷH۶$I۶۶ڶ۶ڶ%ڷڷ$Iڶ۶۶I$II۶%H%I۶ڶ%lJmmm$II$ڷ$IIH۶H%II۶I$II۶%H%I۶ڶ%ڶڷ$II$ڷ$IIH۶H%II۶I$II۶%H%I۶ڶ%lJmmm$II$ڷ$IIH۶H%II۶I$II۶%H%I۶ڶ%ڶڷ$II$ڷ$IIH۶H%III$II۶IH%I۶%HI%۶ڷmI%ڷڶ$III۶$IIIڷI$II۶IH%I۶%HI%۶ڷmI%ڷڶ$III۶$IIIڷI$II۶IH%I۶%HI%۶ڷmI%ڷڶ$III۶$IIIڷI$II۶IڷH۶H۶۶ڶڒIH۶$I%H۶۶$II$ڷ۶I$Iڶ$II%۶%H%Iۑn$I%Iڷڶ$II%۶$IH۶I$Iڶ$II%$IHےI$IHI۶H%HI۶$$I۶ڷH۶۶ڷڶI%$IHڒm$ڷڷڶ$Iڷڶ%$%۶%$۶$$I۶ڶ%HI۶m$Iڶ۶H$I۶$$%I$ڶ$IHڷ%HI۶ڷ$ۑ$IHڷ۶۶ڷI$$ڷ$I$۶۶%H%Hۑ$I$۶ڷ$I%ڶI$$۶$I$۶H$۷ڶ%%$I$ڶ$I۶ڷI$Iڷ۶ڷڶ۶$ڶڶ%mڶ۶ڶ%$۶۶۶I$II۶%H%I۶ڶ%HI%۶ڶ%Hnm۶ڶڷڶI۶I$II۶%H%I۶ڶ%HI%۶ڶ%HIImJmmmI۶I$II۶%H%I۶ڶ%HI%۶ڶ%HIIڶIImnmmmInmm$۶I$II۶%H%I۶ڶ%HI%۶ڶ%HIIڶI$II۶HI$I \ No newline at end of file diff --git a/shorewall6/images/.xvpics/routestopped.gif b/shorewall6/images/.xvpics/routestopped.gif new file mode 100644 index 000000000..8ae701aff --- /dev/null +++ b/shorewall6/images/.xvpics/routestopped.gif @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:48x48 Indexed (1939 bytes) +#END_OF_COMMENTS +48 48 255 +I$II۶IH%I۶%HI%۶ڶ%HIIڶ%HII۶I$II۶I$II۶IH%I۶%HI%۶ڶ%HIIڶ%HII۶I$II۶I$II۶IH%I۶%HI%۶ڶ%HIIڶ%HII۶I$II۶I$II۶IH%I۶$I%ڷڶ$III۶۶I$II۶%Hġ(EI(ַ(IEH۶I$II۶%%HIIֶI$II۶I$II۶I$I۶ֻ$IH%۶I$II۶D)ֶֻ$IIII$II۶IHġĠ߶D)IH׺I$II۶IĠ%HE)۶ֺI$II۶ġ%H%۶ڷI$II۶Ġ$I׶۶I$(IDI۶IĠŠŠ%HI%۶ĠE(I۶ŠҺ$IDI$IIͩ͠ĠĠɤֶI$IҠɠ׶I$IIҶI$IġҶֶ۶Ġֶ%$I۶E$I۶E$I۶ID)I$I׶I$II͠ѠҠ۶I$IIΠ׵I$IIŠ۶۶D%H۶ʠֶ͠$%H۶ŤE$I۶ġ(EI$IIΠ޷I$IIĠ۶I$II۶ŠI$II۶Ġڶ۶I$II߲(EH)۶I$IIɠĠ޷$IE(۶I$II۶ġڶ%HII۶I$II۶۵$۶۶$IIHI$II۶IH%I޷$IIH׺I$II۶IH%I۶ŤĥġŤۖڻ$II)ֶֻI$II۶IH%I۶ڻ׺׺ەڻֶ)HEIֶI$II۶IH%I۶ڷH$۶ڶ%HI%۶ڷ۶I$II۶%H%I%$%HII۶I$II۶I$II۶%H%I۶ڶ%HI%۶ڶ%HIIڶI$II۶HI$I۶I$II۶%H%I۶ڶ%HI%۶ڶ%HIIڶI$II۶HI$I۶I$II۶%H%I۶ڶ%HI%۶ڶ%HIIڶI$II۶HI$I \ No newline at end of file diff --git a/shorewall6/images/.xvpics/tunnels.gif b/shorewall6/images/.xvpics/tunnels.gif new file mode 100644 index 0000000000000000000000000000000000000000..db6ec294d2bdf37328f9135bab10b67a783fb245 GIT binary patch literal 2374 zcmd6oO>Wgd5QOb*P7#T*1Um@7V$0u*r6fqOM?z$m@dg%f44bnszKiED=Bu8u`FSs} zLLzyI^IodURn^_&*N;!{-#1uJ-?e z%l{kxCv9k#2h;wGhY+VY_?&j_#mf!&WtygOh%wI4QAIX?!hicZ0v}@^f&Udhk7*bu z;IY5%q4m3_WBI2vnwT*TAsYGo2mGAU^lh4CHb&vYGH==s`m5ef38&^2G1sWS8Lt=$ z9D2eWeD5veWBKHyPlYF#VGILWpvP`-NANkLrP711+Fi&L9N^cy&|<8PGt_1k_DJiG z^=sAbs@0;VvRm4}=AUzHf^QqwxNiJPkmG<=yjnD1y9K5_|Lk4cG@$uueHc=-BrSKA z>34hDyHpYf{mai*m3OTLknWGolW0eHFI&eVe6#Eag- zlyH(Hou6M;&1*7&r&?tA|HqUYkkB}x^nG|+1Y*DW}X>ydV{$a@o zZ{+HynyM#40l-~*yJ$WmlVDyC#DEX03(B#2SiooWz)X=TFHUtjRsz|*`cAPIF=5P>JL2H2&j&QE%x~)( zl2Tm2O*+TUs?phUpLLi^5Bq3Zek3WUz6WkzRbIU+VAW)Hf|`w7dg8F{taed%)y`Br zI|;rFf#v}Gz|nZ{yjK3EX{CeuuG)R*msKaDiWQ=+^1k8Own=9^QYB_e1pkv)W0UUU gx8}8i6naQ2F>HD4vs34EyT=XB-(AC2|4;GX0lHMB0{{R3 literal 0 HcmV?d00001 diff --git a/shorewall6/images/.xvpics/zones.gif b/shorewall6/images/.xvpics/zones.gif new file mode 100644 index 000000000..4c4316256 --- /dev/null +++ b/shorewall6/images/.xvpics/zones.gif @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:48x48 Indexed (1631 bytes) +#END_OF_COMMENTS +48 48 255 +I$II۶IH%I۶%HI%۶%ֻI$II۶I$II۶IH%I۶%۶$۶H%IH۶I$II۶IH%I۶$I%IڷI$II۶IH%I۶۶۶$IIHڷ۶I$II۶%H%Iڷ%HI%۶ڶ%HII۶I$II۶%H%$II۶I$II۶I$II۶%Hڷ۶ڷ$IIIڷH%II۶I$II۶%H۶ڶnmnmmH%I۶%HI%I$II۶IH%I۶ےnmnۑ$I$I۶ڷI$II۶IH%I۶ڷ۶ڷ۶$I(E۶ڷI$II۶IH%Iڷ۶$III۶I$II۶IH%Iڷ$I%H۶۶۶I$II۶%H%ڷ$I%H۶۶$II%۶I$II۶%H%۵J۶%H%I۶ڷ$IH%۶I$II۶%H%I۶ڶlJ%ڷ$I%Iڷڶ$II%۶I$II۶%H%I۶ڶ%Hmn$۶HI$I۶$IH%I$II۶IH%I۶%HI%۶ln$I۶ڶ%HI%۶ڷ$IHIڶI$II۶IH%I۶%HI۶ڶڶ$IHIڶ$IHI۶I$II۶IH%I۶%ۑ$IHIڶ$IHI۶I$II۶IH%I۶ڒ$I$I۶ڷ$IH%۶ڷ۶I$II۶%H%Iۑ۶ڒڶ$III۶%HII۶I$II۶%H%Iڒ$۶ڷ$IH%۶ڷ$IHI۶I$II۶%H%I۶ڶڒH%۶ڶ%HIIڶ$IHI۶I$II۶%H%I۶ڶ%HImےH%۶ڶ%HIIڶ%HIII$II۶IH%I۶%HI%l$I۶IH%I۶%HI%۶ڶI$II۶IH%I۶%۶mI$۶۶$IIHڷ(EIH۶I$II۶IH%I۶n)D)۶ֻ$IHEֺI$II۶IH%I۶ۑrr%HIֶ(EHI۶۶I$II۶%HJhrnwۻֶ$II)׶(EII۶I$II۶%H%$E)IHjMnw$I)Iֻ(EI)۶I$II۶%HmnHI%HEIIDnmInr۶E(EI۶%H)E۶I$II۶%H%I۶mIIIIinhIֺ$IHIڶH%HII$II۶IH%I۶%HIImmnmin)D)I۶)HE)۶ֻI$II۶IH%I۶$mm$I׺D)IIֻHE)IڷI$II۶IH%I۶n۶m(M۶)DII۶E(EI۶I$II۶IH%I۶I$۶m$I$I%H۶$II$۶۶۶I$II۶%۶H)E۶mD$)D۶۶$II(۶I$II۶ڷڶ%Hnmn۶%H۶D)EH۶I$II۶۶ڶ%HIn۶m$I۶ڶ%HI%۶I$II۶ڷ׶(EIE۶$IֶI$III$II۶IH۶$IIڷI۶۶%HII۶I$II۶I%HIڶۑֻ$IH%ֻI$II۶۶ےڶ$I%۶ۑ۶$I$I۶ڷI$II۶ڷڶ۶$III۶۶nڷڶ$III۶۶I$Iڷ%۶ۑ$I$۶$II$۶۶$IIH۶I$II۶%H%I۶۵$IH%۶ڷ$IHIڷ$IIH۶I$II۶%H%I۶ڶ%H%I۶%HI%۶ڶ%HII۶I$II۶%H%IڶH%HI۶$I%H۶۶$II$ \ No newline at end of file diff --git a/shorewall6/images/after.gif b/shorewall6/images/after.gif new file mode 100644 index 0000000000000000000000000000000000000000..f4c0eb151f48aa6d9faba736ff1b7e9d01ff80c8 GIT binary patch literal 82 zcmZ?wbhEHb6krfwSjfQe|NnolmH)x?f5o3Hj9d&13_3szloeoLU{Y@BUwK+gQK~A? hDkFcZN%OqMv(8D%JLj(4;`g-M>X6U%E$t!<)&PWn9o+x` literal 0 HcmV?d00001 diff --git a/shorewall6/images/before.gif b/shorewall6/images/before.gif new file mode 100644 index 0000000000000000000000000000000000000000..5c1010e84a67c7fb4f5e858773851727d2564dd7 GIT binary patch literal 84 zcmZ?wbhEHb6krfwSjfQe|NnolmH&Y>0|SHNPZmZX#h?QsK=KSssxAGQ2jA*Wo3SNm it3jUB&Ks;u#ib0Hav4=!Io!)uzuA=Z=UFTxgEasb4;z>O literal 0 HcmV?d00001 diff --git a/shorewall6/images/blacklist.gif b/shorewall6/images/blacklist.gif new file mode 100644 index 0000000000000000000000000000000000000000..36b9f9bfb9d8fb5882dd595adc53bc3fcbfb1b18 GIT binary patch literal 2450 zcmWmDi&xTz0s!D2KTr_?krV|H5eyND5ET*41QgLw(V0?~N2nZHGcr?0N(cyuN{VJ` z>hO`P?1A=j&9nI|U2f^>tgX|UJ?@=%x8339Hn(}bkMDo@Qq#n|I0YME1K$Gx2!hzM zGGFB}T;5UtJx59WV+2Azsn4FRc95VVd}~t>$W1Nl42DKzl=NV&CIWPO+CDp{+$vOd z8+9s3z2pJ2Zl%-=0IHb?!3m7glewR#-|nHw0bOv$1>s>WhPeZd0x6E({4(? z)5pncU?^>9&_Ai#!Q*SVv_b|UE;7p;Zn5JvXSk${!oGV!7-_2QI+wg3S6a!zr!fmG zM6QaX)uKTxzRW1RZqMwthG}ZWmKsKuA=Eb_QLitwUSTGl#uca;IR5s-MkY-~5G!#N zMo!>CEJut0y$J+DFr|QwB!3(Kr&LLXRu1 zVQDoxJ6i(ssuE3hp5q+DFW${A_dP*|EZ5JE`2P_^3ax`z~(xyJ3iUxps&~ zSK;@cmgqlJw%yFNIw|ZDN%uem_argtc$n7g4k9>Q4XM;Z)3*{3Aw0_f11-rMvxS^& z<7n-E%2UECR*uygoqUFzbDDt=^E+%LrH)+I99-Ez$T%fe^@V7xySqN5!cx*x>cTYb zq+)Fln20yGQu4I4ik1M9Ecwcif1xI8w3m6ZMO4}yrfrK5YhtQEK$7ty z8NpzXl=-G>q&!OqsbJT^bK;IZ`Pth^))4}@qvS?^sJJ>%U7NkXrBE}>EoqN!bucJO zLa~-2)uaz}P@u6a&H1Rpv$4Z%xSX=^veu}uQVLy3!RK%+7jkl}X>HdCrTREo15;(= z=z1eqWn@dUeC(>v5gEA=*YxM{i;MWqi*2yc4}NbUGzTopZ%R#^(#Q1JSHXin0R>1``=YOyGb1 ze*u7R0T4J*;&e0Av*BB60`h2{_hZ;t%8VX3W4}IE7u6(PW zw!BJhC2uaQn;{101uxkS3Axzhe)Oy8#m{+j&5le=G`{eZp4Gk4`btahzXZ+zRBK(*HwrW(Zjf@-3ip7Qw@;F%K7^j<}h z=r(xX1F1f;aPIidgv74W4_S{Us!zRYCe+VoaYe5%#xeD2VNRqTk&e+ z%~@=fWMeA!yEh@JLDz2S=VP4G#~JK}34@oL5hH-@f(M8WB7fI8>RA5tX_1@v(yA5p z@QG@si>n&MBY%8zVo%WFPQaV@Y3Lu)(D4z$9uM73%V6@09SZms{|HwZdN;wXBQxb#ff$Xiw%f>fDZWA&g1bJUF(KRp%b z?ASz@HQm-6Tf(qwIVGWXea$PDXL0Be$TuTGGCJ8YwcENrBVy#`I$`7YUW^|#eA2Bj z-MyftSn1y}r|)~UtuHSIKA)&VasoHL6flue8OqlUDQuwU$?LwD*<(D^FjKtAPu&(m z&uI$l9(cVF<~QNACb+&DMc^b!(9gMn>emlp4WZzm|G=B66w==uhDwtO~V%a5XWK3Nu#K9I=;yj53H6fxx1 zEF3b8_;`-|bM8vRvs3a>MAU6n+#5qlbwU7cGdKhKlBpQvvt_n6_L~jPR2asvMO|oy=(J2;IYe%%Nz(=T`?5v zViMOrQldLf%;BmX4M!IHiI)RlkSzy1rDqV=pned!>SK{x7D=~Or|I3J9>GI(sJ%r7 z`kN5%0LLNEIRN)3T#cU-V0^aUPDn_Mk+tjBIsPp_s*q42r&RSxdxUWcH6e$14*zz1M2BUB%&2{U%rDwY9rN`Hs5K8>0`(BlvbuwTU7>WcS5~%GzhEx@Ta{BC&AeG(WZAgMLpsGfUvw^6?z_lD0uq#qii%fxv0zJs3Wbfm^tkN z?`YoMP|9+>*Ex}If*MBTzqA_BWNn;dn(q|@RX9LD0I0)+Y77LI0g7{_FpssO4;+4d zDO&EqqD=Ld%`5%-CiVWvdnTh^X_H|-LtL7l#| z67-X0HvXQ#>r)x!N}=3974#d4xr6?H27H#`5$LDD%zC!KMZVLrJQ}%;uqhkyQct4F zWNm?TxuG~l&_vuE^cVO*^F11^)1*0aW>G53h;dKi8GJ8TYOe*ob$A_t3o$Qv$&|7P z_!2q=ITY|CXga;EYY2daOC+V=K>$HO{)kbPjGfL+nT>%3(CgGXR JBoGAR{|h(fwhjOQ literal 0 HcmV?d00001 diff --git a/shorewall6/images/down.gif b/shorewall6/images/down.gif new file mode 100644 index 0000000000000000000000000000000000000000..73025ba5106abd951438d98486908e4b3f02e5d2 GIT binary patch literal 108 zcmZ?wbhEHb6krfwSjfO|CR zz|5cnQ~*>jz`($yJ*R&qv+QgK4kjhfw+BNv-^`rzJ=Lo@$?=!OW$tEAo_3C0y^U*6 Mr}#CAFfdpH03Em@y#N3J literal 0 HcmV?d00001 diff --git a/shorewall6/images/gap.gif b/shorewall6/images/gap.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a777645397418e3aa27b12c3b14998fb601445a GIT binary patch literal 73 zcmZ?wbhEHb6krfwXkcLY4+e_=_hVG#M_lAi!nA^HA|dh8-Cik(ai#IjhSqZ=pj) zWs}WE_oSqV&p1?;P94M4@(WI;xUtSPZZW@&87Y-_`h&AwN7*0I>&N%q`oilHKrSZUko@9%fJ-9T6lL=|N1_W1ZXkZ5om zUszZGa(zllicY61EiFBCh;Fml^m@J5>xG}$=ybYLsU%CaPNyR}I@WA9!{VVmNl6@7 zWR}U~K!$rf9)ck3cDvPTg>wDo=BC5pAj>d~MhnCm48xX}mw`+N3kZ|RorW&r zih-P8)6Np?tr|`r7)Xe>+^`ORKTM?tB0VHlT++3ngzF=-mN6>%j+1-m$BC)waJk%m zYyRQld_48WZ8De3WJWJk_tI#V_Z)LuD`QqVGdMV~+eZ?_(SlGIl`&uts7P;DAx+}2 zZU#*p6_z?k%$z^?ij2iT(;C&4bYXkXpmDAd(w=&5kyq!wd4YHA=O;&rtXA%8nhe8` zH@JaU4V&7|bWWq3OjsL#J#L~ispZ(~@sUf8D>g!0IGVU}{}O3Pv}7Jc-c$>xU``^= zvZMZII_QNnuD&^xy{%eH8}3`ukg^TCyX?$!7+-H hGKM*nz-7!{6H#pL#Zx@%R~v=Q-@miCWEl)3`Cl^B4OIXD literal 0 HcmV?d00001 diff --git a/shorewall6/images/icon.gif b/shorewall6/images/icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..65810aa3483c9d3b2abb22fa47220662d75a77e3 GIT binary patch literal 2403 zcmV-p37qyvNk%w1VK4wN0OtSz0|EppY%o`YPRgbl@VXQY84v2d9u_nr#?Z|cN*>ejLIVV2eZlR`^e4dtWdsa14Mk-DwHbON&dDk(j4I@i|N@9ytaa#XImu7QnkHCi=}mXh477bambLS#B7KtN4pKm`T{+1%T3 zdUQ@!PG5anXNy;2c36IXCc3JQSY%Fij&`fAt43Tt78e(amU8Ci=9+RAG-Nt9O-01U z#ym_pPHIUsW-nTLW>8U3EI=$wa!@96QktTMb&6#sRw8|qW1y^{ijtOqg?B4SH$+oL zMq5bs_V#{$eNSUmwvH|zG$o>*e#*$n9!4fRYd}6tMS6s4iOWCml^O!j29;QZ8zehPb-EGC?kic0wplK8cNoLuN%B zR4)n!2r)7*A^s3SWN%_+AW3auXJt}lVPts#EC2ui05AYB000R70ILWbNU)&6g9sBU zT*$DY!-o(fN}LE05e14E37V*7$^=3a6fR~|Xu^gw6Cf#AR4J;Z$dL)}+;ecqlubSe z%7}8{01-@u)vAf2WNHM2Bu~Dy6!r3_!8>(xHPp z3knqGQt&GmMW{UD#apu_9v^q{%5JSWwQIX#ebLNEB7aDXyCJTt}w zB~UX#F{BvbLlf3Cm5>R#_>;mn%M3F?3m*W|Ll^jba84dx^is+R(3~Sl1i`Q)Mk0QY z@=ZG9Oykfr=72&69b>R^iZZtV(gh64obm@d=qNJ@0HC-Kgdy#P-t@pfmJvl3>Ky|g;Flz z=x|Cm6G#F}6nI3Tj3I$Yk&Zm#ozxWP6{9-Oo$=ukRkvb zhzXR7F#vcG>l@U}kOm9=2muHX$Z!J-{tQT5vco%i?C^#-EcC@!6|4C3M=CYH0mlxP zOn`+?0wHij0q+E`0~;l%-~}+ioREwUaTK#iF=&+V4kqcq!vP9aBxZs+I(X5KArZ^~ z#XJ!NlH@?S+@V7p+on=NEPvzy1~kfG@c}AhEP_EcOc;Vj1_Nkeg-0ehQG^UJBmf5* z6Xz}9K}jaafg>DI zfqG!#8#M4k320D)M4SOqCinpugisDcydf2Ym`5sn-~(i60~Jy5g%ai`4;&DX02;8u zFRZbE0uF!~eYik0PJxROfCCEtwju~6py7{RK%o^Y>jx8tREKOV;~KJn#0M|4cVH+PJ~IGP}gAC!hKmHU^r+(!H^7Sgku%mutH*h2MUA&Af+h) z#yseNjB(WB0^fjwAsE31Lj>Uw{dh(JY`VOcvY-|saK;^eaR>)MY9NUChYrk8(}e0^ z9@|g>KVAV;5J&+Eq!7XZyg<-Nq(B|(=*Ag-F%3~zOdVV*gA&|?jefP!h{E4SnUyXafW+%!UlJs#9g^k5EFP}4y*WqGirM&+Y(o8 VqNwXkpG)29TKBrxeQrPi06Q#kxK#iE literal 0 HcmV?d00001 diff --git a/shorewall6/images/interfaces.gif b/shorewall6/images/interfaces.gif new file mode 100644 index 0000000000000000000000000000000000000000..8932c3fd00524524abc68c93057d676f180102d7 GIT binary patch literal 362 zcmZ?wbhEHbG+;1bc+9{sbLLEi4w?V||1&T!+~3>%OW1+o|NpeKG|}G-{~yKx#nFJ` zPZmZ727U$|pn9MQ1`G@=|2~}bT)o%g_1WG36Eyl#GUsKiT9@;Bp9Vv9Lk?@jy7x8j zpKtYcFwha|-2X(sLfT@!zf5A3f&|AY#S(`#vV2nyh-od2+IUm<9QU%0!#T`>EM$|@Uow^qxNfHJ2lW}BXB%epx8mZ^RHRvrFjxp_7DJ=T-T&FA;`wwKl~ zNu1^}eWBIjxxx!lQYX$>*|~a)(6&Ge4vw80JtsHTF$N!P@;Z^X&hm`Ka_fwY)lQyQ z4kTX>a$sPc(z@RIQj67%M^8>}pKtpn+wA?pk2arIbNJr>QDpjKtI>D<1Y3XB|BOYQv|G$L>5fHWQb(_ZlylRRiUK#bezo9LF()@IJw4qZ`P32tMh0sD DyML%S literal 0 HcmV?d00001 diff --git a/shorewall6/images/masq.gif b/shorewall6/images/masq.gif new file mode 100644 index 0000000000000000000000000000000000000000..b77574b0f4d83f4ff87cd29bd12e3771ce12b712 GIT binary patch literal 1535 zcmds$c~jB}06>2rry_@-l9Hi<{=f?wEIh`6KtN4HZ4(O%lug&HL2Y)O$;_)nozzJ4 z+!pd!8#S}E8QZ4760g-k)7C95)OEJCrdIPTv#qbO?~nHh-V=w3xB*HQzykgTfG=OZ ztgWr3r>AdiZKbBBCMG6sZ*PD6_%S9X1^|Hg`1ntsK3%wQK_-)pj*jl^>||tQSX*1S zw6xUJ)HpdgSy@@RySonz41E6l+1c4SEiJ9SzW&v#SGKmcY&JVKHuk}T2e)qBij0iJ zcN2M33&tgJI<&fLF$e|~ z2Mh*VSy?%D>{xkuIR=Ay_wJoarJ9(S_}a<;64xylSgDlKFO)*IGe`i4aBWbqjVPc(jtzT2b%t%+=kEvbM=J&cYR5K|W* z5FYH`Kp$2joZ6d>0%&Ts&VmeVALk=!x+kU!U=JkM*_7@uiy_6#J#|(K9TO;|VYV5U zsTp+IO+s9m{c15XM4F-2(JorS4FhDXTt11_vx#v-^V%PbD{FicwE zthNaKQq=YpfU3q5BpIOIb&y(!QRc~UQ^=>Jix$P8w1}#e*vP@YLI}}2gW`_kXmj03 zwlR=XK3RC>sd6q9opeQ_)rC)T9OC5{-9N=b%{{%rfM9}_Em~$ zRk8{5u9uA->LF1YIXVG9$hqX7zU@+Rx_`im*zo_Db?K)W# z9W55l^N|rcV;@A{py#!-WviFKb4q%VeK}{XAJl4GO?#R!^g&T`O}=}03@H(f0A^TV z_^;$b2osEC+lgzs(0%jGgOc@QxP~iB7y2CAEMPdC4n~4548(qv${~(vxoL@D4<~ z^ny!Qxpak%Idy+nWSv==9cM?^n+-NvakGs!yV0xG+{T;Qm>axlzC`~-pP!$fo_U__ zHB}oo?KP+js)s67v<=(prOT+WlNOy^$SDFcAd^y<3IU7798Cbb-7+v>N$~|`S(22< zE|l}~@>>{}?&VR;qndNtPuM#8v90EdpSJp>SAHB7h*^28`!8T9SgrK0)iEAR*M%)lAbkhC-1@ zB%4rpIZV^U5*sTA0s@M9x&)xLV-1Y5l?w4Zk4m7F3JW}A=apbENK>d8VZs1FL6C`s zmUz8ho2@yH01QLoIKnBQmXusVm?9BTF!9s$560#OuMmWCjRVHi6jwPKu}its#x1tTR0 zZ?jo^K6fAxFjF!d1fBp81dgI806?4_t3sF*B+$*sB6Ut0TnP)ODjCjnn}qn0xc1?b0Ll;!r^c*DEWL#Q?X%~*X>@~3D8pj z7el39h9Z4&b{zG22;8?7W>a8M>m(NcN4h7mQ7YANp5r(QHC<<>T~`?-u9t2Bmhn8+~rXa)aEkir+A2*yW zxX_8V^(BlHS;l_$495^)1ynDBQ**aCVH}iv- zBUjs_lGgt@&Sm17mZTfs#a65{Y>u@$6AnN4rq?=Fy?bZ;=~JgaiN`LN<^JV=-YOW) zGner;b8m4=D?M{ux(#jUg%_^1z4yiO7GKqlgD+I(b_#Lr>FS z`SvWM!@0Jy^A;1g(l*~v_@Sx0VPD;xGO$(ONsu%j^f07_p1xIB9l{}G$nWB zeA4*K(Tw=0s9O_L*>xJ@?7BwUVmSvMX&i9_yJ^k~BSRxj2OaOT7i=ihd6GApHJ!^QAZ%<}Om0W5iaq zTqMhR_1Z%3jhohaGq2e;!-ajD*iz#O+iF(r+Rxvee?n}%;k+}#eX9E|id<$neB#Ef x{j7`+9x@)k_Vn5F{hUg#U%$A)^3M5V&$IWRt-l-nG<@;u&D$4D)4CZLtO4gyi;DmN literal 0 HcmV?d00001 diff --git a/shorewall6/images/policy.gif b/shorewall6/images/policy.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4d025034f238791addb419bfe7f477b9a677801 GIT binary patch literal 372 zcmV-)0gL`eNk%w1VK4wN0KxzO|NsBY%*>gYnPz5Y|Nj90|NsC0|NsC0A^8LW3IGQH zEC2ui05AYB000C2c)HyFFtR|al{h!SySITRIzwrmo^UPI^iWvH9_P@(ip=T_|IWFE zsdMlJe-fRNbi);&$jI{8;|z+jkdX?RLR|sD^_lI)fM06(s$KQYGoNyu-liR`9IoA3 z%h7puBP?Qrh8c8+iZ6wWj)Y^6j){_oH6@jX10a!^cs`e%o^L{%7MP=W3?)3MhcJ6i zcX?QIMuB=zx2kGiJY`c}T)jcUzd*-mfN{#ny2UOH1k=;ZT)=v5wL8Edw79v$g8?;y zsT1Dkh~?@r>FqI%@bRMajP;qa*%R{PTV-#4^&4Ra;IbS8HOS#Z#-PAWSRy*v6HQAl zhx{N)wD>ygSDzyo32^`k@?$fSzW5OVXs`~nXD?@bK*tHmCai0g7{#-EgtxZBWa!~P?~7_hVm-J>CEOfKI*sH z%E!@EWJY3Z$(#%V&*-Hnl`0?5Y;_vZdY{(}bU-eHF%+|z+ibfX59Ompj^YBaZ$M`}p_u*ZV{HsPT8owV~&OpFL5KY1?VQc~HFlH1R NYX=L)s+0i$06VmQlaBxZ literal 0 HcmV?d00001 diff --git a/shorewall6/images/proxyndp.gif b/shorewall6/images/proxyndp.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7f9810538dee86cd3e274272453ef7d193604d5 GIT binary patch literal 311 zcmV-70m%MGNk%w1VK4wN0HFW?|NsAHW@ee0nas@0A^8LW00000EC2ui05AYB00091 zgpaAq?GK}zwAzdF4Iy!^d|d-Z9|E3-ScWYyy6qg7s&~Kc8pC6+L-iPfB1d3&1%0Gp zqBw{ilRzhvu`~#x17iT`t2wh&A{VS=jjg=J_FRn1+qj1=&duw)^nNq3mnS!;GxLWK zm>4Bcs8+@^qu4cAw4nAQCgLL*2&SPRN$L3s$SFwbCaQ|c+UoiW8!J02p^0@PBxKvP ztBV`v%SQKm^_wFclIx+Ibmd$@_6Q@*G6)e}jETb`I9lgmC@qAycx(5=tgCgl1D?sE zrTSLxXIbS4FdvFmW53d_N>LbFHt;FaXKJ8|g7CftOcV-CDhni9kV+j})DSEVL)q@Bj z5=qE>^pHU>jb7{;q=V39N!3}Sk{ z+wG=E66OdfpP#~UI8KV0OsK9T5D~`^Bn1b8Gz}~kzu(W`7_i$12M0;d5KB=s3}ePx zSR!K?h9=4W-d;qjLo+pjKmgdC6hV@`9+)E}EN!S-!_qX0q6|d^I6`=l5F9sCgWe#^ z5>6K)m3urMG)oP0g@oP70D!4WaD#DZXo$sd21aNUL*$th07O?8XtrYr0@}K$K_44Z zp)=w*P6uG3%ZUU6s62}ftD|FdUAMk`5>3bR!7T-`@|K+c1ru3E2|K5osD>w+BOF&CN7L;=7EfN`pw! zh)|3nKjraaC3+e`NS7N;Q?WQsb~%Bu3g(Cqm5wDTU~WUCnM9kNbh=OkL1kH}T1Wc> zaD)ig=mT6~kfI2CSCD2H9Kez^M4knXG$V0xe3yxI^}-PnqSg$mYUz+tyA#uvAR;-c z(lLMtGAt@rQ8*yl9EeEP>vppQiR+E1Mh8r_m|DluOn@UGLO7f(MF%*dARA->0WT6U z7=YtsxWNR64o%TiXeg8db2HK9pa%V*<_K=ALE>bHGy_QsHOJ0`x*?H+;}+27AlXHU`f8`OwYYP$vd;68_eAg{ur206dKHXzjG#^d^^^5x+h+q+iV%3_xAkb z%c_f-R_yiowrl*AJsh%VMsvNc(0XSkE&TCSe#hYb8^7N-<@?=Y+W}ch>tjpz#K<&x z?UnAz`^j(2V4X1=uYMA#W1ro)7Jlo>Q(v-Gojyp_|UUyG7o^tWZ(7LXYg4`qY= zx4uuD{I||uxPE=>&9mO3^PO||Q=jl=AO7vqiQuW@?|!mw_NA>NX7? zm71TBdHChz&a2(9ZnHwEv_H+HF$tU`k#SjW{hC=pop!4=ek}hh>*Rv9@g)YcpxatERvBG9)(%Qj#*!h^W!sgKkSf- zkM8psIt(LR8#G+U!w)}hjTjpKydhn(g)V?PuIIPdSJ=G8V>ywpL8aYV*04|_b}cIE z6HB<2PbMY4_ybPQ7~lQk=GmZjL-=^VlA0>Mx1i8kHZP*_ol7mku>IxZ3L&Vut5cj2 z)a)_W|L5b#W2x$vC}FB9uRAC2=|9V)Wdr`0eSaOv-FURUM7)9*d0EXJjq3We*ziq> ztg;|BS6K02*-u+H%rAZQwbHcX#FC2g_s|^`RpZl-i}F(x1!40?po_}z?q#<94;DOs zbNh)xHG0kzrGTOqrd(DlVv626+D+teJELza*DAwupTL_(71{Vl#K#Z+@U7YM^Wwzo ze}S;Qc^h6=zd56vK62{S2dgxb*(viU67KMt#FLWFUppEPK1kfULZE~ePE4NQZ#Jh} zevW?r@|pSlkJNm9-n?^Lwk$k6w=HLtI>#{;+jKDdmpc(3#AILkQ5oipedFN3dg0bH z7aF%$g5Ub4T9WVANB32#(}(l?X_-%(3vOyQ5525Uzy7MV`sk(PBORMo_x>h6`$E{# qMZILus literal 0 HcmV?d00001 diff --git a/shorewall6/images/rules.gif b/shorewall6/images/rules.gif new file mode 100644 index 0000000000000000000000000000000000000000..650a15379bd59079f5b03223c3ae11d5cc541764 GIT binary patch literal 2918 zcmWlak3Z9iAICp?Z^ni-%r-w_ekP43zqQkhYzYZTPL3(RQlS#A(>9D)Yvfl-jpWpI zLM6%h&iqKqH6^K}&DACSqASt&&V7Aff5GeVd_7*T7iW{dhi4oEVIZ#&Bp6`&ELOBH zGA-P%6Cjr5k_*rkgg)lBs>>fErDHw-e0dQhXJZ-w$|C&#;|-DSbb%keJypNJ8s_dh zba|nF%}tyHXxL_P?d;K)KX06_h6}b310Y%n)d0LT77dor7D||(j5!1_3hsmw*oRW14scn9icP9aDI} z&pAN03ETr16A+t>F;B}Jd&4frm5Ot7ul+2VaXfIpk}cDI++=tF@%^klF3^wfKH zz_!5^bBGLWCHrS)x;uIJvEqQ?y_#1!o}reeDFB}U@(IwG;@Ax!1ZX6~KC`^!`PWlVW~cJ@6;ZtY09UGVGGhWSx!DhNRW%Uc5`f}+`0$}S6rlEK!pu<2 z`zzYz!K{&^wmE3H8wLpkm@3CNld&x<zr82iX2KzVq4GFZ%#m_B++Av&>v}8%^l<2SsJhln}($pa3WasK>*hs7-Bt*e+RK z3d?0UmnAz8HQnU$G!rT~HZ{E9eO#}52^w@{S^w_>qP2uK+mGh>Lz={w_+kxo)|gfUx<7 z{-=YL)1!9~8b?U|wxg33cQGGx^&M|sis%x->pi`$6+@53)Wb)@HKxX9S|utt-2~*Vy69Jxna}8~ z^J%0i%X_jiN*<`c+h@FgNBE@8)yE@oc}wx>@e_HP-?z6_EZAKMDzV-rE-gJ6Tzug` zSvU2^&)m~ay8eF)?wF6r*2$55q!5-6->Htp5ZjPC6SSYfapYDt>-2%Lj*5+e&Rf}e zG>qR%{!aGdp?s6+Y!xM^JsS89`=)I|eZ9l|S%uU<8v}|^$>Oirq-5c2T$8Si=sA-4 zlO^qE4&Sk9|NGj*AZ?FPEfhwoMmuK=N1XCd+UPZ)eT&jZfgPm}Nkjff+zzq5@J@(oqj>fm4U_eWPc~v@Ve)M2s_4{u4r%srYz_)Q z_kQrZJP()Yl+zwt`{KWxt4e<5d~#jr4(iBi%I#A%j(eET`)ngO-Wizda5fqx92qqv ze{Fd(l{igJyu0+B9|u49LZT#Y=_?(%u;$96J}ZgeO;r7#!C$jPH+I+?zvtaGe?-f& zvfI6=Z0>4gBQ~Vt-)=+2_&t}VFNc;u8s>Zs=B`zT9sjqg5?oT z5){ta|pllSZUm{YXDsxu^c(RcJcF792}ky@G;X@g-a$KDt$J= zGhcP@yQPH#0R=}FI9U7~KL3_)H$tjP$t)F5_*gg4`gOb+c}6O=!R-!qI``_y`oUhk zDXy^kjI*?yp=o>rN0K#{l^&Y#(H1Bbuz`ibe@5`<277+!b0(pqLx`KkAMDklRa{`4 z*ISCv(m%G8Z+#vEsLhcI_`V6D%+vHN__Cqm3UF1ZO7UP#EMZU(I40$P6Q^=ZD8ICO=OjYZE zzdcQdBxPy8=#bP>WtM~@1+{lj!(mZwU*b_}Wop6Y1hO^bw9p$=dLq{W8rC<9tux?6 zV9csYuW;+PK6u4Ha>h=4Tuy41%^x=yAz&m(p?(B|V0Kxk$t?15IY$)7POEF)DD&vO zv&AbepU1udlzTmg@6WaTQQ0DN>7F~D{<)sgry8IqlnQd@)n|WNLVV5JrIHAS`dlEj zU-z37mD_}%9#&)Fa@_GCr5Y}_a3m@>y)?TpTs(p%M$oj~qW{8eQT4d_NeMfzokzVV z3IpEOX(wNz=|<5Cn6lSJ*L@Og51rD|lB5bxgdS^w*%A(9 zToZ?pB@;3ld>U1kSD#9Vx2_#v zsW+|rxk-s-LFsW~(#4+bM~CuOi7ip&7C~rSI{&(Noas+Wjj(@5#JlA6D~U?7`j<800I^)hH?qJ8TZg6CS#}aV1oT{!i8TJnOxJ%% zs0@SPUEs5#hbza7s*ZiLJ#RF;aGQjU6TQuNtZ{@02@W*vlp>*VMs=Ul!wZkJ#cOrE zB72SbX+>C5mfp6(7W=Zf5_=?%=vXb+ZInw^j|y?uLweUm?Ln0*c$f&geAl9$6%kCC z`6BBLPWv)*}e@+rDEM*fNE~*=itXIFd1dv>55!_##@n*k#cPs3;B`Cd{`AU zb=zm(z}opa?QP|Y6ggw#lG!KuG4nHZ_&_;!RgzDM-P%V6!yy`_htvfznEhAWFZM8{ zBNFDnQ!8aEzWb+HLRgm-WwPj+yHF}*(m*d% zZ#s-}@=%j+jQ2W!-YSlw_?q*Sx3O-sLJBF*RQ|h0?NL^$`}R0Yz0!xi4vHeBJY2jI zUHD=oWtEEnWz8t`)ERlZ&t&RZ5>dn$lIiUJ+l#U%=4xv}$O)$o%Pci*qwxSD*wtmF zfl~TuQ2BdJlb#XpXZc_GifE>PLO3_p0jOInnnCVWiMAd1cSjK>;DHnT(Q{z literal 0 HcmV?d00001 diff --git a/shorewall6/images/shorewall6.conf.gif b/shorewall6/images/shorewall6.conf.gif new file mode 100644 index 0000000000000000000000000000000000000000..e57b83c90b70c191f4e142a86a456a52438ac895 GIT binary patch literal 478 zcmZ?wbhEHbG+;1bXklRZ|NsBYnKKy}7|x`notc^TKW*ljnKRD-!OS!NXBz)MV|-?& z@tHHm@7}%pe`Ki;O^-gz@Ye(g%PA*2Sk8e!NB@Y zL7^`tb6!RkTgHJty$9zuW}SY?{diB^cDtYp;(z8w9G=;s*0ML_RO-i_(Vx~uyb{e6 zb=&?RE4(|otJ+$2;}KTz&38XpYUZuZ4qS2OPw(vSZjCv<%1mud9fjdc%)LyVZl*!{ zOf0M{{S#&>wK22J)Xqtn*f58^XF>C-&PfbRj2z1?ooB6WV`p6HyQN}pa3B+B+sxX< zAyN57bGW#<`m_AjrcBDuJ;-w|H={JnFuP?6C)c4{$3n~QuF_#Td+1c^zUly<+7COq zxOmoIoNcM{=5fi_%?}^X+TGa6^1!-7U?Kw>=a;`fHY?rhO!&bfXIb2L;b;d>r~^0a zbERz)l)UOsYVX|C=u{~6x3p#vJMZoe!(cxr^YppR>>93RGFENf49t8*c`}pNsfaoY l2n2o+vme$i_iaNj`E@ zb%$~xOC}m89E6dCLSIcnWJ47f7wqfmv$V2~e>*g0HM*HDii?d+X-D++^{ue1W_M5T z@$e{ODev#_rmUp~2?$quN-jw`?d|UC?d(%&P%<_%BSa)BI4jD_$l2N2H$ySV$Hp2m z8^OiDJykk6Qb09fG8Zry6e}MsSTsdrMI>M={{H?TG9>)`{5WSgG(j=?`uh0z_zx5i zN^(Q?_V!3_L6M0cU2<8nqI*qMP)|`(DOfWI2nj!GI0Xa-PHIX^Y)4OIORKM};^N}T z(a>jOF(N}EMOh$SbyD8m-YhFDBwr^|YEdvfGg)&wQe{U;YDhF(Fic!aae!h%UO^yT zCQoxmEk83gVl=_R!KSXaJW@MIYD!&fVn9MaMPx^Wg@qeIArBi8rLMVfiE%M7FyG(a zQD-pC!wODOKVAZnu#ndE}^NeC1NVa%FtSLQ9@iwK3+yW zXFFSSNJUpeHf=OiY)dp}GEZYrELT29XGm;u9V$~ihlYnlT}3o!H77nV&C$~F^70%) zBr-W1ELkn5siwBOxKM6Q=jiB8Y)fK!SSwaJLu^1;cTOWWB-`BFKw>>bSVC)iWF}QA zVR|`RTw69~Gcsl`rI9@x8y#(mUnnmu{r&y>`}-|ODq(qD4-XI~JuNI^EC~$?HcmDP z2?{@ELTGw%q^_a`1qQRUv^iirHa0fr=jY|+<)yW-FJLk%W-a5g7O0rvK5aTdTt|0!TeG{ZO>0a`ZAzP*oIFoB-r?aZUNM)Nm|JUIJ#9P{92GogJ55VW zXmf2oTRp|Y#WOuGWpZG@!@q@)hIE5yaC&ZCaZYM|UV4Cg00000000000000000000 z0000000000EC2ui02lxm000R70FekBNU)&6g9sBQ1f~PnKwwT38U$8=#;h>pqScUS z&>6XD8yc}<#j&6>438E}0Mr0Uuo@6lFcttR(Pek6sx`25y;qa6=KK zI+eglL(<1b9Vouu9MHhwLm*eX#+6c1VaPTB6vD+r(qfMZV~22fxa4IX0(5Iii~x4+ zlnDl$pqLZ5$cHFRri8q$iZjm=nkm+*kUC+F1%ps?I5a_`B3lqCSc-H?Qzn)aT%M5O zhXaIUQbY)pXaEKhz*LZf7RoTvO(uC%B7+Prpi#{&Tnz9EGKKt-ia>+BBMdF&AYwx% z&m01P97mv1j0Z6^lZ*(^^dOKEA`sKeAD8Bs)u5HLGz(TpGwGJHp@U Aw*UYD literal 0 HcmV?d00001 diff --git a/shorewall6/images/tos.gif b/shorewall6/images/tos.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef4bad01b74768926600bcf3bb1ac118ed0d51f4 GIT binary patch literal 402 zcmZ?wbhEHbG+;1bc+9}?|NsBc(9q+@kITx+GB7Z#TD7XLukZ2W$Cj3sMMXtGSu~*d zPt>_6HL)Z$MWH;iBts!2BUQoO(>H)Y@h1x-&;SM<5CJlrf#sjT3D4DgEnc79{XapY zFC}wc#;SEWulE(`oG+1Ot62BkNtK1U$spi_1k<5~jgxY$I9*RNeiTvSo9ev5>HyQK z^DD%3-UMxX(75D)p30=$ZPT;fGP0B~B?Wn??Xmat7O8a-XYyne^KdHbsTM8iYVi~= z$r6vA&@blB*jzJJtVx1xQNB~XY%7b{nm93bPumV(=J~7}MAxiaBvFu^!cjJ*ZTCL$ z13{dXet`>*9c9@iddiN~!T0z@AE)!T*Gl&UT$&apQ8L@&$lWIw9*Qozx7Vq8PUJO) zJu~Y>Ry$--M2e~7g`8V0hMsu~6*~l)8#=e$U~Gs;6>61Nw=j|MFer35 osG~Ahfg!c&EIZ@QoD*|AH!nLo+oJf@os*lFpPw(R#K2$;0Ghd~aR2}S literal 0 HcmV?d00001 diff --git a/shorewall6/images/tunnels.gif b/shorewall6/images/tunnels.gif new file mode 100644 index 0000000000000000000000000000000000000000..9159a56e2689d8c702c3087b2f1d6d44aa3c6c0a GIT binary patch literal 1206 zcmd7P{ZpC+0KoBwhX+MOV(QSCB3Po}%N!XYa}1f{X^R}CGhG^`h`^93 zzHOY6W2mJ@MvOI0w;7USQ|XD(GPUL@mb-bI=j<}0jNJN!5|We7z}1}bJJ`#OQq87?QN}A3&S2NmC9r?c|4w2EY8o*-`Uv_3WaXB8;0G3 zgM)NBoy}%zG@A1Aa;w!^S64?Okq86=pU=nPa9& zb)}-BAnqX~?c?6ISCZL`eq>S@D|D!Zha!IdMG~IHVMbn423;TPI}}YbaX==?B0pe7 zCF}d6lW2JI+@9~?1iFJ4@dLyNHqOk&k-oX+li;-)LDVyB$go9D_%Ba-Q@xdv8}Ubo zs;uA<(YIGyA3y>u;pRTpfGk!vU^=z-kRmyp{z6FLhiTImeC4lp+WkoBVl(ayYI+X0 zNP*b9qOjxrWxrW&o_1BMV22=cpjauIMio>asq&Dko9+9@&!U*l&RDql3YE``fBD6he+D&rB<2l zmW}cXpoTotg1rxko+gj7-?mT~s9W^~!#n#}6-YwJ(OwH8xu+FPI+#>^uM~~F|5=|0 zl@wglv=Az*@?Gghp5YT%nK*S%^~%(p#A)V%#b#*&Cl+8^abZio5rW^~j!#r;*i> zkVg;r#@@`FdTBpMTWe1xroX2~L@k2go17}0IM0yQC`*_uS(B%GIXd0~xXz+>^gn;* zcI?eneyaUlL}&&xPf}m*_}NeCx*Qj%;=a}hZdVW;-ua96?za3;jUXKT|ehZ!pD1`a;~*v!(erM*NaOR_tN8 zkU68gJ%fEJFI5(Q2Az;naZ>A^#Yiz8I9iEJ{+etx-r`%D5Z@E%CzKGrLS6!K(4xlM OCR zz|5cnQ~*>jz`($yHm83j+Xk+t8ue2@-yHSKKUb5aI^|I6w1Z7S?yvbaSObxhAF zT5Ks&<$)QdSV_hV!Lx>JWIYkoQzh+*(uPdh5hWd3wiva>scB%{{=we&y?$?B@>SJv zi;6`IfB~!mK;Ef5m0E3dco9z!^N0MQt=igJy%Cm(rR(eKTU%Rlxm;m(+ui=1ogK5; z3_CEr72Db0cez|@wHlU#9*;+-({*%oxV?U(-6P;P6|h)VtJUxK2Lgd`I4o5e^?Hlh zj=?Z&G9hM*iwlB2pU>@fOQlky(XM~5VYf=9GMN#D#^i7~5CriBw;%|TwYCbH1PF?` zF^pZnHX~k*)h&@oG-`vOUa-9Wav#lTt<}>IFhzrwbG)9Bj;_$dojLYVV z1(N;!eU;i!SI2K{ZT0#BGQGWoU1CMN2!iSjR+GtYwYyCgWM^v!w!*@LG#XvxfBt)ctUUrQ z28aN;zSM&AmL(Sb{I@x4Yx(oGl?(d9(wGbh6ZcG;T7TJ= z`2=!*-%-YTT>a!jbyjSiZDVqZc!DKdtzTcB*Fj%0X4S z^2Nb$TFnZe+{`do>sEXovQ`npE z+x!Mj-t}-9%Gi5Tn0SqO);3Ey+|{m(V$nsTl``!pl+>Xu1BKbC56eg`^&8Fogp*oT zYHB_hMaxSB$FBFkTkehiY@!}YYtCns9VM(WIXH@vbUWe7?k0ZV_~1zNksHxj%J`^l zXW4-l#T!c8&^4$c;n>6`M80Fg;f^)mUFfCV8*BrB^yLBk@xjYcXiDD10vat_2P)cT z&x3f{f#Cs8Rykqo$>E`DX7#~K%63jaIakCvRB$(I?f{?B&_iKVfZ4?GsT5}vEjAyT z&+M&VneDr|Kmx>IYPo1ZyczJkv&b~bVhO#yAwd#BtVPdl?`S5y7I$w!s>YY44-hb zoFk0k@riw_G?a0XIefh*u9DhPeidJw$VG#rLekvTS)sBbdG`>Up&n11?!wR87D&l) z&a{i<_ChBi;g`uDlTwvVY1~QM4FWkbyP%9aGu^U;(&^rwI2J?V{DPIvJo@-$#^w}( zC5(NL)R~?&ohaVh$StopllfPAayqkjo|8XWSxREki!MR&)GR#ta3s6van0G0yz9!j uQR|mERAx;a>&46R#nSL6z1=mtj2V0lubXv`(zAStRPt1`QIEp`XZ{BLR;ic( literal 0 HcmV?d00001 diff --git a/shorewall6/index.cgi b/shorewall6/index.cgi new file mode 100755 index 000000000..85eb65337 --- /dev/null +++ b/shorewall6/index.cgi @@ -0,0 +1,104 @@ +#!/usr/bin/perl +# index.cgi +# Display icons for the various shorewall6 configuration files + +require './shorewall6-lib.pl'; + +if (!&has_command($config{'shorewall6'})) { + &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1); + print "

",&text('index_ecmd', "$config{'shorewall6'}", + "$gconfig{'webprefix'}/config.cgi?$module_name"),"

\n"; + } +else { + # Get the version + $shorewall6_version = &get_shorewall6_version(1); + &open_tempfile(VERSION, ">$module_config_directory/version"); + &print_tempfile(VERSION, $shorewall6_version,"\n"); + &close_tempfile(VERSION); + + &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1, 0, + &help_search_link("shorewall6", "doc", "google"), + undef, undef, &text('index_version', &get_printable_version($shorewall6_version))); + + if (!-d $config{'config_dir'}) { + # Config dir not found! + print "

",&text('index_edir', + "$config{'config_dir'}", + "$gconfig{'webprefix'}/config.cgi?$module_name"),"

\n"; + } + else { + # Just show the file icons + @files = grep { &can_access($_) } @shorewall6_files; + @titles = map { $text{&clean_name($_)."_title"}."
($_)" } @files; + @links = map { "list.cgi?table=".$_ } @files; + @icons = map { "images/".$_.".gif" } @files; + &icons_table(\@links, \@titles, \@icons, 4); + + # Check if shorewall6 is running by looking for the 'shorewall6' + # chain in the filter table + print &ui_hr(); + print "\n"; + system("$config{'shorewall6'} status 2>&1"); + if ($?) { + # Down .. offer to start + # unless no permissions + unless ($access{'nochange'}) { + print "\n"; + print "\n"; + print "\n"; + print "\n"; + } + } + else { + # Up .. offer to restart, clear and stop + # unless nochange is set + unless ($access{'nochange'}) { + print "\n"; + print "\n"; + print "\n"; + print "\n"; + + print "\n"; + print "\n"; + print "\n"; + print "\n"; + + print "\n"; + print "\n"; + print "\n"; + print "\n"; + + print "\n"; + print "\n"; + print "\n"; + print "\n"; + } + print "\n"; + print "\n"; + print "\n"; + print "\n"; + } + + # Always offer to check + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "
$text{'index_startdesc'}
$text{'index_restartdesc'}
$text{'index_refreshdesc'}
$text{'index_cleardesc'}
$text{'index_stopdesc'}
$text{'index_statusdesc'}
$text{'index_checkdesc'}
$text{'index_dumpdesc'}
\n"; + } + } + +&ui_print_footer("/", $text{'index'}); + diff --git a/shorewall6/install_check.pl b/shorewall6/install_check.pl new file mode 100755 index 000000000..85ab49f96 --- /dev/null +++ b/shorewall6/install_check.pl @@ -0,0 +1,15 @@ +# install_check.pl + +do 'shorewall6-lib.pl'; + +# is_installed(mode) +# For mode 1, returns 2 if the server is installed and configured for use by +# Webmin, 1 if installed but not configured, or 0 otherwise. +# For mode 0, returns 1 if installed, 0 if not +sub is_installed +{ +return 0 if (!&has_command($config{'shorewall6'}) || + !-d $config{'config_dir'}); +return $_[0] ? 2 : 1; +} + diff --git a/shorewall6/lang/ca b/shorewall6/lang/ca new file mode 100755 index 000000000..32ed07087 --- /dev/null +++ b/shorewall6/lang/ca @@ -0,0 +1,455 @@ +index_title=Tallafocs Shorewall6 +index_ecmd=No s'ha trobat al sistema l'ordre $1. Pot ser que no estigui installada, o b que la configuraci del mdul sigui incorrecta. +index_edir=No s'ha trobat al sistema el directori $1 de configuraci de Shorewall. Pot ser que no estigui installat, o b que la configuraci del mdul sigui incorrecta. +index_version=Shorewall versi $1 +index_return=a la llista de taules +index_restart=Aplica la Configuraci +index_restartdesc=Fes clic sobre aquest bot per activar la configuraci actual de Shorewall amb l'ordre shorewall6 restart. +index_refresh=Refresca la Configuraci +index_refreshdesc=Fes clic sobre aquest bot per activar noms les taules de Llista negra i Formatat de Trnsit amb l'ordre shorewall6 refresh. +index_start=Inicia el Tallfocs +index_startdesc=Fes clic sobre aquest bot per iniciar Shorewall amb la configuraci actual amb l'ordre shorewall6 start. +index_clear=Neteja el Tallafocs +index_cleardesc=Fes clic sobre aquest bot per netejar el tallafocs Shorewall amb l'ordre shorewall6 clear. Aix permetr l'accs des de tots els hosts sense restricci. +index_stop=Atura el Tallafocs +index_stopdesc=Fes clic sobre aquest bot per tancar Shorewall amb l'ordre shorewall6 stop. Aix bloquejar l'accs des de tots els hosts excepte els que hi ha a la taula En Aturar-se. +index_status=Mostra l'Estat +index_statusdesc=Fes clic sobre aquest bot per veure les taules i regles de Shorewall a partir de l'ordre shorewall6 status. +index_dump=Mostra l'Abocament +index_dumpdesc=Fes clic sobre aquest bot per veure la informaci de rastrig de Shorewall a partir de l'ordre shorewall6 dump. +index_check=Comprova el Tallafocs +index_checkdesc=Fes clic sobre aquest bot per fer que Shorewall validi la configuraci amb l'ordre shorewall6 check. + +list_move=Desplaa +list_add=Afegeix +list_auto=Automtic +list_none=Cap +list_any=Qualsevol +list_fw=Tallafocs +list_other=Altres +list_manual=Edita el Fitxer Manualment +list_manualdesc=fes clic sobre aquest bot per editar manualment el fitxer $1 de Shorewall, en el qual hi ha emmagatzemades les entrades de sobre. +list_ecannot=No tens perms per editar aquesta taula de Shorewall. +list_delete=Suprimeix els Seleccionats + +restart_err=No s'ha pogut aplicar la configuraci +refresh_err=No s'ha pogut refrescar la configuraci +start_err=No s'ha pogut iniciar el tallafocs +clear_err=No s'ha pogut netejar el tallafocs +stop_err=No s'ha pogut tancar el tallafocs +status_title=Estat del Tallafocs +dump_title=Abocament del Tallafocs +check_title=Comprovaci del Tallafocs +check_ok=...la configuraci del tallafocs sembla correcta. +check_failed=...s'ha trobat un error a la configuraci del tallafocs! +check_cmd=S'est comprovant la configuraci... + +zones_title=Zones de Xarxa +zones_desc=Les zones llistades en aquesta pgina representen diferents xarxes abastables des del teu sistema. No obstant, les entrades d'aqu no tenen cap efecte sobre el tallafocs - defineixen noms i descripcions de zona. +zones_add=Afegeix una nova zona de xarxa. +zones_none=Encara no s'ha definit cap zona de xarxa. +zones_0=ID de zona +zones_1=Nom mostrat +zones_2=Descripci +zones_1new=Zona mare +zones_2new=Tipus de zona +zones_3new=Opcions de la zona +zones_4new=Opcions d'entrada +zones_5new=Opcions de sortida +zones_6new=Comentari +zones_return=a la llista de zones +zones_edit=Edici de Zona de Xarxa +zones_create=Creaci de Zona de Xarxa +zones_header=Detalls de la zona de xarxa +zones_err=No s'ha pogut desar la zona de xarxa +zones_eid=Hi falta l'ID de zona o b s invlid +zones_efwid=Els IDs $FW i fw de la zona estan reservats per al tallafocs +zones_ename=Hi falta el nom mostrat o b s invlid +zones_edesc=Hi falta la descripci de la zona o b s invlida +zones_ipv6=IPv6 +zones_ipsec=IPsec +zones_firewall=Sistema tallafocs +zones_eopts=Opcions de zona invlides +zones_eopts_in=Opcions d'entrada de zona invlides +zones_eopts_out=Opcions de sortida de zona invlides + +policy_title=Poltiques per Defecte +policy_desc=Aquesta pgina permet configurar les accions per defecte per al trnsit entre zones diferents del tallafocs. Poden ser obviades per a hosts particulars o tipus de trnsit de la pgina de Regles del Tallafocs. +policy_add=Afegeix una nova poltica per defecte. +policy_none=Encara no s'ha definit cap poltica. +policy_0=Zona origen +policy_1=Zona dest +policy_2=Poltica +policy_3=Nivell de syslog +policy_4=Lmit de trnsit +policy_limit=Lmit $1, Pic $2 +policy_return=a la llista de poltiques +policy_edit=Edici de Poltica per Defecte +policy_create=Creaci de Poltica per Defecte +policy_header=Detalls de la poltica per defecte +policy_err=No s'ha pogut desar la poltica per defecte +policy_nolog=Enregistrament desactivat +policy_ulog=Enregistra a ULOG +policy_efw=<Tallafocs> es pot seleccionar tant per la zona origen com la dest +policy_elimit=Hi falta el nombre del trnsit lmit o b s invlid +policy_eburst=Hi falta el nombre del trnsit pic o b s invlid + +rules_title=Regles del Tallafocs +rules_desc=Aquesta taula llista les excepcions de les poltiques per defecte per a certs tipus de trnsit, origen, o dest. L'acci triada s'aplicar als paquets que coincideixin amb els criteris triats enlloc de la poltica per defecte. +rules_add=Afegeix una nova regla del tallafocs. +rules_none=Encara no s'ha definit cap regla del tallafocs. +rules_0=Acci +rules_1=Origen +rules_1z=Zona origen +rules_2=Dest +rules_2z=Zona o port de dest +rules_3=Protocol +rules_4=Ports origen +rules_5=Ports dest +rules_6=Lmit de freqncia +rules_7=Conjunt d'usuaris +rules_hosts=Host $2 de la zona $1 +rules_zone=Zona $1 +rules_rport=Port $1 +rules_related=Relacionat +rules_return=a la llista de regles del tallafocs +rules_edit=Edici de Regla del Tallafocs +rules_create=Creaci de Regla del Tallafocs +rules_header=Detalls de la regla del tallafocs +rules_err=No s'ha pogut desar la regla del tallafocs +rules_log=i enregistra al nivell syslog +rules_nolog=No enregistris +rules_addr=Noms els hosts de la zona amb adreces +rules_ranges=Ports o rangs +rules_dnat=Adrea de dest original per a DNAT o REDIRECT +rules_dnat_dest=Per a DNAT o REDIRECT, emplena aqu la nova adrea o port de destinaci. +rules_dnat_port=Per a DNAT o REDIRECT, emplena aqu l'adrea o port de destinaci original. +rules_esother=Hi falta la zona origen o b s invlida +rules_edother=Hi falta la zona dest o b s invlida +rules_esinzone=No has introdut cap adrea de host origen +rules_edinzone=No has introdut cap adrea de host dest +rules_esport=No has introdut cap nom de port origen, nmero ni rang +rules_edport=No has introdut cap nom de port dest, nmero ni rang +rules_ednat=L'adrea NAT original de dest ha de ser una sola adrea IP, dues adreces separades per ':' o una llista d'exclusi comenant per ! +rules_ednat2=Noms es pot introduir una adrea NAT original per a les accions DNAT i REDIRECT +rules_rate=Expressi de lmit de freqncia +rules_norate=Sense lmit +rules_set=La regla s'aplica al conjunt d'usuaris +rules_noset=Tots els usuaris +rules_eaction=No has seleccionat cap acci +rules_macro=Parmetre d'acci de la macro +rules_none2=Cap +rules_emacro=Hi falta parmetre de la macro o b s invlid + +tos_title=Tipus de Serveis +tos_desc=Aquesta pgina defineix tipus de serveis IP per a tipus particulars de trnsit, que es poden utilitzar per augmentar o disminuir-ne les prioritats. +tos_add=Afegeix un nou tipus de servei. +tos_none=Encara no s'ha definit cap tipus de servei. +tos_0=Origen +tos_0z=Zona origen +tos_1=Dest +tos_1z=Zona dest +tos_2=Protocol +tos_3=Ports origen +tos_4=Ports dest +tos_5=Tipus de servei +tos_6=Prova +tos_return=a la llista de tipus de serveis +tos_edit=Edici de Tipus de Servei +tos_create=Creaci de Tipus de Servei +tos_header=Detalls del tipus de servei +tos_err=No s'ha pogut desar el tipus de servei + +interfaces_title=Interfcies de Xarxa +interfaces_desc=EN aquesta pgina, hi hauria d'haver totes i cadascuna de les interfcies de xarxa del sistema que vols que Shorewall gestioni, associades amb la zona a la qual estan connectades. La interfcie de loopback interface lo no ha d'aparixer llistada mai. +interfaces_add=Afegeix una nova interfcie de xarxa +interfaces_none=Encara no s'ha definit cap interfcie de xarxa. +interfaces_0=Interfcie +interfaces_1=Nom de zona +interfaces_2=Adrea de retransmissi +interfaces_3=Opcions +interfaces_detect=Automtica +interfaces_return=a la llista d'interfcies +interfaces_edit=Edici d'Interfcie de Xarxa +interfaces_create=Creaci d'Interfcie de Xarxa +interfaces_header=Detalls de la interfcie de xarxa +interfaces_err=No s'ha pogut desar la interfcie de xarxa +interfaces_eiface=Hi falta el nom de la interfcie o b s invlid +interfaces_ebroad=Hi falta l'adrea de retransmissi o b s invlida + +masq_title=Emmascarament +masq_desc=Les entrades d'aquesta pgina configuren la traducci d'adreces de xarxa per al trnsit encaminat entre alguna xarxa i una interfcie particular. +masq_add=Afegeix una nova regla d'emmascarament. +masq_none=Encara no s'ha definit cap regla d'emmascarament. +masq_0=Interfcie de sortida +masq_1=Xarxa a emmascarar +masq_2=Adrea SNAT +masq_3=Restringeig al protocol +masq_4=Restringeig als ports +masq_5=Opcions IPsec +masq_any=Qualsevol protocol +masq_all=Tots els ports +masq_in=$2 a $1 +masq_ex=Xarxa a $1 excepte $2 +masq_iface=Xarxa a $1 +masq_return=a la llista d'emmascarament +masq_edit=Edici de Regla d'emmascarament +masq_create=Creaci de Regla d'emmascarament +masq_header=Detalls de la regla d'emmascarament +masq_err=No s'ha pogut desar la regla d'emmascarament +masq_net=Noms per a la destinaci +masq_mode0=Adrea de subxarxa +masq_mode1=Subxarxa a la interfcie +masq_except=Excepte les xarxes +masq_enet=Hi falta la destinaci de la interfcie de sortida o b s invlida +masq_emnet=Hi falta l'adrea d'emmascarament de subxarxa o b s invlida +masq_emnete=La llista de xarxes d'excepci buida +masq_esnat=Adrea SNAT IP invlida +masq_eports=Hi falta la llista de ports separats per comes o b s invlida +masq_eipsec=Hi falten les opcions IPsec + +nat_title=NAT esttica +nat_desc=Les entrades de traducci d'adreces de xarxa origen d'aquesta taula es poden utilitzar per configurar una correspondncia 1 a 1 entre una adrea externa del tallafocs i una adrea RFC1918 d'una mquina darrere el tallafocs. La NAT esttica s'utilitza sovint per permetre connexions a un servidor intern des de fora de la teva xarxa. +nat_add=Afegeix una nova entrada NAT esttica. +nat_none=Encara no s'ha definit cap entrada NAT esttica +nat_0=Adrea externa +nat_1=Interfcie externa +nat_2=Adrea interna +nat_virt=virtual +nat_return=a la llista de NATs esttiques +nat_edit=Edici de NAT esttica +nat_create=Creaci de NAT esttica +nat_header=Detalls de l'entrada NAT esttica +nat_err=No s'ha pogut desar l'entrada NAT esttica +nat_all=Activa per a tots els hosts +nat_local=Activa per al sistema de tallafocs +nat_eext=Adrea IP externa invlida +nat_eint=Adrea IP interna invlida +nat_evirt=Nmero d'interfcie virtual invlid + +proxyndp_title=Proxy NDP +proxyndp_desc=Aquesta pgina permet configurar el sistema per tal que respongui les peticions NDP d'altres adreces diferents de la prpia, de manera que pugui reenviar paquets a aquelles adreces a la seva destinaci real. +proxyndp_add=Afegeix una nova adrea de proxy NDP. +proxyndp_none=Encara no s'ha definit cap adrea de proxy NDP +proxyndp_0=Adrea a NDP +proxyndp_1=Connectada a la interfcie +proxyndp_2=Interfcie externa +proxyndp_3=Persistent +proxyndp_return=a la llista d'adreces de proxy NDP +proxyndp_edit=Edici d'Adrea Proxy NDP +proxyndp_create=Creaci d'Adrea Proxy NDP +proxyndp_header=Detalls de la proxy NDP +proxyndp_err=No s'ha pogut desar la proxy NDP +proxyndp_have=Existeix la ruta al host +proxyndp_eaddr=Hi falta l'adrea a NDP o b s invlida +proxyndp_pers=Deixa la ruta encara que el tallafocs estigui aturat + +routestopped_title=En Aturar-se +routestopped_desc=Per defecte, quan el tallafocs Shorewall s'aturi, denegar l'accs des de tots els hosts. Aquesta pgina permet definir hosts o xarxes que encara seran accessibles. +routestopped_add=Afegeix una nova adrea aturada. +routestopped_none=Encara no s'ha definit cap adrea accessible en aturar-se. +routestopped_0=Interfcie +routestopped_1=Adreces accessibles +routestopped_2=Opcions de ruta +routestopped_return=a la llista d'adreces aturades +routestopped_edit=Edici d'Adreces Aturades +routestopped_create=Creaci d'Adreces Aturades +routestopped_header=Detalls de l'adrea aturada +routestopped_err=No s'ha pogut desar l'adrea aturada +routestopped_eaddr=No has introdut cap adrea +routestopped_all=Totes les adreces +routestopped_list=Les adreces i xarxes llistades... + +tunnels_title=Tnels VPN +tunnels_desc=Aquesta pgina llista els tnels VPN que passen a travs del teu tallafocs, i per tant han de ser permesos per la configuraci de Shorewall +tunnels_add=Afegeix un nou tnel VPN. +tunnels_none=Encara no s'ha definit cap tnel VPN per autoritzar +tunnels_0=Tipus de VPN +tunnels_1=Zona per interfcie +tunnels_2=Portal remot +tunnels_3=Zones del portal +tunnels_gnone=Cap +tunnels_return=a la llista de tnels VPN +tunnels_edit=Edita el Tnel VPN +tunnels_create=Crea un Tnel VPN +tunnels_header=Detalls del tnel VPN +tunnels_err=No s'ha pogut desar el tnel VPN +tunnels_sel=IP del Portal +tunnels_ipsec=IPsec +tunnels_ipsec:noah=IPsec (sense AH) +tunnels_ipsecnat=IPsec amb NAT +tunnels_ipsecnat:noah=IPsec amb NAT (sense AH) +tunnels_ip=IP +tunnels_gre=GRE +tunnels_pptpclient=Client PPTP +tunnels_pptpserver=Servidor PPTP +tunnels_openvpn=OpenVPN +tunnels_openvpn_l=OpenVPN, al port... +tunnels_generic=Genric +tunnels_generic_l=Genric, per al protocol... +tunnels_gsel=Zones llistades +tunnels_eopenvpn=Nmero de port invlid del tnel OpenVPN +tunnels_egeneric=Hi falta el protocol o el protocol i el port del tnel genric + +hosts_title=Hosts de Zona +hosts_desc=Aquesta pgina llista els hosts i les xarxes que sn part de zones particulars. Per regla general, no cal que facis canvis en aquesta llista. +hosts_add=Afegeix un nou host de zona. +hosts_none=Encara no s'ha definit cap host de zona +hosts_0=Zona +hosts_1=Interfcie +hosts_2=Adrea IP o xarxa +hosts_opts=Opcions del host +hosts_return=Llista de hosts de zona +hosts_edit=Edita el Host de Zona +hosts_create=Crea un Host de Zona +hosts_err=No s'ha pogut desar el host de zona +hosts_enet=Hi falta l'adrea del host o b s invlida +hosts_header=Detalls del host de zona +hosts_routestopped=Encamina encara que el tallafocs estigui aturat +hosts_ip=Adrea o xarxa $1 +hosts_mac=Adrea MAC $1 +hosts_ipset=Conjunt IP $1 +hosts_any=Qualsevol host + +edit_before=Abans de l'entrada $1 +edit_after=Desprs de l'entrada $1 + +blacklist_title=Blacklist Hosts +blacklist_desc=Aquesta pgina llista els hosts i els serveis que es bloquejaran si el trnsit des dels mateixos arriba en una interfcie amb l'opci blacklist establerta. +blacklist_add=Afegeix un nou host de llista negra. +blacklist_none=Encara no s'ha decidit cap host de llista negra. +blacklist_0=Host o xarxa +blacklist_1=Protocol +blacklist_2=Ports +blacklist_any=Qualsevol +blacklist_header=Detalls del host de llista negra +blacklist_host=Host o xarxa +blacklist_proto=Protocol +blacklist_ports=Port or llista de ports +blacklist_err=No s'ha pogut desar el host de llista negra +blacklist_ehost=Hi falta l'adrea IP del host o l'adrea de la xarxa, o b s invlida +blacklist_emac=Hi falta l'adrea MAC o b s invlida +blacklist_eipset=Hi falta el nom del conjunt IP +blacklist_edit=Edita el Host de Llista Negra +blacklist_create=Crea un Host de Llista Negra +blacklist_eproto=Hi falta el protocol o b s invlid +blacklist_eports=Nmero de port invlid o llista de ports separats per comes invlida +blacklist_eports2=Els ports noms es poden especificar per als protocols TCP i UDP +blacklist_return=als hosts de llista negra + +providers_title=Proveidors d'Encaminament Addicionals +providers_desc=Aquesta pgina defineix taules d'encaminament addicionals. Aquestes sn necessries si tens connexions a ms d'un ISP o mltiples connexions al mateix ISP, o ests executant Squid com una proxy transparent en un altre host diferent del tallafocs. +providers_add=Afegeix un nou provedor d'encaminament. +providers_none=Encara no s'ha definit cap provedor d'encaminament. +providers_0=Nom +providers_1=Nmero +providers_2=Marca +providers_3=Interfcie +providers_4=Portal +providers_name=Nom del provedor +providers_number=Nmero del provedor +providers_mark=Nmero de la marca +providers_dup=Duplica el provedor +providers_main=Taula principal +providers_iface=Interfcie de xarxa +providers_gateway=Encaminador del portal +providers_auto=Detecta automticament +providers_opts=Opcions addicionals +providers_track=Traa les connexions +providers_balance=Equilibra la crrega de trnsit +providers_loose=Permet el trnsit des del tallafocs +providers_edit=Edita el Provedor d'Encaminament +providers_create=Crea un Provedor d'Encaminament +providers_header=Detalls addicionals del provedor d'encaminament +providers_copy=Copia les rutes a travs de les interfcies +providers_err=No s'ha pogut desar el provedor d'encaminament +providers_ename=Hi falta el nom del provedor o b s invlid +providers_enumber=Hi falta el nmero del provedor o b s invlid +providers_emark=Hi falta el nmero de la marca del provedor o b s invlid +providers_edup=Hi falta el provedor per duplicar +providers_egateway=Hi falta el portal o b s invlid + +manual_desc=Aquest formulari es pot utilitzar per editar manualment el fitxer $1 de Shorewall. Ves amb compte, perqu no es far cap comprovaci de sintaxi dels els canvis. +manual_reset=Desfs +manual_err=No s'ha pogut desar el fitxer de taules +manual_efile=Nom de taula invlid! +manual_edata=No has introdut cap contingut de fitxer de taules. + +acl_nochange=Pot aplicar, aturar i iniciar la configuraci de Shorewall +acl_files=Taules de Shorewall disponibles +acl_all=Totes +acl_sel=Les seleccionades a sota... + +delete_err=No s'han pogut suprimir les files +delete_enone=No has seleccionat cap fila + +opts_routeback=Accepta el trnsit de tornada al host +opts_source=Permet des del host a qualsevol destinaci +opts_dest=Permet cap al host des de qualsevol origen +opts_critical=Mostra sempre el trnsit entre el tallafocs +opts_maclist=Compara amb la llista de MACs +opts_norfc1918=Rebutja els paquets privats IP +opts_blacklist=Rebutja els paquets de la llista negra +opts_tcpflags=Comprova les banderes TCP illegals +opts_nosmurfs=Comprova els paquets retransmesos d'origen +opts_ipsec=Zona IPsec +opts_dhcp=La interfcie utilitza DHCP +opts_routefilter=Activa el filtratge de rutes anti-spoof +opts_logmartians=Registra els paquets amb origen impossible +opts_proxyndp=Activa la proxy NDP +opts_ndp_filter=Respon a les peticions NDP noms per l'IP de la interfcie +opts_detectnets=Adequa la zona per incloure noms els hosts encaminats +opts_upnp=Remapeja els paquets via UPNP + +comment_add=Afegeix un nou comentari. +comment_edit=Edita el comentari +comment_create=Crea un Comentari +comment_header=Detalls del comentari de la taula +comment_msg=Missatge +comment_err=No s'ha pogut desar el comentari +comment_enone=No has introdut cap missatge + +log_create_table=S'ha afegit l'entrada a la taula $1 +log_modify_table=S'ha modificat l'entrada de la taula $1 +log_delete_table=S'ha suprimit l'entrada de la taula $1 +log_deletes_table=S'han suprimit les entrades de la taula $1 +log_up_table=S'ha desplaat l'entrada amunt a la taula $1 +log_down_table=S'ha desplaat avall l'entrada a la taula $1 +log_manual_table=S'ha editat manualment el fitxer de la taula $1 +log_create_comment=S'ha afegit un comentari a la taula $1 +log_modify_comment=S'ha modificat el comentari de la taula $1 +log_delete_comment=S'ha suprimit el comentari de la taula $1 +log_stop=S'ha aturat el tallafocs +log_start=S'ha iniciat el tallafocs +log_refresh=S'ha refrescat el tallafocs +log_restart=S'ha reiniciat el tallafocs +log_clear=S'ha netejat el tallafocs + +shorewall_conf_title=Fitxer Mestre de Configuraci +shorewall_conf_desc=Aquesta pgina permet configurar les variables de configuraci globals. NOTA: No s recomanable canviar aqu l'ordre de les variables si vols conservar la posici relativa dels comentaris al fitxer de configuraci. +shorewall_conf_add=Afegeix una nova variable de configuraci. +shorewall_conf_none=No s'ha trobat cap configuraci de shorewall. +shorewall_conf_0=Variable +shorewall_conf_1=Valor +shorewall_conf_2=Comentari +shorewall_conf_return=a la llista de variables de configuraci +shorewall_conf_edit=Edici de variable de configuraci +shorewall_conf_create=Creaci de variable de configuraci +shorewall_conf_header=Detalls de la variable de configuraci +shorewall_conf_err=No s'ha pogut desar la variable de configuraci +shorewall_conf_varname=Nom de variable invlid (ha de ser un nom de variable shell vlid) + +params_title=Parmetres Personalitzats +params_desc=Aquesta pgina permet configurar els parmetres personalitzats de Shorewall. NOTA: No s recomanable canviar aqu l'ordre de les variables si vols conservar la posici relativa dels comentaris al fitxer de configuraci. +params_add=Afegeix un nou parmetre personalitzat +params_none=No s'ha trobat cap parmetre personalitzat. +params_0=Parmetre +params_2=Comentari +params_1=Valor +params_return=a la llista de parmetres personalitzats +params_edit=Edici de parmetre personalitzat +params_create=Creaci de parmetre personalitzat +params_header=Detalls del parmetre personalitzat +params_err=No s'ha pogut desar el parmetre personalitzat +params_varname=Nom de parmetre invlid (ha de ser un nom de variable shell vlid) +__norefs=1 diff --git a/shorewall6/lang/de b/shorewall6/lang/de new file mode 100644 index 000000000..8a0e0f80f --- /dev/null +++ b/shorewall6/lang/de @@ -0,0 +1,212 @@ +__norefs=1 +acl_all=Alle +acl_files=Verfügbare Shorewall Tabellen +acl_nochange=Kann Shorewall Konfiguration anwenden, stoppen und starten? +acl_sel=Ausgewählte unten .. +blacklist_0=Host oder Netzwerk +blacklist_1=Protokoll +blacklist_2=Ports +blacklist_add=Fügt einen neuen Blacklist-Host hinzu. +blacklist_any=jede +blacklist_create=Erstelle Blacklist-Host +blacklist_edit=Editiere Blacklist-Host +blacklist_ehost=Fehlende oder ungültige IP-Adresse oder Netzwerk Adresse +blacklist_emac=Fehlende oder ungültige MAC-Adresse +blacklist_eports=Ungültige Portnummer oder kommagetrennte Liste aller Ports +blacklist_eports2=Ports können nur für die Protokolle TCP und UDP angegeben werden +blacklist_eproto=Fehlendes oder ungültiges Protokoll +blacklist_header=Blacklist-Host Details +blacklist_host=Host oder Netzwerk +blacklist_none=Keine Blacklist Hosts wurden bisher definiert. +blacklist_ports=Port oder Port Liste +blacklist_proto=Protokoll +blacklist_return=Blacklist-Hosts +blacklist_title=Blacklist-Hosts +check_cmd=Prüfe Konfiguration .. +check_failed=.. es wurde ein Fehler in Ihrer Firewall-Konfiguration gefunden! +check_ok=.. Ihre Firewall Konfiguration schaut OK aus. +check_title=Prüfe Firewall +comment_add=Füge einen neuen Kommentar hinzu. +comment_create=Erstelle Kommentar +comment_edit=Editiere Kommentar +comment_enone=Keine Nachricht eingegeben +comment_err=Fehlgeschlagen Kommentar zu speichern +comment_msg=Nachricht +delete_enone=Keine Zeilen ausgewählt +dump_title=Firewall Dump +edit_after=Nach Eintrag $1 +edit_before=Vor Eintrag $1 +hosts_0=Zone +hosts_1=Schnittstelle +hosts_2=IP-Adresse oder Netzwerk +hosts_any=Jeder Host +hosts_ip=Adresse oder Netzwerk $1 +hosts_ipset=IP gesetzt $1 +hosts_mac=MAC Adresse $1 +hosts_opts=Host Optionen +index_check=Prüfe Firewall +index_dump=Zeige Dump +index_ecmd=Der Befehl $1 wurde auf Ihrem System nicht gefunden. Vielleicht ist es nicht installiert ist oder die Modulkonfiguration ist falsch. +index_edir=Das Shorewall Konfigurationsverzeichnis $1 wurde auf Ihrem System nicht gefunden. Vielleicht ist es nicht installiert ist oder die Modulkonfiguration ist falsch. +index_refresh=Konfiguration aktualisieren +index_restart=Konfiguration anwenden +index_return=Liste der Tabellen +index_start=Starte Firewall +index_status=Zeige Status +index_stop=Stoppe Firewall +index_title=Shorewall6 Firewall +index_version=Shorewall6 Version $1 +interfaces_0=Schnittstelle +interfaces_2=Broadcast-Adresse +interfaces_3=Optionen +interfaces_add=Für eine neue Netzwerk-Schnittstelle hinzu. +interfaces_detect=Automatisch +interfaces_ebroad=Fehlende oder ungültige Broadcast-Adresse +interfaces_edit=Editiere Netzwerk Schnittstelle +interfaces_eiface=Fehlender oder ungültiger Schnittstellenname +interfaces_err=Fehlgeschlagen Netzwerk-Schnittstelle zu speichern +interfaces_header=Netzwerk Schnittstelle Details +interfaces_none=Keine Netzwerk-Schnittstellen wurden bisher definiert. +interfaces_return=Schnittstellen Liste +interfaces_title=Netzwerkschnittstellen +list_add=Hinzufügen +list_any=Jede +list_auto=Automatisch +list_delete=Lösche ausgewähltes +list_fw=Firewall +list_manual=Datei manuell editieren +list_other=Andere.. +log_start=Firewall gestartet +log_stop=Firewall gestoppt +manual_efile=Ungültige Tabellenname! +manual_reset=Rückgängig +masq_0=Ausgehendes Interface +masq_2=SNAT Adresse +masq_3=Einschränken auf Protokoll +masq_4=Einschränken auf Ports +masq_5=IPsec Optionen +masq_add=Füge eine neue Masquerading Regel hinzu. +masq_all=Alle Ports +masq_any=Jedes Protokoll +masq_create=Erstelle Masquerading Regel +masq_eipsec=Fehlende IPsec Optionen +masq_esnat=Ungültige SNAT IP-Adresse +masq_except=Ausgenommen für Netzwerke +masq_iface=Netzwerk auf $1 +masq_in=$2 auf $1 +masq_mode0=Subnetzadresse +masq_mode1=Subnetz auf Interface +masq_net=Nur für das Ziel +masq_return=Masquerading Liste +masq_title=Masquerading +nat_0=Externe Adresse +nat_1=Externe Schnittstelle +nat_2=Interne Adresse +nat_all=Aktiv für alle Hosts? +nat_create=Erstelle statisches NAT +nat_edit=Editiere statisches NAT +nat_eext=Ungültige externe IP-Adresse +nat_eint=Ungültige interne IP-Adresse +nat_title=Statisches NAT +nat_virt=virtuell +opts_dhcp=Interface, welches DHCP benutzt +opts_ipsec=IPsec Zone +opts_proxyndp=Aktiviere Proxy NDP +opts_source=Erlaube von Host zu jedem Ziel +params_0=Parameter +params_1=Wert +params_2=Kommentar +policy_3=Syslog Level +policy_4=Traffic Limit +policy_ulog=Auf ULOG loggen +providers_0=Name +providers_1=Nummer +providers_3=Interface +providers_4=Gateway +providers_auto=Automatisch erkennen +providers_dup=Dupliziere Provider +providers_egateway=Fehlender oder ungültiger Gateway +providers_gateway=Gateway Router +providers_iface=Netzwerk Interface +providers_loose=Erlaube Traffic von Firewall +providers_main=Haupttabelle +providers_name=Providername +providers_number=Providernummer +providers_opts=Zusätzliche Optionen +proxyndp_1=Verbunden mit Schnittstelle +proxyndp_2=Externe Schnittstelle +proxyndp_3=Anhaltend? +proxyndp_edit=Editiere Proxy NDP Adresse +proxyndp_err=Fehlgeschlagen Proxy NDP zu speichern +proxyndp_header=Proxy NDP Details +proxyndp_title=Proxy NDP +routestopped_0=Interface +routestopped_2=Route Optionen +routestopped_all=Alle Adressen +rules_0=Aktion +rules_1=Quelle +rules_2=Ziel +rules_3=Protokoll +rules_4=Quellports +rules_5=Zielports +rules_add=Für eine neue Firewall Regel hinzu. +rules_create=Erstelle Firewall Regel +rules_edit=Editiere Firewall Regel +rules_header=Details der Firewall-Regel +rules_hosts=Host $2 in Zone $1 +rules_nolog=Logge nicht +rules_norate=Kein Limit +rules_noset=Alle Benutzer +rules_ranges=Ports und Bereiche +rules_rport=Port $1 +rules_title=Firewall Regeln +rules_zone=Zone $1 +shorewall_conf_0=Variable +shorewall_conf_1=Wert +shorewall_conf_2=Kommentar +shorewall_conf_add=Füge neue Konfigurationsvariable hinzu +shorewall_conf_create=Errstelle Konfigurationsvariable +shorewall_conf_edit=Editiere Konfigurationsvariable +status_title=Firewall Status +tos_0=Quelle +tos_0z=Quell Zone +tos_1=Ziel +tos_1z=Ziel Zone +tos_2=Protokoll +tos_3=Quell Ports +tos_4=Ziel Ports +tos_5=Typ des Dienstes +tos_6=Test +tos_edit=Editiere Typ des Dienstes +tunnels_0=VPN Typ +tunnels_add=Füge neuen VPN Tunnel hinzu +tunnels_create=Erstelle VPN Tunnel +tunnels_edit=Editiere VPN Tunnel +tunnels_eopenvpn=Ungültige Portnummer für OpenVPN Tunnel +tunnels_err=Fehlgeschlagen VPN Tunnel zu speichern +tunnels_generic=Generic +tunnels_generic_l=Generic, für Protokoll.. +tunnels_gre=GRE +tunnels_header=VPN Tunnel Details +tunnels_ip=IP +tunnels_ipsec=IPsec +tunnels_ipsec:noah=IPsec (kein AH) +tunnels_ipsecnat=IPsec mit NAT +tunnels_ipsecnat:noah=IPsec mit NAT (kein AH) +tunnels_none=Keine VPN Tunnel zum Erlauben wurden bisher definiert. +tunnels_openvpn=OpenVPN +tunnels_openvpn_l=OpenVPN, auf Port.. +tunnels_pptpclient=PPTP Client +tunnels_pptpserver=PPTP Server +tunnels_return=VPN Tunnel Liste +tunnels_sel=Gateway IP +tunnels_title=VPN Tunnel +zones_0=Zone ID +zones_1=Anzeigename +zones_2=Beschreibung +zones_2new=Zonentyp +zones_3new=Zonenoptionen +zones_6new=Kommentar +zones_firewall=Firewallsystem +zones_ipsec=IPsec +zones_ipv6=IPv6 diff --git a/shorewall6/lang/en b/shorewall6/lang/en new file mode 100644 index 000000000..2850fa15f --- /dev/null +++ b/shorewall6/lang/en @@ -0,0 +1,455 @@ +index_title=Shorewall6 Firewall +index_ecmd=The command $1 was not found on your system. Maybe it is not installed, or the module configuration is incorrect. +index_edir=The Shorewall configuration directory $1 was not found on your system. Maybe it is not installed, or the module configuration is incorrect. +index_version=Shorewall6 version $1 +index_return=list of tables +index_restart=Apply Configuration +index_restartdesc=Click this button to activate the current Shorewall configuration with the shorewall6 restart command. +index_refresh=Refresh Configuration +index_refreshdesc=Click this button to activate just the Blacklist and Traffic Shaping tables with the shorewall6 refresh command. +index_start=Start Firewall +index_startdesc=Click this button to start Shorewall with the current configuration with the shorewall6 start command. +index_clear=Clear Firewall +index_cleardesc=Click this button to clear the Shorewall firewall with the shorewall6 clear command. This will allow access from all hosts without restriction. +index_stop=Stop Firewall +index_stopdesc=Click this button to shut down Shorewall with the shorewall6 stop command. This will block access from all hosts except those in the When Stopped table. +index_status=Show Status +index_statusdesc=Click this button to view Shorewall's tables and rules from the shorewall6 status command. +index_dump=Show Dump +index_dumpdesc=Click this button to view Shorewall tracing information from the shorewall6 dump command. +index_check=Check Firewall +index_checkdesc=Click this button to have Shorewall validate your firewall configuration with the shorewall6 check command. + +list_move=Move +list_add=Add +list_auto=Automatic +list_none=None +list_any=Any +list_fw=Firewall +list_other=Other.. +list_manual=Manually Edit File +list_manualdesc=Click this button to manually edit the Shorewall file $1, in which the entries above are stored. +list_ecannot=You are not allowed to edit this Shorewall table. +list_delete=Delete Selected + +restart_err=Failed to apply configuration +refresh_err=Failed to refresh configuration +start_err=Failed to start firewall +clear_err=Failed to clear firewall +stop_err=Failed to shut down firewall +status_title=Firewall Status +dump_title=Firewall Dump +check_title=Check Firewall +check_ok=.. your firewall configuration looks OK. +check_failed=.. an error was found in your firewall configuration! +check_cmd=Checking configuration .. + +zones_title=Network Zones +zones_desc=The zones listed on this page represent different networks reachable from your system. However, the entries here do no actually have any effect on the firewall - instead, they just define zone names and descriptions. +zones_add=Add a new network zone. +zones_none=No network zones have been defined yet. +zones_0=Zone ID +zones_1=Displayed name +zones_2=Description +zones_1new=Parent zone +zones_2new=Zone type +zones_3new=Zone options +zones_4new=Incoming options +zones_5new=Outgoing options +zones_6new=Comment +zones_return=zones list +zones_edit=Edit Network Zone +zones_create=Create Network Zone +zones_header=Network zone details +zones_err=Failed to save network zone +zones_eid=Missing or invalid zone ID +zones_efwid=The zone IDs $FW and fw are reserved for the firewall +zones_ename=Missing or invalid displayed name +zones_edesc=Missing zone description +zones_ipv6=IPv6 +zones_ipsec=IPsec +zones_firewall=Firewall system +zones_eopts=Invalid zone options +zones_eopts_in=Invalid zone incoming options +zones_eopts_out=Invalid zone outgoing options + +policy_title=Default Policies +policy_desc=This page allows you to configure the default actions for traffic between different firewall zones. They can be overridden for particular hosts or types of traffic on the Firewall Rules page. +policy_add=Add a new default policy. +policy_none=No default policies have been defined yet. +policy_0=Source zone +policy_1=Destination zone +policy_2=Policy +policy_3=Syslog level +policy_4=Traffic limit +policy_limit=Limit $1, Burst $2 +policy_return=policies list +policy_edit=Edit Default Policy +policy_create=Create Default Policy +policy_header=Default policy details +policy_err=Failed to save default policy +policy_nolog=Logging disabled +policy_ulog=Log to ULOG +policy_efw=<Firewall> cann be selected for both the source and destination zones +policy_elimit=Missing or invalid traffic limit number +policy_eburst=Missing or invalid traffic burst number + +rules_title=Firewall Rules +rules_desc=This table lists exceptions to the default policies for certain types of traffic, sources or destinations. The chosen action will be applied to packets matching the chosen criteria instead of the default. +rules_add=Add a new firewall rule. +rules_none=No firewall rules have been defined yet. +rules_0=Action +rules_1=Source +rules_1z=Source zone +rules_2=Destination +rules_2z=Destination zone or port +rules_3=Protocol +rules_4=Source ports +rules_5=Destination ports +rules_6=Rate limit +rules_7=User set +rules_hosts=Host $2 in zone $1 +rules_zone=Zone $1 +rules_rport=Port $1 +rules_related=Related +rules_return=firewall rules list +rules_edit=Edit Firewall Rule +rules_create=Create Firewall Rule +rules_header=Firewall rule details +rules_err=Failed to save firewall rule +rules_log=and log to syslog level +rules_nolog=Don't log +rules_addr=Only hosts in zone with addresses +rules_ranges=Ports or ranges +rules_dnat=Original destination address for DNAT or REDIRECT +rules_dnat_dest=For DNAT or REDIRECT, fill in the new destination address or port here. +rules_dnat_port=For DNAT or REDIRECT, fill in the original destination port here. +rules_esother=Missing or invalid source zone +rules_edother=Missing or invalid destination zone +rules_esinzone=No host addresses entered for source +rules_edinzone=No host addresses entered for destination +rules_esport=No source port names, numbers or ranges entered +rules_edport=No destination port names, numbers or ranges entered +rules_ednat=Original destination address must be a single IP address, two addresses separated by a :, or an exclusion list starting with ! +rules_ednat2=An original destination address can only be entered for the DNAT and REDIRECT actions +rules_rate=Rate limit expression +rules_norate=No limit +rules_set=Rule applies to user set +rules_noset=All users +rules_eaction=No action selected +rules_macro=Macro action parameter +rules_none2=None +rules_emacro=Missing or invalid macro parameter + +tos_title=Types of Service +tos_desc=This page defines IP service types for particular types of traffic, which can be used to raise or lower their priorities. +tos_add=Add a new type of service. +tos_none=No types of service have been defined yet. +tos_0=Source +tos_0z=Source zone +tos_1=Destination +tos_1z=Destination zone +tos_2=Protocol +tos_3=Source ports +tos_4=Destination ports +tos_5=Type of service +tos_6=Test +tos_return=types of service list +tos_edit=Edit Type of Service +tos_create=Create Type of Service +tos_header=Type of service details +tos_err=Failed to save type of service + +interfaces_title=Network Interfaces +interfaces_desc=Each of the network interfaces on your system that you want Shorewall to manage should be listed on this page, and associated with the zone that it is connected to. The loopback interface lo must never be listed. +interfaces_add=Add a new network interface. +interfaces_none=No network interfaces have been defined yet. +interfaces_0=Interface +interfaces_1=Zone name +interfaces_2=Broadcast address +interfaces_3=Options +interfaces_detect=Automatic +interfaces_return=interfaces list +interfaces_edit=Edit Network Interface +interfaces_create=Create Network Interface +interfaces_header=Network interface details +interfaces_err=Failed to save network interface +interfaces_eiface=Missing or invalid interface name +interfaces_ebroad=Missing or invalid broadcast address + +masq_title=Masquerading +masq_desc=Entries on this page set up network address translation for traffic routed between some network and a particular interface. +masq_add=Add a new masquerading rule. +masq_none=No masquerading rules have been defined yet. +masq_0=Outgoing interface +masq_1=Network to masquerade +masq_2=SNAT address +masq_3=Restrict to protocol +masq_4=Restrict to ports +masq_5=IPsec options +masq_any=Any protocol +masq_all=All ports +masq_in=$2 on $1 +masq_ex=Network on $1 except $2 +masq_iface=Network on $1 +masq_return=masquerading list +masq_edit=Edit Masquerading Rule +masq_create=Create Masquerading Rule +masq_header=Masquerading rule details +masq_err=Failed to save masquerading rule +masq_net=Only for destination +masq_mode0=Subnet address +masq_mode1=Subnet on interface +masq_except=Except for networks +masq_enet=Missing or invalid outgoing interface destination +masq_emnet=Missing or invalid masquerading subnet address +masq_emnete=Empty exception networks list +masq_esnat=Invalid SNAT IP address +masq_eports=Missing or invalid comma-separate list of ports +masq_eipsec=Missing IPsec options + +nat_title=Static NAT +nat_desc=The static network address translation entries in this table can be used to set up a 1-1 correspondence between an external address on your firewall and an RFC1918 address of a machine behind your firewall. Static NAT is often used to allow connections to an internal server from outside your network. +nat_add=Add a new static NAT entry. +nat_none=No static NAT entries have been defined yet. +nat_0=External address +nat_1=External interface +nat_2=Internal address +nat_virt=virtual +nat_return=static NAT list +nat_edit=Edit Static NAT +nat_create=Create Static NAT +nat_header=Static NAT entry details +nat_err=Failed to save static NAT entry +nat_all=Active for all hosts? +nat_local=Active for firewall system? +nat_eext=Invalid external IP address +nat_eint=Invalid internal IP address +nat_evirt=Invalid virtual interface number + +proxyndp_title=Proxy NDP +proxyndp_desc=This page allows you to configure your system to answer NDP requests for IP addresses other than its own, so that it can forward packets to those addresses to their real destinations. +proxyndp_add=Add a new proxy NDP address. +proxyndp_none=No proxy NDP addresses have been defined yet. +proxyndp_0=Address to NDP +proxyndp_1=Connected to interface +proxyndp_2=External interface +proxyndp_3=Persistent? +proxyndp_return=proxy NDP address list +proxyndp_edit=Edit Proxy NDP Address +proxyndp_create=Create Proxy NDP Address +proxyndp_header=Proxy NDP details +proxyndp_err=Failed to save proxy NDP +proxyndp_have=Route to host exists? +proxyndp_eaddr=Missing or invalid address to NDP +proxyndp_pers=Leave route even when firewall stopped? + +routestopped_title=When Stopped +routestopped_desc=By default, when the Shorewall firewall is stopped it will deny access from all hosts. This page allows you to define hosts or networks that will still be accessible. +routestopped_add=Add a new stopped address. +routestopped_none=No addresses to be accessible when stopped have been defined yet. +routestopped_0=Interface +routestopped_1=Accessible addresses +routestopped_2=Route options +routestopped_return=stopped address list +routestopped_edit=Edit Stopped Address +routestopped_create=Create Stopped Address +routestopped_header=Stopped address details +routestopped_err=Failed to save stopped address +routestopped_eaddr=No addresses entered +routestopped_all=All addresses +routestopped_list=Listed addresses and networks .. + +tunnels_title=VPN Tunnels +tunnels_desc=This page lists VPN tunnels that pass through your firewall, and so must be allowed by the Shorewall configuration. +tunnels_add=Add a new VPN tunnel. +tunnels_none=No VPN tunnels to allow have been defined yet. +tunnels_0=VPN Type +tunnels_1=Zone for interface +tunnels_2=Remote gateway +tunnels_3=Gateway zones +tunnels_gnone=None +tunnels_return=VPN tunnels list +tunnels_edit=Edit VPN Tunnel +tunnels_create=Create VPN Tunnel +tunnels_header=VPN tunnel details +tunnels_err=Failed to save VPN tunnel +tunnels_sel=Gateway IP +tunnels_ipsec=IPsec +tunnels_ipsec:noah=IPsec (no AH) +tunnels_ipsecnat=IPsec with NAT +tunnels_ipsecnat:noah=IPsec with NAT (no AH) +tunnels_ip=IP +tunnels_gre=GRE +tunnels_pptpclient=PPTP client +tunnels_pptpserver=PPTP server +tunnels_openvpn=OpenVPN +tunnels_openvpn_l=OpenVPN, on port.. +tunnels_generic=Generic +tunnels_generic_l=Generic, for protocol.. +tunnels_gsel=Listed zones +tunnels_eopenvpn=Invalid port number for OpenVPN tunnel +tunnels_egeneric=Missing protocol or protocol:port for generic tunnel + +hosts_title=Zone Hosts +hosts_desc=This page lists hosts and networks that are part of particular zones. You generally do not need to make any changes to this list. +hosts_add=Add a new zone host. +hosts_none=No zone hosts have been defined yet. +hosts_0=Zone +hosts_1=Interface +hosts_2=IP address or network +hosts_opts=Host options +hosts_return=zone hosts list +hosts_edit=Edit Zone Host +hosts_create=Create Zone Host +hosts_err=Failed to save zone host +hosts_enet=Missing or invalid host address +hosts_header=Zone host details +hosts_routestopped=Route even when firewall is stopped? +hosts_ip=Address or network $1 +hosts_mac=MAC address $1 +hosts_ipset=IP set $1 +hosts_any=Any host + +edit_before=Before entry $1 +edit_after=After entry $1 + +blacklist_title=Blacklist Hosts +blacklist_desc=This page lists hosts and services that will be blocked if traffic from them arrives on an interface with the blacklist option set. +blacklist_add=Add a new blacklist host. +blacklist_none=No blacklist hosts have been defined yet. +blacklist_0=Host or network +blacklist_1=Protocol +blacklist_2=Ports +blacklist_any=Any +blacklist_header=Blacklist host details +blacklist_host=Host or network +blacklist_proto=Protocol +blacklist_ports=Port or port list +blacklist_err=Failed to save blacklist host +blacklist_ehost=Missing or invalid host IP address or network address +blacklist_emac=Missing or invalid MAC address +blacklist_eipset=Missing IP set name +blacklist_edit=Edit Blacklist Host +blacklist_create=Create Blacklist Host +blacklist_eproto=Missing or invalid protocol +blacklist_eports=Invalid port number or comma-separated list of ports +blacklist_eports2=Ports can only be specified for the TCP and UDP protocols +blacklist_return=blacklist hosts + +providers_title=Additional Routing Providers +providers_desc=This page defines additional routing tables. These are needed if you have connections to more than one ISP or multiple connections to the same ISP, or run Squid as a transparent proxy on a host other than the firewall. +providers_add=Add a new routing provider. +providers_none=No routing providers have been defined yet. +providers_0=Name +providers_1=Number +providers_2=Mark +providers_3=Interface +providers_4=Gateway +providers_name=Provider name +providers_number=Provider number +providers_mark=Mark number +providers_dup=Duplicate provider +providers_main=Main table +providers_iface=Network interface +providers_gateway=Gateway router +providers_auto=Detect automatically +providers_opts=Additional options +providers_track=Track connections +providers_balance=Load-balance traffic +providers_loose=Allow traffic from firewall +providers_edit=Edit Routing Provider +providers_create=Create Routing Provider +providers_header=Additional routing provider details +providers_copy=Copy routes through interfaces +providers_err=Failed to save routing provider +providers_ename=Missing or invalid provider name +providers_enumber=Missing or invalid provider number +providers_emark=Missing or invalid provider mark number +providers_edup=Missing provider to duplicate +providers_egateway=Missing or invalid gateway + +manual_desc=This form can be used to manually edit the Shorewall file $1. Be careful, as no syntax checking will be done on the changes. +manual_reset=Undo +manual_err=Failed to save table file +manual_efile=Invalid table name! +manual_edata=No table file contents entered. + +acl_nochange=Can apply, stop and start Shorewall configuration? +acl_files=Available Shorewall tables +acl_all=All +acl_sel=Selected below .. + +delete_err=Failed to delete rows +delete_enone=No rows selected + +opts_routeback=Accept traffic back to host +opts_source=Allow from host to any destination +opts_dest=Allow to host from any source +opts_critical=Always allow traffic between firewall +opts_maclist=Compare against MAC list? +opts_norfc1918=Reject private IP packets +opts_blacklist=Reject packets on blacklist +opts_tcpflags=Check for illegal TCP flags +opts_nosmurfs=Check for broadcast source packets +opts_ipsec=IPsec zone +opts_dhcp=Interface uses DHCP +opts_routefilter=Enable anti-spoofing route filtering +opts_logmartians=Log packets with impossible sources +opts_proxyndp=Enable proxy NDP +opts_ndp_filter=Only respond to NDP requests for interface IP +opts_detectnets=Taylor zone to include only routed hosts +opts_upnp=Remap packets via UPNP + +comment_add=Add a new comment. +comment_edit=Edit Comment +comment_create=Create Comment +comment_header=Table comment details +comment_msg=Message +comment_err=Failed to save comment +comment_enone=No message entered + +log_create_table=Added entry to the $1 table +log_modify_table=Modified entry in the $1 table +log_delete_table=Deleted entry from the $1 table +log_deletes_table=Deleted entries from the $1 table +log_up_table=Moved up entry in the $1 table +log_down_table=Moved down entry in the $1 table +log_manual_table=Manually edited the $1 table file +log_create_comment=Added comment to the $1 table +log_modify_comment=Modified comment in the $1 table +log_delete_comment=Deleted comment from the $1 table +log_stop=Stopped firewall +log_start=Started firewall +log_refresh=Refreshed firewall +log_restart=Restarted firewall +log_clear=Cleared firewall + +shorewall_conf_title=Master configuration file +shorewall_conf_desc=This page allows you to configure the global configuration variables. NOTE: Changing the order of variables here is not recommended if you wish to preserve the relative position of comments in the configuration file. +shorewall_conf_add=Add a new configuration variable. +shorewall_conf_none=No shorewall6 configuration found. +shorewall_conf_0=Variable +shorewall_conf_1=Value +shorewall_conf_2=Comment +shorewall_conf_return=configuration variables list +shorewall_conf_edit=Edit configuration variable +shorewall_conf_create=Create configuration variable +shorewall_conf_header=Configuration variable details +shorewall_conf_err=Failed to save configuration variable +shorewall_conf_varname=Invalid variable name (must be a valid shell variable name) + +params_title=Custom parameters +params_desc=This page allows you to configure Shorewall's custom parameters. NOTE: Changing the order of parameters here is not recommended if you wish to preserve the relative position of comments in the configuration file. +params_add=Add a new custom parameter. +params_none=No custom parameters found. +params_0=Parameter +params_1=Value +params_2=Comment +params_return=custom parameters list +params_edit=Edit custom parameter +params_create=Create custom parameter +params_header=Custom parameter details +params_err=Failed to save custom parameter +params_varname=Invalid parameter name (must be a valid shell variable name) +__norefs=1 diff --git a/shorewall6/lang/es b/shorewall6/lang/es new file mode 100644 index 000000000..cec44d738 --- /dev/null +++ b/shorewall6/lang/es @@ -0,0 +1,298 @@ +acl_all=Todas +acl_files=Tablas de Shorewall disponibles +acl_nochange=¿Puede aplicar, detener e iniciar la configuración de Shorewall? +acl_sel=Las seleccionadas abajo... +blacklist_0=Host o Red +blacklist_1=Protocolo +blacklist_2=Puertos +blacklist_add=Agregar un nuevo host a la lista negra +blacklist_any=Cualquiera +blacklist_create=Crea un Host de la lista negra +blacklist_desc=Esta página enumera ordenadores principales y los servicios que se bloquearán si el tráfico de ellos llega en una interfaz con la opción de blacklist activada. +blacklist_edit=Edita el Host de la lista negra +blacklist_ehost=Falta la dirección IP del host, dirección MAC o dirección de red, o bien es inválida +blacklist_eports=Número de puerto inválido o lista de puertos separados por comas inválidos +blacklist_eports2=Los puertos solo se pueden especificar para los protocolos TCP y UDP +blacklist_eproto=Falta el protocolo o bien es inválido +blacklist_err=No he podido salvar la lista negra +blacklist_header=Detalles de la lista negra +blacklist_host=Host o Red +blacklist_none=Todavía no se ha definido ninguna lista negra. +blacklist_ports=Puerto or lista de puertos +blacklist_proto=Protocolo +blacklist_return=los Hosts de lista negra +blacklist_title=Hosts de de lista negra +check_cmd=Comprobando la configuración... +check_failed=...¡se ha encontrado un error en la configuración del cortafuegos! +check_ok=...la configuración del cortafuegos parece correcta. +check_title=Comprobación del Cortafuegos +clear_err=No he podido limpiar el cortafuegos +edit_after=Después de la entrada $1 +edit_before=Antes de la entrada $1 +hosts_0=Zona +hosts_1=Interfaz +hosts_2=Dirección IP o red +hosts_add=Agregar un nuevo host de zona +hosts_create=Crea un Host de Zona +hosts_desc=Esta página lista los hosts y las redes que son parte de zonas particulares. Por regla general, no hace falta que haga cambios en esta lista. +hosts_edit=Editar el Host de Zona +hosts_err=No he podido salvar el host de zona +hosts_header=Detalles del host de zona +hosts_maclist=¿Comparar con la lista MAC? +hosts_none=Todavía no se ha definido ningún host de zona +hosts_opts=Opciones del host +hosts_return=Lista de hosts de zona +hosts_routestopped=¿Encaminar aunque el cortafuegos esté detenido? +hosts_title=Hosts de Zona +index_check=Comprueba el Cortafuegos +index_checkdesc=Presione este botón para hacer que Shorewall valide la configuración con la orden shorewall6 check. +index_clear=Limpiar el Cortafuegos +index_cleardesc=Presione este botón para limpiar el cortafuegos Shorewall con la orden shorewall6 clear. Esto permitirá el acceso desde todos los hosts sin ningún tipo de restricción. +index_ecmd=No se ha encontrado en el sistema la orden $1. Puede que no esté instalada, o bien que la configuración del módulo sea incorrecta. +index_edir=No se ha encontrado en el sistema el directorio $1 de configuración de Shorewall. Puede que no esté instalado, o bien que la configuración del módulo sea incorrecta. +index_refresh=Refrescar la Configuración +index_refreshdesc=Presione este botón para activar solo las tablas de Lista Negra y Formateado de Tráfico con la orden shorewall6 refresh. +index_restart=Aplicar la Configuración +index_restartdesc=Presione este botón para activar la configuración actual de Shorewall con la orden shorewall6 restart. +index_return=lista de tablas +index_start=Iniciar el Cortafuegos +index_startdesc=Presione este botón para iniciar Shorewall con la configuración actual con la orden shorewall6 start. +index_status=Mostrar Estado +index_statusdesc=Presione sobre este botón para ver las tablas y reglas de Shorewall a partir de la orden shorewall6 status. +index_stop=Detener el Cortafuegos +index_stopdesc=Presione este botón para parar Shorewall con la orden shorewall6 stop. Esto bloqueará el acceso desde todos los hosts excepto los que hay en la tabla Cuando Está Detenido. +index_title=Cortafuegos Shorewall6 +index_version=Shorewall versión $1 +interfaces_0=Interfaz +interfaces_1=Nombre de zona +interfaces_2=Dirección de broadcast +interfaces_3=Opciones +interfaces_add=Agregar una nueva interfaz de red +interfaces_create=Crear Interfaz de Red +interfaces_desc=En esta página, deben estar todas y cada una de las interfaces de red del sistema que quieres que Shorewall gestione, asociadas con la zona en la que estan conectadas. La interfaz de loopback lo no ha de aparecer. +interfaces_detect=Automática +interfaces_ebroad=Falta la dirección de broadcast o bien es inválida +interfaces_edit=Editar Interfaz de Red +interfaces_eiface=Falta el nombre de la interfaz o bien es inválido +interfaces_err=No he podido salvar la interfaz +interfaces_header=Detalles de la interfaz de red +interfaces_none=No se ha definido ninguna interfaz de red. +interfaces_return=lista de interfaces +interfaces_title=Interfaces de Red +list_add=Añadir +list_any=Cualquiera +list_auto=Automático +list_ecannot=No tiene permiso para editar esta tabla de Shorewall. +list_fw=Cortafuegos +list_manual=Editar el Fichero Manualmente +list_manualdesc=Presione este botón para editar manualmente el fichero $1 de Shorewall, donde están guardadas las entradas de arriba. +list_move=Desplazar +list_none=Ninguno +list_other=Otros +manual_desc=Este formulario se puede utilizar para editar manualmente el fichero $1 de Shorewall. Vaya con cuidado, porque no se hará ninguna comprobación de sintaxis de los los cambios. +manual_edata=No ha introducido ningún contenido de fichero de tablas. +manual_efile=¡Nombre de tabla no válido! +manual_err=No he podido salvar el fichero de tablas +manual_reset=Deshacer +masq_0=Interfaz de salida +masq_1=Red a enmascarar +masq_2=Dirección SNAT +masq_add=Agregar una nueva regla de enmascaramiento +masq_create=Crear de Regla de Enmascaramiento +masq_desc=Las entradas de esta página configuran la traducción de direcciones de red para el tráfico encaminado entre alguna red y una interfaz particular. +masq_edit=Edición de Regla de Enmascaramiento +masq_emnet=Falta la dirección de enmascaramiento de subred o bien es inválida +masq_emnete=Lista de redes de excepción vacía +masq_enet=Falta el destino de la interfaz de salida o bien no es válido +masq_err=No he podido salvar la regla de enmascaramiento +masq_esnat=Dirección IP SNAT no válida +masq_ex=Red en $1 excepto $2 +masq_except=Excepto las redes +masq_header=Detalles de la regla de enmascaramiento +masq_iface=Red en $1 +masq_in=$2 en $1 +masq_mode0=Dirección de subred +masq_mode1=Subred en la interfaz +masq_net=Solo para el destino +masq_none=Todavía no se ha definido ninguna regla de enmascaramiento. +masq_return=lista de enmascaramiento +masq_title=Enmascaramiento +nat_0=Dirección externa +nat_1=Interfaz externa +nat_2=Dirección interna +nat_add=Agregar una nueva zona de entrada NAT estática +nat_all=¿Activa para todos los hosts? +nat_create=Crear NAT estática +nat_desc=Las entradas de traducción de direcciones de red origen de esta tabla se pueden utilizar para configurar una correspondencia 1 en 1 entre una dirección externa del cortafuegos y una dirección RFC1918 de una máquina detrás el cortafuegos. La NAT estática se utiliza a menudo para permitir conexiones a un servidor interno desde fuera de su red. +nat_edit=Edición de NAT estática +nat_eext=Dirección IP externa inválida +nat_eint=Dirección IP interna inválida +nat_err=No he podido salvar la entrada NAT estática +nat_evirt=Número de interfaz virtual inválida +nat_header=Detalles de la entrada NAT estática +nat_local=¿Activa para el sistema de cortafuegos? +nat_none=Todavía no se ha definido ninguna entrada NAT estática +nat_return=lista de NATs estáticas +nat_title=NAT estática +nat_virt=virtual +policy_0=Zona origen +policy_1=Zona destino +policy_2=Política +policy_3=Nivel de syslog +policy_4=Límite de tráfico +policy_add=Agregar una nueva política por defecto +policy_create=Creación de Política por Defecto +policy_desc=Esta página permite configurar las acciones por defecto para el tráfico entre zonas diferentes del cortafuegos. Pueden ser particularizadas para ciertos hosts o tipo de tráfico en la página de reglas del Cortafuegos. +policy_eburst=Falta el número de explosión de tráfico o bien es inválido +policy_edit=Edición de Política por Defecto +policy_efw=<Cortafuegos> se puede seleccionar tanto para la zona origen como la destino +policy_elimit=Falta el nombre del tráfico límite o bien es inválido +policy_err=No he podido guardar la política por defecto +policy_header=Detalles de la política por defecto +policy_limit=Límite $1, Burst(Explosión) $2 +policy_nolog=Históricos desactivados +policy_none=Todavía no se ha definido ninguna política por defecto. +policy_return=lista de políticas +policy_title=Políticas por Defecto +policy_ulog=Grabar a ULOG +proxyndp_0=Dirección a NDP +proxyndp_1=Conectada a la interfaz +proxyndp_2=Interfaz externa +proxyndp_3=¿Persistente? +proxyndp_add=Agregar una nueva dirección de proxy NDP +proxyndp_create=Creación de Dirección Proxy NDP +proxyndp_desc=Esta página permite configurar el sistema a fin de que responda las peticiones NDP de otras direcciones diferentes de la propia, de manera que pueda reenviar paquetes a aquellas direcciones a su destino real. +proxyndp_eaddr=Falta la dirección a NDP o bien es inválida +proxyndp_edit=Edición de Dirección Proxy NDP +proxyndp_err=No he podido salvar proxy NDP +proxyndp_have=¿Existe la ruta al host? +proxyndp_header=Detalles proxy NDP +proxyndp_none=Todavía no se ha definido ninguna dirección de proxy NDP +proxyndp_pers=¿Deja la ruta aunque el cortafuegos esté detenido? +proxyndp_return=la lista de direcciones de proxy NDP +proxyndp_title=Proxy NDP +refresh_err=No he podido refrescar la configuración +restart_err=No he podido aplicar la configuración +routestopped_0=Interfaz +routestopped_1=Direcciones accesibles +routestopped_add=Agregar una nueva dirección detenida +routestopped_all=Todas las direcciones +routestopped_create=Creación de Direcciones Detenidas +routestopped_desc=Por defecto, cuando el cortafuegos Shorewall se detenga, denegará el acceso desde todos los hosts. Esta página permite definir hosts o redes que todavía serán accesibles. +routestopped_eaddr=No has introducido ninguna dirección +routestopped_edit=Edición de Direcciones Detenidas +routestopped_err=No he podido salvar la dirección detenida +routestopped_header=Detalles de la dirección detenida +routestopped_list=Las direcciones y redes listadas... +routestopped_none=Todavía no se ha definido ninguna dirección accesible al detenerse. +routestopped_return=la lista de direcciones detenidas +routestopped_title=Cuando Está Detenido +rules_0=Acción +rules_1=Origen +rules_1z=Zona origen +rules_2=Destino +rules_2z=Zona o puerto de destino +rules_3=Protocolo +rules_4=Puertos de origen +rules_5=Puertos destino +rules_6=Límite de frecuencia +rules_7=Conjunto de usuarios +rules_add=Agregar una nueva regla del cortafuegos +rules_addr=Solo los hosts de la zona con direcciones +rules_create=Creación de Regla del Cortafuegos +rules_desc=Esta tabla lista las excepciones de las políticas por defecto para cierto tipo de tráfico, origen, o destino. La acción seleccionada se aplicará a los paquetes que coincidan con los criterios seleccionados en contra de la política por defecto. +rules_dnat=Dirección de destino original para DNAT o REDIRECT +rules_dnat_dest=Para DNAT o REDIRECT, rellene la nueva dirección o puerto de destino. +rules_dnat_port=Per a DNAT o REDIRECT, introduzca aquí el puerto del destino original. +rules_eaction=No se seleccionaron acciones +rules_edinzone=No has introducido ninguna dirección de host destino +rules_edit=Edición de Regla del Cortafuegos +rules_ednat=La dirección NAT original de destino tiene que ser una sola dirección IP o dos direcciones separadas por ':' +rules_ednat2=Sólo se puede introducir una dirección NAT original para las acciones DNAT y REDIRECT +rules_edother=Falta la zona destino o bien es inválida +rules_edport=No has introducido ningún nombre de puerto destino, número ni rango +rules_err=No he podido guardar la regla del cortafuegos +rules_esinzone=No has introducido ninguna dirección de host origen +rules_esother=Falta la zona origen o bien es inválida +rules_esport=No has introducido ningún nombre de puerto origen, número ni rango +rules_header=Detalles de la regla del cortafuegos +rules_hosts=Host $2 de la zona $1 +rules_log=y graba a nivel syslog +rules_nolog=No grabes +rules_none=Aún no se ha seleccionado ninguna regla del cortafuegos. +rules_norate=Sin límites +rules_noset=Todos los usuarios +rules_ranges=Puertos o rangos +rules_rate=Expresión de límite de frecuencia +rules_related=Relacionada +rules_return=la lista de reglas del cortafuegos +rules_rport=Puerto $1 +rules_set=La regla se aplica al conjunto de usuarios +rules_title=Reglas del Cortafuegos +rules_zone=Zona $1 +start_err=No he podido iniciar el cortafuegos +status_title=Estado del Cortafuegos +stop_err=No he podido cerrar el cortafuegos +tos_0=Origen +tos_0z=Zona origen +tos_1=Destino +tos_1z=Zona destino +tos_2=Protocolo +tos_3=Puertos origen +tos_4=Puertos destino +tos_5=Tipo de servicio +tos_add=Agregar un nuevo tipo de servicio +tos_create=Creación de Tipo de Servicio +tos_desc=Esta página define tipos de servicio IP para casos particulares de tráfico, que se pueden utilizar para aumentar o disminuir las prioridades. +tos_edit=Edición de Tipo de Servicio +tos_err=No he podido guardar el tipo de servicio +tos_header=Detalles del tipo de servicio +tos_none=Todavía no se ha definido ningún tipo de servicio. +tos_return=la lista de tipos de servicios +tos_title=Tipos de Servicios +tunnels_0=Tipo de VPN +tunnels_1=Zona por interfaz +tunnels_2=Gateway remoto +tunnels_3=Zonas del Gateway +tunnels_add=Agregar un nuevo túnel VPN +tunnels_create=Crea un Túnel VPN +tunnels_desc=Esta página lista los túneles VPN que pasan a través de su cortafuegos, y por lo tanto tienen que ser permitidos por la configuración de Shorewall. +tunnels_edit=Editar el Túnel VPN +tunnels_egeneric=Falta el protocolo o el protocolo y el puerto del túnel genérico +tunnels_eopenvpn=Número de puerto inválido del túnel OpenVPN +tunnels_err=No he podido salvar el túnel VPN +tunnels_generic=Genérico +tunnels_generic_l=Genérico, para el protocolo... +tunnels_gnone=Ninguno +tunnels_gre=GRE +tunnels_gsel=Zonas listadas +tunnels_header=Detalles del túnel VPN +tunnels_ip=IP +tunnels_ipsec=IPsec +tunnels_ipsec:noah=IPsec (sin AH) +tunnels_ipsecnat=IPsec con NAT +tunnels_ipsecnat:noah=IPsec con NAT (sin AH) +tunnels_none=Todavía no se ha definido ningún túnel VPN por autorizar +tunnels_openvpn=OpenVPN +tunnels_openvpn_l=OpenVPN, al puerto... +tunnels_pptpclient=Cliente PPTP +tunnels_pptpserver=Servidor PPTP +tunnels_return=la lista de túneles VPN +tunnels_sel=IP del Gateway +tunnels_title=Túneles VPN +zones_0=ID de zona +zones_1=Nombre mostrado +zones_2=Descripción +zones_add=Agregar una nueva zona de red. +zones_create=Creación de Zona de Red +zones_desc=Las zonas listadas en esta página representan diferentes redes accesibles desde tu sistema. No obstante, éstas entradas no tienen ningún efecto sobre el cortafuegos - simplemente definen nombres y descripciones de zona. +zones_edesc=Falta la descripción de la zona o bien es inválida +zones_edit=Edición de Zona de Red +zones_efwid=Los IDs $FW y fw de la zona estan reservados para los cortafuegos +zones_eid=Falta el ID de zona o bien es inválido +zones_ename=Falta el nombre mostrado o bien es inválido +zones_err=No he podido guardar la zona de red +zones_header=Detalles de la zona de red +zones_none=Todavía no se ha definido ninguna zona de red. +zones_return=la lista de zonas +zones_title=Zonas de Red diff --git a/shorewall6/lang/fr b/shorewall6/lang/fr new file mode 100644 index 000000000..088074f0d --- /dev/null +++ b/shorewall6/lang/fr @@ -0,0 +1,304 @@ +acl_nochange=Peut appliquer, arrêter et démarrer la configuration Shorewall ? +blacklist_0=Hôte ou réseau +blacklist_1=Protocole +blacklist_2=Portes +blacklist_add=Ajouter un nouveau hôte à blacklister. +blacklist_host=Hôte ou réseau +blacklist_proto=Protocole +check_cmd=Vérification de la configuration... +check_failed=..une erreur a été trouvé dans la configuration de votre firewall ! +check_ok=..la configuration de votre firewall semble correcte. +check_title=Vérification du Firewall +clear_err=La remise à zéro du firewall a échoué +comment_add=Ajouter un nouveau commentaire. +comment_create=Créer un commentaire +comment_edit=Éditer un commentaire +comment_enone=Aucun message n'a été saisi +comment_err=Échec de sauvegarde du commentaire +comment_msg=Message +edit_after=Après l'entrée $1 +edit_before=Avant l'entrée $1 +hosts_0=Zone +hosts_1=Interface +hosts_2=Adresse IP ou réseau +hosts_any=N'importe quel hôte +hosts_ip=Adresse ou réseau $1 +hosts_mac=Adresse MAC $1 +hosts_opts=Options du hôte +index_check=Vérifier le Firewall +index_checkdesc=Cliquez ce bouton pour tester les règles shorewall6 avant de les appliquer avec la commande "shorewall6 check". +index_clear=Remettre à zéro le Firewall +index_cleardesc=Cliquez ce bouton pour remettre à zéro Shorewall avec la commande "shorewall6 clear". Ceci donnera accès à toutes les machines sur le système. +index_dump=Afficher le dump +index_ecmd=The command $1 was not found on your system. Maybe it is not installed, or the module configuration is incorrect. +index_edir=The Shorewall configuration directory $1 was not found on your system. Maybe it is not installed, or the module configuration is incorrect. +index_refresh=Recharger la Configuration +index_refreshdesc=Cliquez ce bouton pour seulement activer les tables Blacklist et Traffic Shaping avec la commande "shorewall6 refresh". +index_restart=Appliquer la Configuration +index_restartdesc=Cliquez ce bouton pour activer la configuration actuelle de Shorewall avec la commande "shorewall6 restart". +index_return=liste des tables +index_start=Démarrer le Firewall +index_startdesc=Cliquez ce bouton pour démarrer Shorewall avec la configuration actuelle avec la commande "shorewall6 start". +index_status=Afficher le Status +index_statusdesc=Cliquez ce bouton pour visualiser les tables et règles Shorewall avec la commande "shorewall6 status". +index_stop=Arrêter le Firewall +index_stopdesc=Cliquez ce bouton pour arrêter Shorewall avec la commande "shorewall6 stop", ceci bloquera TOUS les accès excepté pour les machines définies dans la zone "Quand Arrêté". +index_title=Shorewall6 Firewall +index_version=Shorewall6 version $1 +interfaces_0=Interface +interfaces_1=Zone name +interfaces_2=Adresse de Broadcast +interfaces_3=Options +interfaces_add=Ajouter une nouvelle interface réseau +interfaces_create=Créer une Interface Réseau +interfaces_desc=Toutes les interfaces réseau que vous voulez gérer avec Shorewall doivent être listées ici et associée avec la zone à connecter. L'interface de loopback lo ne doit jamais être listée ici. +interfaces_detect=Automatique +interfaces_ebroad=Adresse de broadcast manquante ou invalide +interfaces_edit=Editer une Interface Réseau +interfaces_eiface=Nom d'interface manquante ou invalide +interfaces_err=Enregistrement des interface réseau impossible +interfaces_header=Détails de l'Interface Réseau +interfaces_none=Aucune interface réseau n'ont encore été défini. +interfaces_return=liste des interfaces +interfaces_title=Interfaces Réseau +list_any=Tous +list_auto=Automatique +list_delete=Supprimer la sélection +list_ecannot=Vous n'êtes pas autorisé à édition cette table de Shorewall +list_fw=Firewall +list_manual=Éditer le fichier manuellement +list_manualdesc=Cliquez sur ce bouton pour pouvoir éditer manuellement le fichier $1 de Shorewall dans lequel sont enregistrées les entrées ci-dessus. +list_move=Déplacer +list_none=Aucun +list_other=Autres.. +log_restart=Pare-feu redémarré +log_start=Pare-feu démarré +log_stop=Pare-feu arrêté +masq_0=Interface de sortie +masq_1=Réseau à masquerader +masq_2=SNAT address +masq_5=Option IPsec +masq_add=Ajouter une nouvelle règle de masquerading +masq_all=Tous les ports +masq_any=N'importe quel protocol +masq_create=Créer une Règle de Masquerading +masq_desc=Les entrées listées sur cette page définissent les translation d'adresses réseau en masquerade routés entre certains réseaux et une interface particulière.

Pour plus de détails voir le site Web Shorewall +masq_edit=Editer une Règle de Masquerading +masq_eipsec=Option IPsec manquants +masq_emnet=Adresse de sous-réseau manquante ou invalide +masq_emnete=Liste d'exception réseau vide +masq_enet=Interface de destination manquante ou invalide +masq_err=Enregistrement des règles de masquerading impossible +masq_esnat=Invalide adresse SNAT IP +masq_ex=Réseau sur $1 sauf $2 +masq_except=Sauf pour les réseaux +masq_header=Détails de la Règle de Masquerading +masq_iface=Réseau sur on $1 +masq_in=$2 sur $1 +masq_mode0=Adresse de sous-réseau +masq_mode1=Sous-réseau ou interface +masq_net=Seulement en destination +masq_none=Aucune règle de masquerading n'ont encore été défini. +masq_return=liste des masquerading +masq_title=Masquerading +nat_0=Adresse externe +nat_1=Adresse interne +nat_2=Adresse interne +nat_add=Ajouter une nouvelle entrée NAT Statique +nat_all=Actif pour toutes les machines ? +nat_create=Créer un NAT Statique +nat_desc=La liste de translation statique d'adresse dans cette table est utilisée pour définir une correspondance exacte entre une adresse IP externe et l'adresse RFC1918 d'une machine derrière le firewall. Le NAT Statique est souvent utilisé pour permettre une connection sur un serveur interne depuis l'extérieur.

Pour plus de détails voir le site Web Shorewall +nat_edit=Editer un NAT Statique +nat_eext=Invalide adresse IP externe +nat_eint=Invalide adresse IP interne +nat_err=Enregistrement des NAT Statiques impossible +nat_evirt=Invalide numéro d'interface virtuelle +nat_header=Détails du NAT Statique +nat_local=Actif pour le firewall ? +nat_none=Aucune entré NAT Statique n'a encore été défini. +nat_return=liste des NAT Statiques +nat_title=NAT Statique +nat_virt=virtuel +opts_dhcp=L'interface utilise DHCP +opts_ipsec=Zone IPsec +opts_proxyndp=Activer Proxy NDP +params_0=Paramètre +params_1=Valeure +params_2=Commentaire +params_add=Ajouter un nouveau paramètre personnalisé. +params_create=Créer un paramètre personnalisé +policy_0=Source zone +policy_1=Destination zone +policy_2=Règle +policy_3=Niveau Syslog +policy_4=Limite de Trafic +policy_add=Ajouter une nouvelle règle par défaut +policy_create=Créer une Règle par Défaut +policy_desc=Cette page vous permet de définir les règles par défaut à appliquer sur le trafic entre les différentes zones du firewall. Elles pourront être modifié pour certaines machines ou certains type de trafic sur la page "Règles Firewall".

Pour plus de détails voir le site Web Shorewall +policy_eburst=Burst Trafic manquant ou invalide +policy_edit=Editer la Règle par Défaut +policy_efw=<Firewall> ne peut être selectionné en source ET en destination +policy_elimit=Trafic Limite manquant ou invalide +policy_err=L'enregistrement de la règle par défaut a échoué +policy_header=Détails de la Règle par Défaut +policy_limit=Limit $1, Burst $2 +policy_nolog=Logging desactivé +policy_none=Acune règle par défaut n'a encore été défini. +policy_return=liste des règles +policy_title=Règles par Défaut +policy_ulog=Logue dans ULOG +providers_0=Nom +providers_1=Numéro +providers_3=Interface +providers_4=Passerelle +providers_auto=Détecter automatiquement +providers_egateway=Passerelle manquante ou invalide +providers_ename=Nom du fournisseur manquant ou invalide +providers_enumber=Numéro du fournisseur manquant ou invalide +providers_err=Échec lors de la sauvegarde du fournisseur de routage +providers_iface=Interface réseau +providers_name=Nom du fournisseur d'accès +providers_number=Numéro du fournisseur d'accès +providers_opts=Option additionnelles +proxyndp_0=Adresse à NDPer +proxyndp_1=Connecter sur l'interface +proxyndp_2=Interface externe +proxyndp_add=Ajouter une nouvelle adresse Proxy NDP +proxyndp_create=Créer une nouvelle adresse Proxy NDP +proxyndp_desc=Cette page vous permet de configurer votre système pour répondre aux requêtes sur des adresses IP autres que les siennes, ainsi il pourra faire suivre les paquets de ces adresses vers leur destinations réelles.

Pour plus de détails voir le site Web Shorewall +proxyndp_eaddr=Adresse Proxy NDP manquante ou invalide +proxyndp_edit=Editer une adresse Proxy NDP +proxyndp_err=Enregistrement des adresses Proxy NDP impossible +proxyndp_have=La route vers la machine existe ? +proxyndp_header=Détails de l'adresse Proxy NDP +proxyndp_none=Aucune adresse Proxy NDP n'a encore été défini. +proxyndp_return=liste des adresses Proxy NDP +proxyndp_title=Proxy NDP +refresh_err=Le raffraichissement de la configuration a échoué +restart_err=L'application de la configuration a échoué +routestopped_0=Interface +routestopped_1=Adresse accessible +routestopped_add=Ajouter une nouvelle adresse +routestopped_all=Toutes les adresses +routestopped_create=Créer une nouvelle adresse d'accès +routestopped_desc=Par défaut lorsque Shorewall est stoppé il bloque l'accès à TOUTES les machines sur le système. Cette page permet de définir les machines ou réseaux pouvant avoir accès après l'arrêt. +routestopped_eaddr=Pas d'adresse saisie +routestopped_edit=Editer une adresse d'accès +routestopped_err=Enregistrement des adresse d'accès impossible +routestopped_header=Détails de l'adresse d'accès +routestopped_list=Adresses et réseaux listés... +routestopped_none=Aucune adresse d'accès n'a encore été défini. +routestopped_return=liste des adresse d'accès +routestopped_title=Quand Arrêté +rules_0=Action +rules_1=Source +rules_1z=Source zone +rules_2=Destination +rules_2z=Destination zone ou port +rules_3=Protocole +rules_4=Source ports +rules_5=Destination ports +rules_add=Ajouter une nouvelle règle firewall +rules_addr=Seulement les machines avec les adresses +rules_create=Créer une règle Firewall +rules_desc=Cette table liste les exceptions apportées aux règles par défaut pour certains types de trafic, sources ou destinations. Les actions choisies seront appliquées aux paquets IP correspondant aux critères choisis à la place de ceux définis par défaut.

Pour plus de détails voir le site Web Shorewall +rules_dnat=Adresses de destination pour DNAT ou REDIRECT +rules_eaction=Aucune action n'est sélectionnée +rules_edinzone=Pas d'adresse machine donné pour la destination +rules_edit=Editer une règle Firewall +rules_ednat=L'adresse NAT de destination doit être une simple IP ou deux adresses séparées par un ":" +rules_ednat2=Une adresse de destination NAT ne peut seulement être donné pour du DNAT ou du REDIRECT. +rules_edother=Zone destination manquante ou invalide Missing +rules_edport=Pas de port destination donné, nom numéro ou plage de ports +rules_err=Enregistrement des règles firewall impossible +rules_esinzone=Pas d'adresse machine donné pour la source +rules_esother=Zone source manquante ou invalide +rules_esport=Pas de port source donné, nom, numéro ou plage de ports +rules_header=Détails de la règle Firewall +rules_hosts=Machine(s):
$2
de la zone $1 +rules_log=et logue dans le niveau syslog +rules_nolog=Ne pas loguer +rules_none=Aucune règle de firewall n'ont encore été défini. +rules_none2=Aucun +rules_norate=Aucune limite +rules_noset=Tous les utilisateurs +rules_ranges=Ports ou plage de Ports +rules_related=Related +rules_return=liste des règles firewall +rules_rport=Port $1 +rules_title=Règles Firewall +rules_zone=Zone $1 +shorewall_conf_0=Variable +shorewall_conf_1=Valeure +shorewall_conf_2=Commentaire +start_err=Le démarrage du firewall a échoué +status_title=Status du Firewall +stop_err=L'arrêt du firewall a échoué +tos_0=Source +tos_0z=Source zone +tos_1=Destination +tos_1z=Destination zone +tos_2=Protocole +tos_3=Source ports +tos_4=Destination ports +tos_5=Type of service +tos_6=test +tos_add=Ajouter un nouveau type de service +tos_create=Créer un nouveau Type de Service +tos_desc=Cette page défini les types de service IP (ToS) par type de trafic pouvant être utilisé pour augmenter ou diminuer la priorité des paquets.

Pour plus de détails voir le site Web Shorewall +tos_edit=Editer un Type de Service +tos_err=Enregistrement du type de service impossible +tos_header=Détails du Type de Service +tos_none=Aucun type de service n'ont encore été défini. +tos_return=liste des type de service +tos_title=Types de Services +tunnels_0=Type de VPN +tunnels_1=Zone pour l'interface +tunnels_2=Passerelle distante +tunnels_3=Zones de passerelles +tunnels_add=Ajouter un nouveau tunnel VPN +tunnels_create=Créer un tunnel VPN +tunnels_desc=Cette page liste les tunnels VPN passant au travers du firewall et devant être autorisés dans la configuration de Shorewall.

Pour plus de détails voir le site Web Shorewall +tunnels_edit=Editer un tunnel VPN +tunnels_eopenvpn=Le numéro de port du tunnel OpenVPN est invalide +tunnels_err=Enregistrement des tunnels VPN impossible +tunnels_generic=Générique +tunnels_generic_l=Générique, pour le protocole ... +tunnels_gnone=Aucune +tunnels_gre=GRE +tunnels_gsel=Zones listées +tunnels_header=Détails du tunnel VPN VPN +tunnels_ip=IP +tunnels_ipsec=IPsec +tunnels_ipsec:noah=IPsec (pas de AH) +tunnels_ipsecnat=IPsec avec NAT +tunnels_ipsecnat:noah=IPsec avec NAT (pas de AH) +tunnels_none=Aucun tunnel VPN à autoriser n'a encore été défini. +tunnels_openvpn=OpenVPN +tunnels_openvpn_l=OpenVPN, sur le port ... +tunnels_pptpclient=Client PPTP +tunnels_pptpserver=Serveur PPTP +tunnels_return=Liste des tunnels VPN +tunnels_sel=Passerelle IP +tunnels_title=Tunnels VPN +zones_0=Zone ID +zones_1=Nom affiché +zones_2=Description +zones_2new=Type de zone +zones_3new=Options de la zone +zones_6new=Commentaire +zones_add=Ajouter une nouvelle zone réseau. +zones_create=Créer une Zone Réseau +zones_desc=Les zones listées sur cette page représentent les différents réseaux connectables depuis votre système. Néanmoins, ces entrées n'ont aucun effet sur le firewall - elles définissent juste leurs noms et leurs descriptions. +zones_edesc=Description de zone manquante +zones_edit=Editer une Zone Réseau +zones_eid=Invalide ou Zone ID manquante +zones_ename=Nom affiché manquant ou invalide +zones_eopts=Les options de la zone sont invalides +zones_err=L'enregistrement de la zone réseau a échoué +zones_header=Détails de la Zone Réseau +zones_ipsec=IPsec +zones_ipv6=IPv6 +zones_none=Aucune zone réseau n'a encore été définie. +zones_return=liste des zones +zones_title=Zones Réseau diff --git a/shorewall6/lang/nl b/shorewall6/lang/nl new file mode 100644 index 000000000..d9812b8b3 --- /dev/null +++ b/shorewall6/lang/nl @@ -0,0 +1,431 @@ +__norefs=1 +acl_all=Alles +acl_files=Beschikbare Shorewall tabellen +acl_nochange=Mag Shorewall configuratie toevoegen, stoppen en starten? +acl_sel=Hieronder geselecteerd .. +blacklist_0=Host of netwerk +blacklist_1=Protocol +blacklist_2=Poorten +blacklist_add=Voeg een nieuwe host toe aan de zwarte lijst. +blacklist_any=Iedere +blacklist_create=Maak een Zwarte-lijst Host +blacklist_desc=Op deze pagina staat een lijst met host en services die worden geblokkeerd indien er data verkeer vanaf komt op via interface waarbij de zwarte-lijst optie gezet is. +blacklist_edit=Bewerk Zwarte-lijst Host +blacklist_ehost=Ontbrekende of ongeldige host IP adres of netwerk adres +blacklist_eipset=Ontbrekende IP set naam +blacklist_emac=Ontbrekende of ongeldig MAC adres +blacklist_eports=Ongeldig poort nummer of komma gescheiden lijst met poorten +blacklist_eports2=Poorten kunnen alleen worden gespecificeerd voor de TCP en UDP protocollen +blacklist_eproto=Ontbrekend of ongeldig protocol +blacklist_err=Mislukt om host zwarte lijst op te slaan +blacklist_header=Zwarte-lijst host details +blacklist_host=Host of netwerk +blacklist_none=Er is nog geen zwarte lijst host gedefinieerd. +blacklist_ports=Poort of poort-lijst +blacklist_proto=Protocol +blacklist_return=zwarte-lijst hosts +blacklist_title=Zwarte-lijst Hosts +check_cmd=Controleren van configuratie .. +check_failed=.. er is een fout gevonden in uw firewall configuratie! +check_ok=.. uw firewall configuratie lijkt in orde. +check_title=Controleer Firewall +clear_err=Mislukt om firewall op te schonen. +comment_add=Nieuw commentaar toe voegen. +comment_create=Maak Commentaar +comment_edit=Bewerk Commentaar +comment_enone=Geen bericht ingevuld +comment_err=Mislukt om commentaar op te slaan +comment_header=Tabel commentaar details +comment_msg=Bericht +delete_enone=Geen rijen geselecteerd +delete_err=Mislukt om rijen te verwijderen +dump_title=Firewall Dump +edit_after=Na ingang $1 +edit_before=Voor ingang $1 +hosts_0=Zone +hosts_1=Interface +hosts_2=IP adres of netwerk +hosts_add=Toevoegen van een nieuwe zone host +hosts_any=Elke host +hosts_create=Maak Zone Host +hosts_desc=Deze pagina geeft een lijst met hosts en netwerken die een onderdeel zijn van bepaalde zones. U hoeft normaal gesproken geen veranderingen te maken aan deze lijst. +hosts_edit=Bewerk Zone Host +hosts_enet=Ontbrekende of ongeldige host adres +hosts_err=Mislukt om zone host op te slaan +hosts_header=Zone host details +hosts_ip=Adres of netwerk $1 +hosts_ipset=IP set $1 +hosts_mac=MAC adres $1 +hosts_none=Er zijn nog geen zone hosts gedefinieerd. +hosts_opts=Host opties +hosts_return=zone hosts lijst +hosts_routestopped=Route zelfs wanneer de firewall is gestopt? +hosts_title=Zone Hosts +index_check=Controleer Firewall +index_checkdesc=Klik op deze knop om Shorewall uw firewall configuratie te laten valideren met de shorewall6 check opdracht. +index_clear=Opschonen Firewall +index_cleardesc=Klik op deze knop om de Shorewall firewall op te schonen met de shorewall6 clear opdracht. Hiermee krijg je toegang van alle hosts zonder beperkingen. +index_dump=Laat Dump Zien +index_dumpdesc=Klik op deze knop om een overzicht te krijgen van de Shorewall opsporings informatie die verkregen is met de shorewall6 dump opdracht. +index_ecmd=De opdracht $1 is niet gevonden op uw systeem. Misschien is het niet geinstalleerd, of de module configuratie is niet correct. +index_edir=De Shorewall configuratie directory $1 is niet gevonden op uw systeem. Misschien is het niet geinstalleerd, of de module configuratie is niet correct. +index_refresh=Ververs Configuratie +index_refreshdesc=Klik op deze knop om de zwarte-lijst en Verkeer Vorming tabellen te activeren met de shorewall6 ververs opdracht. +index_restart=Configuratie Toevoegen +index_restartdesc=Klik op deze knop om de huidige Shorewall configuratie te activeren met de shorewall6 herstart opdracht. +index_return=Lijst met tabellen +index_start=Start Firewall +index_startdesc=Klik op deze knop om Shorewall te starten met de huidige configuratie met de shorewall6 start opdracht. +index_status=Laat Status Zien +index_statusdesc=Klik op deze knop om Shorewall's tabellen en regels te bekijken met de shorewall6 status opdracht. +index_stop=Stop Firewall +index_stopdesc=Klik op deze knop om Shorewall uit te schakelen met de shorewall6 stop opdracht. Dit zal de toegang van alle host blokkeren, behalve van die in de -Wanneer Gestopt Tabel. +index_title=Shorewall6 Firewall +index_version=Shorewall6 versie $1 +interfaces_0=Interface +interfaces_1=Zone naam +interfaces_2=Broadcast adres +interfaces_3=Opties +interfaces_add=Nieuwe netwerk interface toevoegen. +interfaces_create=Maak Netwerk Interface +interfaces_desc=Alle netwerk interfaces op uw systeem waarvan u wilt dat die beheert worden door Shorewall moeten in de lijst staan op deze pagina, en zijn geassocieerd met de zone waarmee die verbonden is. De loopback interface lo mag nooit in deze lijst staan. +interfaces_detect=Automatisch +interfaces_ebroad=Ontbrekend of ongeldig broadcast adres +interfaces_edit=Bewerk Netwerk Interface +interfaces_eiface=Ontbrekende of ongeldige interface naam +interfaces_err=Mislukt om netwerk interface op te slaan +interfaces_header=Netwerk interface details +interfaces_none=Er zijn nog geen netwerk interfaces gedefinieerd. +interfaces_return=interfaces lijst +interfaces_title=Netwerk Interfaces +list_add=Toevoegen +list_any=Iedere +list_auto=Automatisch +list_delete=Verwijder Geselecteerde +list_ecannot=U bent niet bevoegd deze Shorewall tabel te bewerken. +list_fw=Firewall +list_manual=Bewerk Handmatig File +list_manualdesc=Klik op deze knop om handmatig de Shorewall file $1 te bewerken, waarin de ingang hierboven zijn opgeslagen. +list_move=Verplaats +list_none=Geen +list_other=Andere .. +log_clear=Opgeschoonde firewall +log_create_comment=Toegevoegd commentaar aan de $1 tabel +log_create_table=Toegevoegde ingang aan de $1 tabel +log_delete_comment=Verwijdert commentaar van tabel $1 +log_delete_table=Verwijderde ingang van tabel $1 +log_deletes_table=Verwijderde ingangen van tabel $1 +log_down_table=Neerwaarts verplaatste ingang in tabel $1 +log_manual_table=Handmatig bewerkte tabellen file $1 +log_modify_comment=Gemodificeerd commentaar in de tabel $1 +log_modify_table=Gemodificeerde ingang in de tabel $1 +log_refresh=Ververste firewall +log_restart=Opnieuw gestarte firewall +log_start=Gestarten firewall +log_stop=Gestopten firewall +log_up_table=Naar boven verplaatsten ingang in tabel $1 +manual_desc=Dit formulier kan gebruikt worden om handmatig de Shorewall file $1 te bewerken. Wees voorzichtig omdat er geen syntax controle zal worden uitgevoerd. +manual_edata=Geen tabellen file inhoud ingevuld. +manual_efile=Ongeldige tabel naam! +manual_err=Mislukt om tabel file op te slaan +manual_reset=Ongedaan maken +masq_0=Uitgaande interface +masq_1=Netwerk naar maskerade +masq_2=SNAT adres +masq_3=Beperk tot protocol +masq_4=Beperk tot poorten +masq_5=IPsec opties +masq_add=Toevoegen van een nieuwe maskerade regel. +masq_all=Alle poorten +masq_any=Elk protocol +masq_create=Maak maskerade regel +masq_desc=Ingangen op deze pagina bepalen netwerk adres vertalingen voor verkeer wat gerouteerd word tussen netwerk en bepaalde interfaces. +masq_edit=Bewerk Maskerade Regel +masq_eipsec=Ontbrekende IPsec opties +masq_emnet=Ontbrekende of ongeldige maskerade subnet adres +masq_emnete=Leeg maken van de uitzonderingen netwerken lijst +masq_enet=Ontbrekende of ongeldige uitgaande interface bestemming +masq_eports=Ontbrekende of ongeldige komma-gescheiden lijst met poorten +masq_err=Mislukt om maskerade regel op te slaan +masq_esnat=Ongeldig SNAT IP adres +masq_ex=Netwerk op $1 behalve $2 +masq_except=Behalve voor netwerken +masq_header=Maskerade regel details +masq_iface=Netwerk op $1 +masq_in=$2 op $1 +masq_mode0=Subnet adres +masq_mode1=Subnet op interface +masq_net=Alleen voor bestemming +masq_none=Er zijn nog geen maskerade regels gedefinieerd. +masq_return=maskerade lijst +masq_title=Maskerade +nat_0=Extern adres +nat_1=Externe interface +nat_2=Intern adres +nat_add=Voeg een nieuwe statische NAT ingang toe. +nat_all=Actief voor alle hosts? +nat_create=Maak Statische NAT +nat_desc=De statische netwerk adres vertaal ingangen in deze tabel kunnen worden gebruikt om een 1-op-1 setup te maken tussen een extern adres op uw firewall en een RFC1918 adres van een machine achter uw firewall. Statische NAT word vaak gebruikt om verbindingen toe te staan naar een interne server van buiten uw netwerk. +nat_edit=Bewerk Statische NAT +nat_eext=Ongeldig extern IP adres +nat_eint=Ongeldig intern IP adres +nat_err=Mislukt om statische NAT ingang op te slaan +nat_evirt=Ongeldig virtueel interface getal +nat_header=Statische NAT ingang details +nat_local=Actief voor firewall systeem? +nat_none=Er zijn nog geen statische NAT ingangen gedefinieerd. +nat_return=statische NAT lijst +nat_title=Statische NAT +nat_virt=virtueel +opts_ndp_filter=Alleen reageren op NDP aanvragen voor interface IP +opts_blacklist=Pakketten van de zwarte lijst weigeren +opts_critical=Altijd verkeer toestaan tussen de firewall +opts_dest=Verkeer naar host van iedere bron toestaan +opts_detectnets=Taylor zone om in te voegen bij de routed hosts +opts_dhcp=Interface gebruikt DHCP +opts_ipsec=IPsec zone +opts_logmartians=Log pakketten met onmogelijke bronnen +opts_maclist=Vergelijken met de MAC lijst? +opts_norfc1918=Weiger prive IP pakketten +opts_nosmurfs=Controleer op broadcast bron pakketten +opts_proxyndp=Proxy NDP aanzetten +opts_routeback=Accepteer verkeer terug naar de host +opts_routefilter=Aanzetten van anti-spoofing route filteren +opts_source=Van host naar iedere bestemming toestaan +opts_tcpflags=Controleer op illegale TCP flags +opts_upnp=Her-mappen van pakketten via UPNP +params_0=Parameter +params_1=Waarde +params_2=Commentaar +params_add=Nieuwe handmatige parameter toevoegen. +params_create=Maak handmatige parameter +params_desc=Op deze pagina kunt u Shorewall's handmatige parameters configureren. LET OP: De volgorde van de parameters op deze plek veranderen word niet aanbevolen indien u de relatieve positie van de commentaren in de configuratie file wilt behouden. +params_edit=Bewerk handmatige parameter +params_err=Mislukt om handmatige parameter op te slaan +params_header=Handmatige parameter details +params_none=Geen handmatige parameter gevonden. +params_return=Handmatige parameter lijst +params_title=Handmatige parameter +params_varname=Ongeldige parameter naam (moet een geldige shell variabele naam zijn) +policy_0=Bron zone +policy_1=Bestemming zone +policy_2=Beleid +policy_3=Systeem log niveau +policy_4=Verkeer limiet +policy_add=Nieuw standaard beleid toevoegen. +policy_create=Maak Standaard Beleid +policy_desc=Op deze pagina kunt u de standaard acties voor verkeer tussen verschillende firewall zones configureren. +policy_eburst=Ontbrekend of ongeldig boost getal +policy_edit=Bewerk Standaard Beleid +policy_efw=<Firewall> kan worden geselecteerd voor en de bron en de bestemmings zones +policy_elimit=Ontbrekende of ongeldig limiet getal voor dataverkeer +policy_err=Mislukt om standaard beleid op te slaan +policy_header=Standaard beleid details +policy_limit=Limiet $1, Boost $2 +policy_nolog=Loggen is uitgeschakeld +policy_none=Er is nog geen standaard beleid gedefinieerd. +policy_return=beleid's lijst +policy_title=Standaard Beleid +policy_ulog=Log naar ULOG +providers_0=Naam +providers_1=Nummer +providers_2=Markeer +providers_3=Interface +providers_4=Gateway +providers_add=Een nieuwe provider route toevoegen +providers_auto=Automatisch detecteren +providers_balance=Load-balance verkeer +providers_copy=Kopieer routes door interfaces +providers_create=Maak Router Provider +providers_desc=Op deze pagina zijn extra routing tabellen gedefinieerd. Deze zijn nodig indien u verbindingen heeft naar meerdere ISP of meerdere verbindingen naar dezelfde ISP, of u Suid laat werken als een transparante proxy op een host anders dan de firewall. +providers_dup=Dupliceer provider +providers_edit=Bewerk Router Provider +providers_edup=Ontbrekende provider om te dupliceren +providers_egateway=Ontbrekende of ongeldige gateway +providers_emark=Ontbrekende of ongeldige provider markeer nummer +providers_ename=Ontbrekende of ongeldige provider naam +providers_enumber=Ontbrekende of ongeldige provider nummer +providers_err=Mislukt om router provider op te slaan +providers_gateway=Gateway router +providers_header=Extra router provider details +providers_iface=Netwerk interface +providers_loose=Verkeer van firewall toestaan +providers_main=Hoofd tabel +providers_mark=Markeer nummer +providers_name=Provider naam +providers_none=Er zijn nog geen router providers gedefinieerd. +providers_number=Provider nummer +providers_opts=Extra opties +providers_title=Extra Router Providers +providers_track=Opsporen verbindingen +proxyndp_0=Adres naar NDP +proxyndp_1=Verbonden met interface +proxyndp_2=Externe interface +proxyndp_3=Blijvend? +proxyndp_add=Toevoegen van een nieuwe proxy NDP adres +proxyndp_create=Maak Proxy NDP Adres +proxyndp_desc=Met deze pagina kunt u uw systeem configureren dat deze antwoord geeft op NDP aanvragen voor IP adressen anders dan voor zichzelf, zodat het de pakketten kan doorsturen naar hun echte bestemming. +proxyndp_eaddr=Ontbrekend of ongeldig adres naar NDP +proxyndp_edit=Bewerk Proxy NDP Adres +proxyndp_err=Mislukt om proxy NDP op te slaan +proxyndp_have=Route naar host bestaat? +proxyndp_header=Proxy NDP details +proxyndp_none=Er zijn nog geen NDP adressen gedefinieerd. +proxyndp_pers=Behoud de route zelfs als de firewall gestopt is? +proxyndp_return=proxy NDP adressen lijst +proxyndp_title=Proxy NDP +refresh_err=Mislukt om de configuratie op te slaan +restart_err=Mislukt om de configuratie toe te voegen +routestopped_0=Interface +routestopped_1=Toegankelijke adressen +routestopped_2=Route opties +routestopped_add=Nieuw gestopt adres toevoegen. +routestopped_all=Alle adressen +routestopped_create=Maak Gestopt Adres +routestopped_desc=Standaard zal de Shorewall firewall wanneer die is gestopt de toegang weigeren van alle hosts. Met deze pagina kunt u configureren welke hosts of netwerken toegankelijk blijven. +routestopped_eaddr=Geen adressen ingevuld +routestopped_edit=Bewerk Gestopt Adres +routestopped_err=Mislukt om gestopt adres toe te voegen +routestopped_header=Gestopte adres details +routestopped_list=Lijst met adressen en netwerken .. +routestopped_none=Er zijn nog geen adressen die toegankelijk zijn wanneer er is gestopt gedefinieerd. +routestopped_return=gestopte adres lijst +routestopped_title=Wanneer Gestopt +rules_0=Actie +rules_1=Bron +rules_1z=Bron zone +rules_2=Bestemming +rules_2z=Bestemming zone of poort +rules_3=Protocol +rules_4=Bron poorten +rules_5=Bestemming poorten +rules_6=Geef limiet +rules_7=Gebruiker zet +rules_add=Toevoegen van een nieuwe firewall regel. +rules_addr=Alleen hosts in zone met de adressen +rules_create=Maak Firewall Regel +rules_desc=Deze tabel is een lijst met uitzonderingen voor het standaard beleid voor bepaalde soorten verkeer, bronnen of bestemmingen. De gekozen actie zal worden toegevoegd aan de overeenkomende pakketten met deze bepalingen in plaats van de standaarden. +rules_dnat=Originele bestemming adres voor DNAT of REDIRECT +rules_dnat_dest=Voor DNAT of REDIRECT, vult u hier de nieuwe bestemming adres of poort in. +rules_dnat_port=Voor DNAT of REDIRECT, vult u hier de originele bestemmings in. +rules_eaction=Geen actie geselecteerd +rules_edinzone=Geen host adressen ingevuld voor bestemming +rules_edit=Bewerk Firewall Regel +rules_ednat=Originele bestemming adres moet een enkel IP adres zijn, twee adressen moeten gescheiden worden met een : ,en een uitsluiting lijst start met een ! +rules_ednat2=Een origineel bestemmings adres kan alleen worden ingevuld voor de DNAT en REDIRECT acties +rules_edother=Ontbrekende of ongeldige bestemming zone +rules_edport=Geen bestemmings poort namen, nummers of ranges ingevuld +rules_emacro=Ontbrekende of ongeldige macro parameter +rules_err=Mislukt om firewall regel op te slaan +rules_esinzone=Geen host adressen ingevuld voor bron +rules_esother=Ontbrekende of ongeldige bron zone +rules_esport=Geen bron poort namen, nummers of ranges ingevuld +rules_header=Firewall regel details +rules_hosts=Host $2 in zone $1 +rules_log=en loggen naar systeem log niveau +rules_macro=Macro actie parameter +rules_nolog=Niet loggen +rules_none=Er zijn nog geen firewall regels gedefinieerd. +rules_none2=Geen +rules_norate=Geen limiet +rules_noset=Alle gebruikers +rules_ranges=Poorten of ranges +rules_rate=Waarde limiet expressie +rules_related=Gerelateerd +rules_return=firewall regel lijst +rules_rport=Poort $1 +rules_set=Regel toevoegen aan gebruiker set +rules_title=Firewall Regels +rules_zone=Zone $1 +shorewall_conf_0=Variabel +shorewall_conf_1=Waarde +shorewall_conf_2=Commentaar +shorewall_conf_add=Toevoegen van een nieuwe configuratie variabel. +shorewall_conf_create=Maak configuratie variabel. +shorewall_conf_desc=Met deze pagina kunt u de globale configuratie variabelen configureren. LET OP: De volgorde van de variabelen hier veranderen is niet aanbevolen indien u de relatieve positie van de commentaren in de configuratie file hetzelfde wilt houden. +shorewall_conf_edit=Bewerk configuratie variabel +shorewall_conf_err=Mislukt om configuratie variabel op te slaan +shorewall_conf_header=Configuratie variabel details +shorewall_conf_none=Geen Shorewall configuratie gevonden. +shorewall_conf_return=Configuratie variabel lijst +shorewall_conf_title=Hoofd configuratie file +shorewall_conf_varname=Ongeldige variabele naam (moet een geldige shell variabele naam zijn) +start_err=Mislukt om firewall te starten +status_title=Firewall Status +stop_err=Mislukt om firewall te stoppen +tos_0=Bron +tos_0z=Bron zone +tos_1=Bestemming +tos_1z=Bestemming zone +tos_2=Protocol +tos_3=Bron poorten +tos_4=Bestemming poorten +tos_5=Soort service +tos_6=Test +tos_add=Toevoegen van een nieuw soort service +tos_create=Maak Soort Service +tos_desc=Deze pagina definieert IP service soorten voor specifieke soorten verkeer, waarmee u de prioriteit kan verhogen of verlagen. +tos_edit=Bewerk Soort Service +tos_err=Mislukt om soort service op te slaan +tos_header=Soort service details +tos_none=Er is nog geen soort service gedefinieerd. +tos_return=soort service lijst +tos_title=Soorten Service +tunnels_0=VPN Type +tunnels_1=Zone voor interface +tunnels_2=Remote gateway +tunnels_3=Gateway zones +tunnels_add=Nieuwe VPN Tunnel toevoegen. +tunnels_create=Maak VPN Tunnel +tunnels_desc=Deze pagina is een lijst met VPN tunnels die door de firewall gaan, en moeten dus worden toegestaan door Shorewall. +tunnels_edit=Bewerk VPN Tunnel +tunnels_egeneric=Ontbrekend protocol of protocol:poort voor generieke tunnel +tunnels_eopenvpn=Ongeldig poort nummer voor OpenVPN tunnel +tunnels_err=Mislukt om VPN tunnel op te slaan +tunnels_generic=Generiek +tunnels_generic_l=Generiek, voor protocol +tunnels_gnone=Geen +tunnels_gre=GRE +tunnels_gsel=Zones in lijst +tunnels_header=VPN tunnel details +tunnels_ip=IP +tunnels_ipsec=IPsec +tunnels_ipsec:noah=IPsec (geen AH) +tunnels_ipsecnat=IPsec met NAT +tunnels_ipsecnat:noah=IPsec met NAT (geen AH) +tunnels_none=Er zijn nog geen toegestane VPN tunnels gedefinieerd. +tunnels_openvpn=OpenVPN +tunnels_openvpn_l=OpenVPN, op poort.. +tunnels_pptpclient=PPTP client +tunnels_pptpserver=PPTP server +tunnels_return=VPN tunnel lijst +tunnels_sel=Gateway IP +tunnels_title=VPN Tunnels +zones_0=Zone ID +zones_1=Getoonde naam +zones_1new=Hoofd zone +zones_2=Omschrijving +zones_2new=Zone type +zones_3new=Zone opties +zones_4new=Inkomende opties +zones_5new=Uitgaande opties +zones_6new=Commentaar +zones_add=Toevoegen van een nieuwe netwerk zone +zones_create=Maak Netwerk Zone +zones_desc=De zones in de lijst op deze pagina zijn presenteren verschillende netwerken die bereikbaar zijn van uw systeem. Echter de ingangen hier hebben geen enkel effect op de firewall - inplaats hiervan definieren zij juist de zone namen en omschrijvingen. +zones_edesc=Ontbrekende zone omschrijving +zones_edit=Bewerk Netwerk Zone +zones_efwid=De zone IDs $FW en fw zijn gereserveerd voor de firewall +zones_eid=Ontbrekende of ongeldige zone ID +zones_ename=Ontbrekende of ongeldige naam om te tonen +zones_eopts=Ongeldige zone opties +zones_eopts_in=Ongeldige zone inkomende opties +zones_eopts_out=Ongeldige zone uitgaande opties +zones_err=Mislukt om netwerk zone op te slaan +zones_firewall=Firewall systeem +zones_header=Netwerk zone details +zones_ipsec=IPsec +zones_ipv6=IPv6 +zones_none=Er zijn nog geen netwerk zones gedefinieerd. +zones_return=zones lijst +zones_title=Netwerk Zones diff --git a/shorewall6/lang/tr b/shorewall6/lang/tr new file mode 100644 index 000000000..dab6f5236 --- /dev/null +++ b/shorewall6/lang/tr @@ -0,0 +1,316 @@ +index_title=Shorewall Firewall +index_ecmd=$1 komutu sistemde bulunamad. Bu komut sistemde ykl olmayabilir ya da modl konfigurasyonu hatal olabilir. +index_edir=Shorewall konfigurasyon dizini olan $1 dizini sistemde bulunamad. Bu dizin sistemde ykl olmayabilir ya da modl konfigurasyonu hatal olabilir. +index_version=Shorewall Versiyon $1 +index_return=Dosya Listesi +index_restart=Deiiklikleri Uygula +index_restartdesc=Bu butona tklayarak yaptnz deiiklikleri aktif hale getirebilirsiniz. Sistem otomatik olarak shorewall6 restart komutunu iletecektir. +index_refresh=Deiiklikleri Uygula +index_refreshdesc=Bu butona tklayarak sadece Kara Liste ve Trafik Snflandrma dosyalarnda yaptnz deiiklikleri aktif hale getirebilirsiniz. Sistem otomatik olarak shorewall6 refresh komutunu iletecektir . +index_start=Firewallu Balat +index_startdesc=Bu butona tklayarak Shorewall' balatabilirsiniz. Sistem otomatik olarak shorewall6 start komutunu iletecektir. +index_clear=Kurallar Sil +index_cleardesc=Bu butona tklayarak Firewall zerinde tanmlam olduunuz btn kurallar silebilirsiniz.Sistem otomatik olarak shorewall6 clear komutunu iletecektir. Uyar! Bu komut verildikten sonra yapm olduunuz btn kstlamalar ortadan kalkacaktr. +index_stop=Firewallu Durdur +index_stopdesc=Bu butona tklayarak Shorewall' stop edebilirsiniz. Sistem otomatik olarak shorewall6 stop komutunu iletecektir. Uyar! bu komut verildikten sonra btn eriimler iptal edilecektir. Sadece "Stop Durumu" dosyasnda izin verdiiniz adreslere eriim devam edecektir. +index_status=Firewall Durumu +index_statusdesc=Bu butona tklayarak Shorewall dosyalarn ve uygulam olduunuz kurallar grebilirsiniz. Sistem otomatik olarak shorewall6 status komutunu iletecektir. +index_check=Firewall Kontrol +index_checkdesc=Bu butona tklayarak yapm olduunuz konfigurasyonun hatal olup olmadn grebilirsiniz. Sistem otomatik olarak shorewall6 check komutunu iletecektir. + +list_move=Ta +list_add=Ekle +list_auto=Otomatik +list_none=Yok +list_any=btn +list_fw=Firewall +list_other=Dier.. +list_manual=Dosyay manual olarak grntle +list_manualdesc=Bu butona tklayarak yukaradki verileri ieren $1 dosyasn grntleyebilirsiniz. +list_ecannot=Bu Shorewall dosyasn grntlemeye iznininiz yoktur. + +restart_err=Kongigurasyon Uygulanamad +refresh_err=Konfigurasyon Uygulanamad +start_err=Firewall Balatlamad +clear_err=Kurallar Silinemedi +stop_err=Firewall Kapatlamad +status_title=Firewall Durumu +check_title=Firewall Kontrol +check_ok=.. firewall konfigurasyonunda herhangi bir hata yoktur. +check_failed=.. firewall konfigurasyonunda bir hata bulunmutur. +check_cmd=Firewall kontrol ediliyor .. + +zones_title=A Blgeleri +zones_desc=Bu listede farkl a blgeleri oluturabilirsiniz. Oluturacanz blgelerin firewall kurallar zerinde bir etkisi olmayacaktr. +zones_add=Yeni Blge Ekle +zones_none=Tanml herhangi bir blge bulunmamaktadr. +zones_0=Blge Kimlii +zones_1=Blge smi +zones_2=Aklama +zones_return=Blge Listesi +zones_edit=Blgeyi Grntle/Deitir +zones_create=Yeni Blge Olutur +zones_header=A Blge Detaylar +zones_err=A blgesi kaydedilemedi +zones_eid=Hatal ya da eksik blge kimlii +zones_efwid=$FW ve fw blge kimlikleri firewall iin rezerve edilmitir,kullanlamaz. +zones_ename=Hatal ya da eksik blge ismi +zones_edesc=Hatal ya da eksik blge aklamas + +policy_title=Standart Denetimler +policy_desc=Standart Denetimler sayfasnda farkl firewall blgelerinin kendi aralarndaki kurallar belirliyebilirsiniz. rnek olarak DMZ blgesinden net blgesine btn portlarn almasn istiyorsunuz. Bu durumda bu kurallar "Firewall Kurallar" sayfasnda belirtmek yerine, bu blgeler iin standart denetimler uygulayabilirsiniz. +policy_add=Yeni Standart Denetim Ekle +policy_none=Tanml herhangi bir standart denetim bulunmamaktadr. +policy_0=Kaynak Blge +policy_1=Hedef Blge +policy_2=Denetim +policy_3=Syslog Seviyesi +policy_4=Trafik Limiti +policy_limit=Limit $1, Burst $2 +policy_return=Denetim Listesi +policy_edit=Standart Denetimi Grntle/Deitir +policy_create=Yeni Standart Denetim Olutur +policy_header=Standart Denetim Detaylar +policy_err=Standart Denetim kaydedilemedi +policy_nolog=Logging devre d brakld +policy_ulog=ULOG 'a loglar gnderiliyor +policy_efw=Hem kaynak hem de hedef blgeleri iin <Firewall> seilebilir. +policy_elimit=Hatal ya da eksik Trafik Limiti Numaras +policy_eburst=Hatal ya da eksik Trafik Burst Numaras + +rules_title=Firewall Kurallar +rules_desc=Bu sayfada anz iin belirlemi olduunuz Firewall kurallarn uyugulayabilirsiniz. Firewall kurallar yaplandrrken Standart Denetimlerde uygulam olduunuz kurallarn aksi bir kural belirtirseniz Standart Denetimlerde tanml olan kural kullanlacaktr. +rules_add=Yeni Firewall Kural Ekle +rules_none=Tanml herhangi bir firewall kural bulunmamaktadr. +rules_0=Eylem +rules_1=Kaynak +rules_1z=Kaynak Blge +rules_2=Hedef +rules_2z=Hedef Blge veya Port +rules_3=Protokol +rules_4=Kaynak Portlar +rules_5=Hedef Portlar +rules_6=Rate Limiti +rules_7=Kullanc Ayarlar +rules_hosts=$1 blgesindeki $2 host +rules_zone=$1 Blgesi +rules_rport=$1 Portu +rules_related=lgili +rules_return=Firewall Kural Listesi +rules_edit=Firewall Kuraln Grntle/Deitir +rules_create=Yeni Firewall Kural Olutur +rules_header=Firewall Kural Detaylar +rules_err=Firewall kural kaydedilemedi +rules_log=log seviyesi +rules_nolog=pasif +rules_addr=Sadece blgede adresi tanmlanan hostlar +rules_ranges=Port veya port aral +rules_dnat=DNAT veya REDIRECT iin orjinal hedef adresi +rules_dnat_dest=DNAT veya REDIRECT iin, yeni hedef adresini veya port numarasn giriniz. +rules_dnat_port=DNAT veya REDIRECT iin, ofjinal hedef port numarasn giriniz. +rules_esother=Hatal ya da eksik kaynak blgesi +rules_edother=Hatal ya da eksik hedef blgesi +rules_esinzone=Kaynak iin herhangi bir host adresi tanmlanmad +rules_edinzone=Hedef iin herhangi bir host adresi tanmlanmad +rules_esport=Kaynak port ad, numaras ya da port aral tanmlanmad +rules_edport=Hedef port ad, numaras ya da port aral tanmlanmad +rules_ednat=Orjinal hedef adresi tek bir IP addresi olmak zorunda. ki farkl adres tanm iin ip adreslerini " : " iareti ile ayrmanz gerekiyor. +rules_ednat2=Orjinal hedef adresi sadece DNAT ve REDIRECT eylemleri iin tanmlanabilir. +rules_rate=Rate Limit +rules_norate=Limit yok +rules_set=Kullanclar in Kurallar Ekle +rules_noset=Btn Kullanclar + +tos_title=Servis Tr (ToS) +tos_desc=Bu sayfada a trafiiniz iin gecikme, salamlk vb. gibi eitli servis trleri tantabilirsiniz. +tos_add=Yeni Servis Tr Ekle +tos_none=Tanml herhangi bir servis tr bulunmamaktadr. +tos_0=Kaynak +tos_0z=Kaynak Blge +tos_1=Hedef +tos_1z=Hedef Blge +tos_2=Protokol +tos_3=Kaynak Portlar +tos_4=Hedef Portlar +tos_5=Servis Tr +tos_return=Servis Tr Listesi +tos_edit=Servis Trn Grntle/Deitir +tos_create=Yeni Servis Tr Olutur +tos_header=Servis Tr Detaylar +tos_err=Servis tr kaydedilemedi. + +interfaces_title=A Arayzleri +interfaces_desc=Sisteminizde konfigure etmek istediiniz btn arayzleri bu blgede tantmanz gerekmektedir. Her tantlan yeni arayz " A Blgeleri" sayfasnda tantm olduunuz blgelerle ilikilendirilmek zorundadr. loopback arayz olan lo arayznn bu blgede kullanlmamas gerekmektedir. +interfaces_add=Yeni Bir Arayz Ekle +interfaces_none=Tanml herhangi bir a arayz bulunmamaktadr. +interfaces_0=Arayz +interfaces_1=Blge smi +interfaces_2=Broadcast Adresi +interfaces_3=Seenekler +interfaces_detect=Otomatik +interfaces_return=Arayz Listesi +interfaces_edit=A Arayzn Grntle/Deitir +interfaces_create=Yeni Bir Arayz Olutur +interfaces_header=Arayz Detaylar +interfaces_err=Arayz kaydedilemedi. +interfaces_eiface=Hatal ya da eksik arayz ismi +interfaces_ebroad=Hatal ya da eksik broadcast adresi + +masq_title=Maskeleme +masq_desc=Maskeleme ileminde bir arayz dier bir arayz zerinden, ya da bir a dier bir a zerinden maskeleyerek eitli NAT seenekleri oluturabilirsiniz. rnek olarak firewall unuzda tanml iki adet ethernet arayz var: bunlardan birincisi olan eth0'a 212.156.x.x gibi real bir ip adresi atanm durumda, ikinci arayz olan eth1'e ise 192.168.0.1 gibi bir local ip adresi atanm ve kullanc bilgisayarlarnn a geidi doal olarak 192.168.0.1 olacaktr ve kullanc bilgisayarlarnn internete kabilmeleri iin bir NAT ilemine ihtiyalar olacaktr. Bu durumda eth1 arayzn eth0 zerinden maskeleyerek lokal kullanclar internet ortamnda tanml duruma getirebilirsiniz. +masq_add=Yeni Maskeleme Kural Ekle +masq_none=Tanml herhangi bir maskeleme kural bulunmamaktadr. +masq_0=k Arayz +masq_1=Maskelenecek A +masq_2=SNAT Adresi +masq_in=$2 zerine $1 +masq_ex=A $1 hari $2 +masq_iface=A $1 +masq_return=Maskeleme Listesi +masq_edit=Maskeleme Kuraln Grntle/Deitir +masq_create=Yeni Maskeleme Kural Olutur +masq_header=Maskeleme Kural Detaylar +masq_err=Maskeleme Kural kaydedilemedi +masq_net=Sadece hedef iin +masq_mode0=Subnet Adresi +masq_mode1=Arayz Subneti +masq_except=Hari Alar +masq_enet=Hatal ya da eksik k arayz hedefi +masq_emnet=Hatal ya da eksik subnet adresi +masq_emnete=Hari Alar Listesi Bo +masq_esnat=Hatal SNAT IP Adresi + +nat_title=Statik NAT +nat_desc=Maskeleme Sayfas' ndaki NAT ilemlerinden farkl olarak, statik nat zelliini birebir uygulamalar iin kullanabilirsiniz. Bu uygulama genellikle i anzda yer alan lokal ip adresine sahip bilgisayar veya serverlara internet ortamndan eriim iim kullanlabilir. +nat_add=Yeni Statik NAT Kural Ekle +nat_none=Tanml herhangi bir statik nat kural bulunmamaktadr. +nat_0=D Adres +nat_1=D Arayz +nat_2= Adres +nat_virt=Sanal +nat_return=Statik NAT Listesi +nat_edit=Statik NAT kuraln Grntle/Deitir +nat_create=Yeni Statik NAT Kural Olutur +nat_header=Statik NAT Kural Detaylar +nat_err=Statik NAT Kural kaydedilemedi +nat_all=Btn Hostlar in Aktif Hale Getir? +nat_local=Firewall Sistemi in Aktif Hale Getir? +nat_eext=Hatal D IP Adresi +nat_eint=Hatal IP Adresi +nat_evirt=Hatal Sanal Arayz Numaras + +proxyndp_title=Proxy NDP +proxyndp_desc=This page allows you to configure your system to answer NDP requests for IP addresses other than its own, so that it can forward packets to those addresses to their real destinations. +proxyndp_add=Yeni Proxy NDP Adresi Ekle +proxyndp_none=Tanml herhangi bir proxy NDP adresi bulunmamaktadr. +proxyndp_0=NDP adresi +proxyndp_1=Bal bulunan arayz +proxyndp_2=D Arayz +proxyndp_3=Srekli +proxyndp_return=Proxy NDP Adresi Listesi +proxyndp_edit=Proxy NDP Adresini Grntle/Deitir +proxyndp_create=Yeni Proxy NDP Adresi Olutur +proxyndp_header=Proxy NDP Detaylar +proxyndp_err=Proxy NDP kaydedilemedi +proxyndp_have=Var olan hosta ynlendirme yaplsn m? +proxyndp_eaddr=Hatal ya da eksik NDP Adresi +proxyndp_pers=Firewall kapatlrsa ynlendirme ilemi durdurulsun mu? + +routestopped_title=Stop Durumu +routestopped_desc=Standart olarak Firewall ilemi durdurulduunda Shorewall btn eriimleri kapatr. Bu sayfada firewall kapal iken aktif etmek istediiniz eriimleri konfigure edebilirsiniz. Bu konfigurasyon kritk uygulamalarnzn herhangi bir nedenden dolay firewall kapansa bile almasn salayacaktr. +routestopped_add=Yeni Stop Durumu Kural Ekle +routestopped_none=Tanml herhangi bir stop durumu kural bulunmamaktadr. +routestopped_0=Arayz +routestopped_1=Eriimine Devam Edilecek Adresler +routestopped_return=Adresler +routestopped_edit=Adresleri Grntle/Deitir +routestopped_create=Yeni Stop Durumu Kural Olutur +routestopped_header=Adres Detaylar +routestopped_err=Adres kaydedilemedi +routestopped_eaddr=Adres girilmedi +routestopped_all=Btn Adresler +routestopped_list=Listelenen Adresler ve Alar .. + +tunnels_title=VPN Tnelleri +tunnels_desc=Bu sayfada VPN tnelleri oluturup, firewall a oluturulan VPN tnelleri iin kural tanmlayabilirsiniz. +tunnels_add=Yeni VPN tneli ekle +tunnels_none=Tanml herhangi bir VPN tneli bulunmamaktadr. +tunnels_0=VPN Tr +tunnels_1=Arayz blgesi +tunnels_2=Uzak Gateway +tunnels_3=Gateway blgeleri +tunnels_gnone=yok +tunnels_return=VPN Tnel Listesi +tunnels_edit=Tneli Grntle/Deitir +tunnels_create=Yeni VPN tneli Olutur +tunnels_header=VPN Tnel Detaylar +tunnels_err=VPN tnel kaydedilemedi +tunnels_sel=Gateway IP Adresi +tunnels_ipsec=IPsec +tunnels_ipsec:noah=IPsec (no AH) +tunnels_ipsecnat=NAT zellii aktif hale getirilmi IPsec +tunnels_ipsecnat:noah=NAT zellii aktif hale getirilmi IPsec(no AH) +tunnels_ip=IP +tunnels_gre=GRE +tunnels_pptpclient=PPTP client +tunnels_pptpserver=PPTP server +tunnels_openvpn=OpenVPN +tunnels_openvpn_l=OpenVPN, port.. +tunnels_generic=Standart +tunnels_generic_l=Standart, protokol.. +tunnels_gsel=Listelenen blgeler +tunnels_eopenvpn=VPN tnel iin Hatal port numaras +tunnels_egeneric=Eksik protokol veya protokol:standart tnel portu + +hosts_title=Blge Hostlar +hosts_desc=Bu sayfada tanml blgelere ait host ve a gruplarn konfigure edebilirsiniz. Normal koullarda bu sayfada herhangi bir ilem yapmanzda gerek bulunmamaktadr. +hosts_add=Yeni Blge Hostu Ekle +hosts_none=Tanml herhangi bir blge hostu bulunmamaktadr. +hosts_0=Blge +hosts_1=Arayz +hosts_2=IP adresi veya A +hosts_opts=Host Seenekleri +hosts_return=Blge Host Listesi +hosts_edit=Host Listesini Grntle/Deitir +hosts_create=Yeni Blge Hostu Ekle +hosts_err=Blge Hostu Kaydedilemedi +hosts_header=Blge Host Detaylar +hosts_routestopped=Firewall kapatlsa bile ynlendirmeye devam et +hosts_maclist=MAC Listesine Gre Karlatrma Yap + +edit_before=$1 numaral girdi ncesi +edit_after=$1 numaral girdi sonras + +blacklist_title=Kara Liste hostlar +blacklist_desc= Bu sayfada anza zararl ierik gndermek isteyen veya anza zarar vermek isteyen host ve/veya alar Kara Liste'ye ekleyerek, bu host ve/veya alarn anza eriimini engelleyebilirsiniz. +blacklist_add=Yeni Kara Liste Hostu Ekle +blacklist_none=Tanml herhangi bir kara liste hostu bulunmamaktadr. +blacklist_0=Host veya A +blacklist_1=Protokol +blacklist_2=Portlar +blacklist_any=Btn +blacklist_header=Kara Liste Host Detaylar +blacklist_host=Host veya A +blacklist_proto=Protokol +blacklist_ports=Port veya port listesi +blacklist_err=Kara Liste hostu Kaydedilemedi +blacklist_ehost=Hatal ya da eksik host IP adresi, MAC adresi veya A adresi +blacklist_edit=Kara Liste hostunu Grntle/Deitir +blacklist_create=Yeni Kara Liste hostu Ekle +blacklist_eproto=Hatal ya da eksik protokol +blacklist_eports=Hatal port numaras ya da virgllerin yanl kullanlmasndan dolay oluan hatal port listesi +blacklist_eports2=Sadece TCP ve UDP protokolleri iin host tanmlanabilir. +blacklist_return=Kara Liste Hostlar + +manual_desc=Bo formu kullanarak manual olarak $1 shorewall6 konfigurasyon dosyasn grntleyebilir ya da ieriini deitirebilirsiniz. +manual_reset=Undo +manual_err=Tablo dosyas kaydedilemedi +manual_efile=Hatal tablo ismi +manual_edata=Tablo dosyas ierii bulunamad + +acl_nochange=Shorewall konfigurasyonunu uygulayabilsin/durdurabilsin/balatabilsin. +acl_files=Shorewall Tablolar +acl_all=Hepsi +acl_sel=Seili Olan .. + +###turkish transation by Mehmet Ali Basalp mbasalp@gmail.com diff --git a/shorewall6/lang/zh_CN b/shorewall6/lang/zh_CN new file mode 100644 index 000000000..583ce5b02 --- /dev/null +++ b/shorewall6/lang/zh_CN @@ -0,0 +1,349 @@ +index_title=Shorewallҵǽ +index_ecmd= $1 ϵͳҲ. ûбװ, ģ Ǵ. +index_edir=ShorewallǽĿ¼ $1 ϵͳҲ. ûбװ, ģ Ǵ. +index_version=Shorewallǽ汾QL $1 +index_return=б +index_restart=Ӧ +index_restartdesc=ťShorewallǽʹ¹Ч. +index_refresh=ˢ +index_refreshdesc=ťֻˢºƱ. +index_start=ǽ +index_startdesc=ťShorewallǽ. +index_clear=ǽ +index_cleardesc=ťǽƵطʷ. +index_stop=ֹͣǽ +index_stopdesc=ťرշǽرչĹ֮ӽֹ. +index_status=ʾ״̬ +index_statusdesc=ťʾShorewallѶĹ. +index_check=ǽ +index_checkdesc=ťǷȷ. + +list_move=ƶ +list_add= +list_auto=Զ +list_none=û +list_any=κ +list_fw=ǽ +list_other=.. +list_manual=ֹ޸ļ +list_manualdesc=ťֹ޸ļ $1. +list_ecannot=޸Shorewall. + +restart_err=Ӧʧ +refresh_err=ˢʧ +start_err=ǽʧ +clear_err=ǽʧ +stop_err=رշǽʧ +status_title=ǽ״̬ +check_title=ǽ +check_ok=.. ڵÿȥû. +check_failed=.. ǰһЩ! +check_cmd=ڼ .. + +zones_title= +zones_desc=ϵͳӵIJͬ. ȻֻǸƣԷǽûκЧֻǶĬƺϸ. +zones_add=һ. +zones_none=ûԤ. +zones_0=ID +zones_1=ʾ +zones_2= +zones_return=б +zones_edit=༭ +zones_create= +zones_header=ϸ +zones_err=ʧ +zones_eid=ʧID +zones_efwid=ID $FW fw DZ +zones_ename=ʧʾ +zones_edesc=ʧ + +policy_title=Ĭϲ +policy_desc=òͬǽ֮ĬͨŶ."ǽ"ԴΪ. +policy_add=һĬϲ +policy_none=ûĬϲԱԤ. +policy_0=Դ +policy_1=Ŀ +policy_2= +policy_3=־ȼ +policy_4= +policy_limit= $1, ͻ $2 +policy_return=б +policy_edit=༭Ĭϲ +policy_create=Ĭϲ +policy_header=Ĭϲϸ +policy_err=Ĭϲʧ +policy_nolog=־¼ѹر +policy_ulog=¼־ULOG +policy_efw=<ǽ> ޷ѡԴĿ +policy_elimit=ʧƱ +policy_eburst=ʧͻƱ + +rules_title=ǽ +rules_desc=г"Ĭϲ"ضĴ͡ԴĿַӵĿƶƥĬϲ. +rules_add=һǽ +rules_none=ûзǽԤ. +rules_0= +rules_1=Դ +rules_1z=Դ +rules_2=Ŀ +rules_2z=Ŀ˿ں +rules_3=Э +rules_4=Դ˿ +rules_5=Ŀ˿ +rules_6= +rules_7=û +rules_hosts= $2 $1 +rules_zone= $1 +rules_rport=˿ $1 +rules_related= +rules_return=ǽб +rules_edit=༭ǽ +rules_create=½ǽ +rules_header=ǽϸ +rules_err=ǽʧ +rules_log=¼ϵͳ־ +rules_nolog=¼־ +rules_addr=еַ +rules_ranges=˿ڼΧ +rules_dnat=DNATREDIRECTԭʼĿַ +rules_dnat_dest=DNATREDIRECT, µĿַ߶˿. +rules_dnat_port=DNATREDIRECT, ԭʼĿַ߶˿. +rules_esother=ʧߴԴ +rules_edother=ʧߴĿ +rules_esinzone=ûԴַ +rules_edinzone=ûĿַ +rules_esport=ûԴ˿ںšŻ߷Χ +rules_edport=ûĿ˿ںšŻ߷Χ +rules_ednat=ԭʼĿַΪIP߱:ָIP +rules_ednat2=һԭʼĿַܼ뵽DNATREDIRECTֶ +rules_rate=﷨ +rules_norate= +rules_set=Ӧûù +rules_noset=ȫû + +tos_title= +tos_desc=ҳ涨ضеIP,߻߽ǵȨ. +tos_add=һ· +tos_none=ûԤķ. +tos_0=Դ +tos_0z=Դ +tos_1=Ŀ +tos_1z=Ŀ +tos_2=Э +tos_3=Դ˿ڼ +tos_4=Ŀ˿ڼ +tos_5= +tos_return=б +tos_edit=༭ +tos_create=½ +tos_header=ϸ +tos_err=ʧ + +interfaces_title= +interfaces_desc=ShorewallϵͳϵÿͶӦ.ػ豸loܼб. +interfaces_add=½һ +interfaces_none=ûԤ. +interfaces_0= +interfaces_1= +interfaces_2=㲥ַ +interfaces_3=ѡ +interfaces_detect=Զ +interfaces_return=б +interfaces_edit=༭ +interfaces_create=½ +interfaces_header=ϸ +interfaces_err=ʧ +interfaces_eiface=ʧ +interfaces_ebroad=ʧĹ㲥ַ + +masq_title=Masqת +masq_desc=òͬͨ·.һ;ʵ־. +masq_add=½Masqת +masq_none=ûԤMasqת. +masq_0= +masq_1=ҪMasq +masq_2=SNATַ +masq_in=$2 on $1 +masq_ex=Network on $1 except $2 +masq_iface=Network on $1 +masq_return=Masqתб +masq_edit=༭Masqת +masq_create=½Masqת +masq_header=Masqתϸ +masq_err=Masqתʧ +masq_net=Ŀ +masq_mode0=ַ +masq_mode1= +masq_except=ֹ +masq_enet=ʧĿ +masq_emnet=ʧתַ +masq_emnete=յĽֹб +masq_esnat=SNAT IPַ + +nat_title=̬NAT +nat_desc=þַ̬룬ڲеĵַⲿַͨʵڲеķⲿṩ +nat_add=½һ̬NATĿ +nat_none=ûԤľ̬NATĿ. +nat_0=ⲿַ +nat_1=ⲿ +nat_2=ڲַ +nat_virt= +nat_return=̬NATб +nat_edit=༭̬NAT +nat_create=½̬NAT +nat_header=̬NATĿϸ +nat_err=澲̬NATĿʧ +nat_all=Ӧõ? +nat_local=Ӧõǽϵͳ? +nat_eext=ⲿIPַ +nat_eint=ڲIPַ +nat_evirt= + +proxyndp_title=NDP +proxyndp_desc=ϵͳӦϵͳIPַNDP. +proxyndp_add=½һNDPַ +proxyndp_none=ûԤNDPַ. +proxyndp_0=ַNDP +proxyndp_1=ӵ +proxyndp_2=ⲿ +proxyndp_3=? +proxyndp_return=NDPַб +proxyndp_edit=༭NDPַ +proxyndp_create=½NDPַ +proxyndp_header=NDPϸ +proxyndp_err=NDPʧ +proxyndp_have=·ɵڵ +proxyndp_eaddr=ʧĵַ +proxyndp_pers=ǽֹͣʱ· + +routestopped_title=رչ +routestopped_desc=ShorewallĬڹرʱз. ҳ涨ShorewallرԺʵ. +routestopped_add=½һַ +routestopped_none=ûԤĹرպַ. +routestopped_0= +routestopped_1=ɵַ +routestopped_return=ַб +routestopped_edit=༭ַ +routestopped_create=½ַ +routestopped_header=ϸ +routestopped_err=ַʧ +routestopped_eaddr=ûӵַ +routestopped_all=еַ +routestopped_list=ַб .. + +tunnels_title=VPN ͨ +tunnels_desc=ҳгǽVPNͨ, DZShorewallб. +tunnels_add=һVPNͨ +tunnels_none=ûԤVPNͨ. +tunnels_0=VPN +tunnels_1= +tunnels_2=Զ +tunnels_3= +tunnels_gnone=û +tunnels_return=VPNͨб +tunnels_edit=༭VPNͨ +tunnels_create=½VPNͨ +tunnels_header=VPNͨϸ +tunnels_err=VPNͨʧ +tunnels_sel=IP +tunnels_ipsec=IPsec +tunnels_ipsec:noah=IPsec (no AH) +tunnels_ipsecnat=IPsec with NAT +tunnels_ipsecnat:noah=IPsec with NAT (no AH) +tunnels_ip=IP +tunnels_gre=GRE +tunnels_pptpclient=PPTPͻ +tunnels_pptpserver=PPTP +tunnels_openvpn=OpenVPN +tunnels_openvpn_l=OpenVPN, ˿.. +tunnels_generic=һ +tunnels_generic_l=һ, Э.. +tunnels_gsel=б +tunnels_eopenvpn=OpenVPNͨ˿ں +tunnels_egeneric=ʧһͨЭЭ:˿ + +hosts_title= +hosts_desc=򲿷ֵ. һ㲻Ҫ޸б. +hosts_add=һµ +hosts_none=ûԤ. +hosts_0= +hosts_1= +hosts_2=IPַ +hosts_opts=ѡ +hosts_return=б +hosts_edit=༭ +hosts_create=½ +hosts_err=ʧ +hosts_header=ϸ +hosts_routestopped=ǽرպṩ·ɣ +hosts_maclist=ȽMACб? + +edit_before=֮ǰĿ $1 +edit_after=֮Ŀ $1 + +blacklist_title= +blacklist_desc=ӵͷ˿ڽ. +blacklist_add=һ +blacklist_none=ûԤĺ. +blacklist_0= +blacklist_1=Э +blacklist_2=˿ڼ +blacklist_any=κ +blacklist_header=ϸ +blacklist_host= +blacklist_proto=Э +blacklist_ports=˿ڻ˿б +blacklist_err=ʧ +blacklist_ehost=ʧIPַ, MACַַ +blacklist_edit=༭ +blacklist_create=½ +blacklist_eproto=ʧЭ +blacklist_eports=Ķ˿ںŻ˿ڼķָ +blacklist_eports2=˿ڼָΪTCPUDPЭ +blacklist_return= + +providers_title=·· +providers_desc=ҳ涨··ɱ. ӵISP·ӵͬһISPĶ·ſʹá +providers_add=һ··. +providers_none=ǰûѶĿ. +providers_0= +providers_1= +providers_2= +providers_3= +providers_4= +providers_name=· +providers_number=· +providers_mark=DZ +providers_dup=ϲ· +providers_main= +providers_iface= +providers_gateway=· +providers_auto=Զ +providers_opts=ѡ +providers_track= +providers_balance=⴫ +providers_loose=ǽ +providers_edit=༭·· +providers_create=½·· +providers_header=··ϸ +providers_copy=渴· +providers_err=··ʧ +providers_ename=ʧ· +providers_enumber=ʧ·Ʊ +providers_emark=ʧ·DZ +providers_edup=ʧϲʵ· +providers_egateway=ʧ + + +manual_desc=ֹ༭Shorewallļ $1. Сģ﷨. +manual_reset=ȡ +manual_err=ļʧ +manual_efile=ı! +manual_edata=ûбļ. + + + +acl_nochange=ֹܹͣӦShorewall? +acl_files=õShorewall +acl_all= +acl_sel=ѡ... diff --git a/shorewall6/list.cgi b/shorewall6/list.cgi new file mode 100755 index 000000000..9a4200f68 --- /dev/null +++ b/shorewall6/list.cgi @@ -0,0 +1,123 @@ +#!/usr/bin/perl +# list.cgi +# Display the contents of some table + +require './shorewall6-lib.pl'; +&ReadParse(); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +&get_clean_table_name(\%in); +&ui_print_header(undef, $text{$in{'tableclean'}."_title"}, ""); + +$desc = $text{$in{'tableclean'}."_desc"}; +print "$desc

\n" if ($desc); + +$pfunc = &get_parser_func(\%in); +@table = &read_table_file($in{'table'}, $pfunc); +$cfunc = $in{'tableclean'}."_columns"; +$cols = &$cfunc() if (defined(&$cfunc)); +$nfunc = $in{'tableclean'}."_colnames"; +#&debug_message("cfunc = $cfunc"); +#&debug_message("nfunc = $nfunc"); +if (defined(&$nfunc)) { + @colnames = &$nfunc(); + } +else { + @colnames = ( ); + for($j=0; defined($cols) ? ($j<$cols) : ($text{$in{'tableclean'}."_".$j}); $j++) { + push(@colnames, $text{$in{'tableclean'}."_".$j}); + } + } + +# Work out select/create links +@links = ( &select_all_link("d"), + &select_invert_link("d"), + "". + $text{$in{'tableclean'}."_add"}."" ); +if (&version_atleast(3, 3, 3) && &indexof($in{'table'}, @comment_tables) >= 0) { + push(@links, "". + $text{"comment_add"}.""); + } + +# Show the table +if (@table) { + print &ui_form_start("delete.cgi", "post"); + print &ui_hidden("table", $in{'table'}),"\n"; + print &ui_links_row(\@links); + print &ui_columns_start([ + "", + @colnames, + (@table > 1 ? ( $text{'list_move'} ) : ( )), + $text{'list_add'} + ], undef, 0, [ "width=5" ]); + + $rfunc = $in{'tableclean'}."_row"; + for($i=0; $i<@table; $i++) { + @t = @{$table[$i]}; + local @cols; + local @tds; + if ($t[0] eq "COMMENT") { + # Special case - a comment line + push(@cols, "".join(" ", @t[1..$#t]). + "" ); + @tds = ( "width=5", "colspan=".scalar(@colnames) ); + } + else { + # Some rule or other object + if (defined(&$rfunc)) { + @t = &$rfunc(@t); + } + for($j=0; $j<@colnames; $j++) { + if ($j == 0) { + $lnk = "$t[$j]"; + } + else { + $lnk = $t[$j]; + } + push(@cols, $lnk); + } + @tds = ( "width=5" ); + } + if (@table > 1) { + $mover = ""; + if ($i == 0) { + $mover .= ""; + } + else { + $mover .= "\n"; + } + if ($i == $#table) { + $mover .= ""; + } + else { + $mover .= "\n"; + } + push(@cols, $mover); + } + push(@cols, + "". + "\n". + "". + "\n"); + print &ui_checked_columns_row(\@cols, \@tds, "d", $i); + } + print &ui_columns_end(); + } +else { + print "",$text{$in{'tableclean'}."_none"},"

\n"; + shift(@links); shift(@links); + } +print &ui_links_row(\@links); +if (@table) { + print &ui_form_end([ [ "delete", $text{'list_delete'} ] ]); + } + +print &ui_hr(); +print &ui_buttons_start(); +print &ui_buttons_row("manual_form.cgi", $text{'list_manual'}, + &text('list_manualdesc', + "$config{'config_dir'}/$in{'table'}"), + &ui_hidden("table", $in{'table'})); +print &ui_buttons_end(); + +&ui_print_footer("", $text{'index_return'}); diff --git a/shorewall6/log_parser.pl b/shorewall6/log_parser.pl new file mode 100755 index 000000000..6a53832e7 --- /dev/null +++ b/shorewall6/log_parser.pl @@ -0,0 +1,19 @@ +# log_parser.pl +# Functions for parsing this module's logs + +do 'shorewall6-lib.pl'; + +# parse_webmin_log(user, script, action, type, object, ¶ms) +# Converts logged information from this module into human-readable form +sub parse_webmin_log +{ +local ($user, $script, $action, $type, $object, $p) = @_; +if ($type eq 'table' || $type eq 'comment') { + return &text('log_'.$action.'_'.$type, $text{$object.'_title'}); + } +else { + return $text{'log_'.$action}; + } +} + + diff --git a/shorewall6/manual_form.cgi b/shorewall6/manual_form.cgi new file mode 100755 index 000000000..2e5f4b7e5 --- /dev/null +++ b/shorewall6/manual_form.cgi @@ -0,0 +1,27 @@ +#!/usr/bin/perl +# Display the contents of a table file + +require './shorewall6-lib.pl'; +&ReadParse(); +&get_clean_table_name(\%in); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +&ui_print_header(undef, $text{$in{'tableclean'}."_title"}, ""); + +$file = "$config{'config_dir'}/$in{'table'}"; +$in{'table'} =~ /\.\./ && &error($text{'manual_efile'}); +print &text('manual_desc', "$file"),"

\n"; + +print "

\n"; +print &ui_hidden("table", $in{'table'}); +print "
\n"; +print "\n"; +print "\n"; +print "
\n"; + +&ui_print_footer("list.cgi?table=$in{'table'}", $text{$in{'tableclean'}."_return"}); diff --git a/shorewall6/manual_save.cgi b/shorewall6/manual_save.cgi new file mode 100755 index 000000000..616a45a60 --- /dev/null +++ b/shorewall6/manual_save.cgi @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Save the contents of a table file + +require './shorewall6-lib.pl'; +&ReadParseMime(); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +&error_setup($text{'manual_err'}); +$file = "$config{'config_dir'}/$in{'table'}"; +$in{'table'} =~ /\.\./ && &error($text{'manual_efile'}); +$in{'data'} =~ s/\r//g; +$in{'data'} || &error($text{'manual_edata'}); + +&open_lock_tempfile(FILE, ">$file"); +&print_tempfile(FILE, $in{'data'}); +&close_tempfile(FILE); +&webmin_log('manual', 'table', $in{'table'}); +&redirect("list.cgi?table=$in{'table'}"); + diff --git a/shorewall6/module.info b/shorewall6/module.info new file mode 100644 index 000000000..f835fa458 --- /dev/null +++ b/shorewall6/module.info @@ -0,0 +1,10 @@ +desc=Shorewall6 Firewall +category=net +os_support=*-linux +depends=syslog +longdesc=Lets you edit the most useful tables of the Shorewall6 Firewall +desc_ca=Tallafocs Shorewall6 +desc_es=Cortafuegos Shorewall6 +desc_cz=Shorewall Firewall6 +desc_nl=Shorewall Firewall6 +desc_cz.UTF-8=Shorewall Firewall6 diff --git a/shorewall6/refresh.cgi b/shorewall6/refresh.cgi new file mode 100755 index 000000000..9a8fc282d --- /dev/null +++ b/shorewall6/refresh.cgi @@ -0,0 +1,21 @@ +#!/usr/bin/perl +# refresh.cgi +# Activate the current config + +require './shorewall6-lib.pl'; +if ($access{'nochange'}) { + redirect("/"); + exit 0; +} + +&error_setup($text{'refresh_err'}); +$err = &run_before_apply_command(); +&error($err) if ($err); +$out = &backquote_logged("$config{'shorewall6'} refresh 2>&1"); +if ($?) { + &error("
$out
"); + } +$err = &run_after_apply_command(); +&webmin_log("refresh"); +&redirect(""); + diff --git a/shorewall6/restart.cgi b/shorewall6/restart.cgi new file mode 100755 index 000000000..d136a4ae9 --- /dev/null +++ b/shorewall6/restart.cgi @@ -0,0 +1,21 @@ +#!/usr/bin/perl +# restart.cgi +# Activate the current config + +require './shorewall6-lib.pl'; +if ($access{'nochange'}) { + redirect("/"); + exit 0; +} + +&error_setup($text{'restart_err'}); +$err = &run_before_apply_command(); +&error($err) if ($err); +$out = &backquote_logged("$config{'shorewall6'} restart 2>&1"); +if ($?) { + &error("
$out
"); + } +$err = &run_after_apply_command(); +&webmin_log("restart"); +&redirect(""); + diff --git a/shorewall6/save.cgi b/shorewall6/save.cgi new file mode 100755 index 000000000..28c1b299e --- /dev/null +++ b/shorewall6/save.cgi @@ -0,0 +1,44 @@ +#!/usr/bin/perl +# save.cgi +# Updated, modify or delete a table entry + +require './shorewall6-lib.pl'; +&ReadParse(); +&get_clean_table_name(\%in); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +$pfunc = &get_parser_func(\%in); +&error_setup($text{$in{'tableclean'}."_err"}); + +&lock_table($in{'table'}); +if ($in{'delete'}) { + # Just delete one row + &delete_table_row($in{'table'}, $pfunc, $in{'idx'}); + } +else { + # Validate inputs + $vfunc = $in{'tableclean'}."_validate"; + @row = &$vfunc(); + $jfunc = $in{'tableclean'}."_join"; + if (defined(&$jfunc)) { + $line = &$jfunc(@row); + } + else { + $line = join("\t", @row); + } + + # Update or add + if ($in{'new'}) { + local $where = $in{'before'} ne '' ? $in{'before'} : + $in{'after'} ne '' ? $in{'after'}+1 : undef; + &create_table_row($in{'table'}, $pfunc, $line, $where); + } + else { + # Updating + &modify_table_row($in{'table'}, $pfunc, $in{'idx'}, $line); + } + } +&unlock_table($in{'table'}); +&webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "modify", + "table", $in{'table'}); +&redirect("list.cgi?table=$in{'table'}"); + diff --git a/shorewall6/savecmt.cgi b/shorewall6/savecmt.cgi new file mode 100755 index 000000000..b2134cfa7 --- /dev/null +++ b/shorewall6/savecmt.cgi @@ -0,0 +1,33 @@ +#!/usr/bin/perl +# Updated, modify or delete a comment + +require './shorewall6-lib.pl'; +&ReadParse(); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +$pfunc = &get_parser_func(\%in); +&error_setup($text{"comment_err"}); + +&lock_table($in{'table'}); +if ($in{'delete'}) { + # Just delete one row + &delete_table_row($in{'table'}, $pfunc, $in{'idx'}); + } +else { + # Validate inputs + $in{'msg'} =~ /\S/ || &error($text{'comment_enone'}); + $line = "COMMENT $in{'msg'}"; + + # Update or add + if ($in{'new'}) { + &create_table_row($in{'table'}, $pfunc, $line); + } + else { + # Updating + &modify_table_row($in{'table'}, $pfunc, $in{'idx'}, $line); + } + } +&unlock_table($in{'table'}); +&webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "modify", + "comment", $in{'table'}); +&redirect("list.cgi?table=$in{'table'}"); + diff --git a/shorewall6/shorewall6-lib.pl b/shorewall6/shorewall6-lib.pl new file mode 100755 index 000000000..1f6b9c5bd --- /dev/null +++ b/shorewall6/shorewall6-lib.pl @@ -0,0 +1,1724 @@ +# shorewall6-lib.pl +# Common functions for the shorewall6 configuration files +# FIXME: +# - rule sections +# - read_shorewall6_config & standard_parser do not allow quoted comment characters + +BEGIN { push(@INC, ".."); }; +use WebminCore; +&init_config(); + +# Get the version +$shorewall6_version = &get_shorewall6_version(0); +%shorewall6_config = &read_shorewall6_config(); +#&dump_shorewall6_config(); + +# get access permissions +%access = &get_module_acl(); + +@shorewall6_files = ( 'zones', 'interfaces', 'policy', 'rules', 'tos', + 'proxyndp', 'routestopped', + 'tunnels', 'hosts', 'blacklist', + ( &version_atleast(2, 3) ? ( 'providers' ) : ( ) ), + 'params', 'shorewall6.conf', +); +@comment_tables = ( 'rules', 'tcrules' ); + +sub debug_message +{ + print STDERR scalar(localtime).": shorewall6-lib: @_\n"; +} + +# version_atleast(v1, v2, v3, ...) +# - Check if the Shorewall version is greater than or equal to the one supplied. +sub version_atleast +{ +local @vsp = split(/\./, $shorewall6_version); +local $i; +for($i=0; $i<@vsp || $i<@_; $i++) { + return 0 if ($vsp[$i] < $_[$i]); + return 1 if ($vsp[$i] > $_[$i]); + } +return 1; # same! +} + +sub read_shorewall6_config +{ + local @ret; + open(SHOREWALL_CONF, "$config{'config_dir'}/shorewall6.conf"); + while () { + chomp; + s/\r//; + s/#.*$//; + @F = split( /=/, $_, 2 ); + next if $#F != 1; + push @ret, ( $F[0], $F[1] ); + } + close(SHOREWALL_CONF); + return @ret; +} + +# dump_shorewall6_config() +# - Debugging code +sub dump_shorewall6_config +{ + for (sort keys %shorewall6_config) { + print STDERR "$_=$shorewall6_config{$_}\n"; + } +} + +# shorewall6_config(var) +sub shorewall6_config +{ + if (exists $shorewall6_config{$_[0]} && defined $shorewall6_config{$_[0]}) { + return $shorewall6_config{$_[0]}; + } + return ''; +} + +# return true if new zones format is in use +sub new_zones_format +{ + # Shorewall 3.4.0 - 3.4.4 have a bug that prevents the old format from being used. + if (&version_atleast(3, 4) && !&version_atleast(3, 4, 5)) { + return 1; + } + # Zones table is in new format in Shorewall 3, unless shorewall6.conf has IPSECFILE=ipsec + if (!&version_atleast(3) || &shorewall6_config('IPSECFILE') eq 'ipsec') { + return 0; + } + return 1; +} + +# read_table_file(table, &parserfunc) +sub read_table_file +{ +local @rv; +local $func = $_[1]; +open(FILE, "$config{'config_dir'}/$_[0]"); +while() { + s/\r|\n//g; + local $l = &$func($_); + push(@rv, $l) if ($l); + } +close(FILE); +return @rv; +} + +# read_table_struct(table, &parserfunc) +sub read_table_struct +{ +if (!defined($read_table_cache{$_[0]})) { + local @rv; + local $func = $_[1]; + open(FILE, "$config{'config_dir'}/$_[0]"); + local $lnum = 0; + while() { + s/\r|\n//g; + local $cmt; + if (s/#\s*(.*)$//) { + $cmt = $1; + } + local $l = &$func($_); + if ($l) { + push(@rv, { 'line' => $lnum, + 'file' => "$config{'config_dir'}/$_[0]", + 'table' => $_[0], + 'index' => scalar(@rv), + 'values' => $l, + 'comment' => $cmt }); + } + $lnum++; + } + close(FILE); + $read_table_cache{$_[0]} = \@rv; + } +return $read_table_cache{$_[0]}; +} + +# find_line_num(&lref, &parserfunc, index) +sub find_line_num +{ +local $lref = $_[0]; +local $func = $_[1]; +local $idx = 0; +for($i=0; $i<@$lref; $i++) { + if (&$func($lref->[$i])) { + if ($idx++ == $_[2]) { + return $i; + } + } + } +return undef; +} + +# delete_table_row(table, &parserfunc, index) +sub delete_table_row +{ +local $lref = &read_file_lines("$config{'config_dir'}/$_[0]"); +local $lnum = &find_line_num($lref, $_[1], $_[2]); +splice(@$lref, $lnum, 1) if (defined($lnum)); +&flush_file_lines(); +} + +# delete_table_struct(&struct) +sub delete_table_struct +{ +local $lref = &read_file_lines($_[0]->{'file'}); +splice(@$lref, $_[0]->{'line'}, 1); +&flush_file_lines(); +local $cache = $read_table_cache{$_[0]->{'table'}}; +local $idx = &indexof($_[0], @$cache); +if ($idx >= 0) { + splice(@$cache, $idx, 1); + } +local $c; +foreach $c (@$cache) { + $c->{'line'}-- if ($c->{'line'} > $_[0]->{'line'}); + $c->{'index'}-- if ($c->{'index'} > $_[0]->{'index'}); + } +} + +# create_table_row(table, &parserfunc, line, [insert-index]) +sub create_table_row +{ +local $lref = &read_file_lines("$config{'config_dir'}/$_[0]"); +local ($i, $idx); +for($i=0; $i<@$lref; $i++) { + if ($lref->[$i] =~ /^#+\s*LAST\s+LINE/) { + $idx = $i; + last; + } + elsif ($lref->[$i] =~ /^SECTION\s+NEW/) { + $idx = $i+1; + last; + } + } +if (defined($_[3])) { + local $lnum = &find_line_num($lref, $_[1], $_[3]); + $lnum = $idx if (!defined($lnum)); + splice(@$lref, $lnum, 0, &simplify_line($_[2])); + } +else { + splice(@$lref, $idx, 0, &simplify_line($_[2])); + } +&flush_file_lines(); +} + +# create_table_struct(&struct, parserfunc, [&insert-before]) +sub create_table_struct +{ +local $lref = &read_file_lines("$config{'config_dir'}/$_[0]->{'table'}"); +local ($i, $idx); +for($i=0; $i<@$lref; $i++) { + if ($lref->[$i] =~ /^#+\s*LAST\s+LINE/) { + $idx = $i; + last; + } + } +if (!defined($idx)) { + $idx = @$lref; + } +local $cache = &read_table_struct($_[0]->{'table'}, $_[1]); +if ($_[2]) { + # Insert into file + splice(@$lref, $_[2]->{'line'}, 0, &make_struct($_[0])); + $_[0]->{'file'} = "$config{'config_dir'}/$_[0]->{'table'}"; + $_[0]->{'line'} = $_[2]->{'line'}; + $_[0]->{'index'} = $_[2]->{'index'}; + local $c; + foreach $c (@$cache) { + $_[0]->{'line'}++ if ($c->{'line'} >= $_[2]->{'line'}); + $_[0]->{'index'}++ if ($c->{'index'} >= $_[2]->{'index'}); + } + local $iidx = &indexof($_[2], @$cache); + splice(@$cache, $iidx, 0, $_[0]); + } +else { + # Append to file + splice(@$lref, $idx, 0, &make_struct($_[0])); + $_[0]->{'file'} = "$config{'config_dir'}/$_[0]->{'table'}"; + $_[0]->{'line'} = $idx; + $_[0]->{'index'} = @$cache; + push(@$cache, $_[0]->{'index'}); + } +&flush_file_lines(); +} + +# modify_table_row(table, &parserfunc, index, line) +sub modify_table_row +{ +local $lref = &read_file_lines("$config{'config_dir'}/$_[0]"); +local $lnum = &find_line_num($lref, $_[1], $_[2]); +$lref->[$lnum] = &simplify_line($_[3]) if (defined($lnum)); +&flush_file_lines(); +} + +# modify_table_struct(&newstruct, &oldstruct) +sub modify_table_struct +{ +local $lref = &read_file_lines("$config{'config_dir'}/$_[1]->{'table'}"); +$lref->[$_[1]->{'line'}] = &make_struct($_[0]); +if ($_[0] ne $_[1]) { + $_[0]->{'line'} = $_[1]->{'line'}; + $_[0]->{'index'} = $_[1]->{'index'}; + local $cache = $read_table_cache{$_[1]->{'table'}}; + local $idx = &indexof($_[1], @$cache); + $cache->[$idx] = $_[0]; + } +&flush_file_lines(); +} + +# swap_table_rows(table, &parserfunc, index1, index2) +sub swap_table_rows +{ +local $lref = &read_file_lines("$config{'config_dir'}/$_[0]"); +local $lnum1 = &find_line_num($lref, $_[1], $_[2]); +local $lnum2 = &find_line_num($lref, $_[1], $_[3]); +($lref->[$lnum1], $lref->[$lnum2]) = ($lref->[$lnum2], $lref->[$lnum1]); +&flush_file_lines(); +} + +# make_struct(&struct) +sub make_struct +{ +local $line = join("\t", @{$_[0]->{'values'}}); +if ($_[0]->{'comment'}) { + $line .= "\t# $_[0]->{'comment'}"; + } +return &simplify_line($line); +} + +# simplify_line(line) +# Removes blank fields from the end of a line +sub simplify_line +{ +local $rv = $_[0]; +while($rv =~ s/\s+$// || $rv =~ s/\-$//) { } +return $rv; +} + +sub lock_table +{ +&lock_file("$config{'config_dir'}/$_[0]"); +} + +sub unlock_table +{ +&unlock_file("$config{'config_dir'}/$_[0]"); +} + +# parser for whitespace-separated config files +sub standard_parser +{ +local $l = $_[0]; +$l =~ s/#.*$//; +local @sp = split(/\s+/, $l); +return undef if ($sp[0] eq "SECTION"); +return @sp ? \@sp : undef; +} + +# parser for shell-style config files +sub config_parser +{ + local $l = $_[0]; + $l =~ s/#\s*(.*?)\s*$//; # save the comment we strip + local @sp = split(/=/, $l, 2); + if ($#sp > -1 && defined $1) { + push @sp, $1; # add back the saved comment, if present + } + return @sp ? \@sp : undef; +} + +# determine which parser function to use +sub get_parser_func +{ + local $hashref = $_[0]; + &get_clean_table_name($hashref); + local $pfunc = $hashref->{'tableclean'}."_parser"; + if (!defined(&$pfunc)) { + if ($hashref->{'tableclean'} =~ /^(params|shorewall6_conf)$/) { + $pfunc = "config_parser"; + } + else { + $pfunc = "standard_parser"; + } + } + return $pfunc; +} + +# ensure that the passed string contains only characters valid in shell variable identifiers +sub clean_name +{ + local $str = $_[0]; + $str =~ s/\W/_/g; + return $str; +} + +# get a table name that is clean enough to use as a function prefix +sub get_clean_table_name +{ + local $hashref = $_[0]; + if (!exists hashref->{'tableclean'}) { + $hashref->{'tableclean'} = &clean_name($in{'table'}); + } +} + +# zone_field(name, value, othermode, simplemode) +sub zone_field +{ +local @ztable = &read_table_file("zones", \&zones_parser); +local $found = 0; + +print "\n"; +return $found; +} + +# iface_field(name, value) +sub iface_field +{ +local @itable = &read_table_file("interfaces", \&standard_parser); +print "\n"; +} + +# convert_zone(name) +# Given a zone name, returns a description +# FIXME: inefficient - should be able to pass ztable into this function +sub convert_zone +{ +local @ztable = &read_table_file("zones", \&zones_parser); +foreach $z (@ztable) { + if ($_[0] eq $z->[0]) { + if (&new_zones_format()) { + # No descriptions in new format - use comment field if present + if (defined $z->[6] && $z->[6] ne "") { + $ret = $_[0]." - ".$z->[6]; + } + else { + $ret = $_[0]; + } + } + else { + $ret = $z->[1]; + } + } + } +if (&is_fw($_[0])) { + $ret = $text{'list_fw'}; + } +return $ret || $_[0]; +} + +# nice_host_list(list) +# Convert a comma-separate host string to space-separated +sub nice_host_list +{ +local @hosts = split(/,/, $_[0]); +if (@host > 5) { + return join(", ", @hosts[0..5]).", ..."; + } +else { + return join(", ", @hosts); + } +} + +# is_fw(zone) +# - Checks if the supplied zone is the firewall zone. +# Now handles renaming of firewall zone in shorewall6.conf. +sub is_fw +{ + local $fw = &shorewall6_config('FW'); + $fw = 'fw' if ($fw eq ''); + return $_[0] eq '$FW' || $_[0] eq $fw; +} + +################################# zones ####################################### + +sub zones_parser +{ +if (&new_zones_format()) { + # New format + local $l = $_[0]; + $l =~ s/#\s*(.*?)\s*$//; # save the stripped comment + local $comment = $1 if defined $1; + local @r = split(/\s+/, $l, 6); + if ($#r > -1) { + local $zone = shift @r; + + # split out parent if it is present in the zone field + local $parent; + $zone =~ m/(.*?):(.*)/; + if (defined $2) { + $zone = $1; + $parent = $2; + } + else { + $parent = ""; + } + unshift @r, $zone, $parent; + + # put the saved comment back + if (defined $comment) { + # ensure option fields are present + while ($#r < 5) { + push @r, ""; + } + + # add the comment field + push @r, $comment; + } + } + return scalar(@r) ? \@r : undef; + } +else { + # Old format + local $l = $_[0]; + $l =~ s/#.*$//; + if ($l =~ /^(\S+)\s+(\S+)\s*(.*)/) { + return [ $1, $2, $3 ]; + } + else { + return undef; + } + } +} + +sub zones_columns +{ +return &new_zones_format() ? 4 : 3; +} + +# format a parsed row for display in list form +sub zones_row +{ +if (&new_zones_format()) { + return ( $_[0], $_[1], $text{'zones_'.$_[2]} || $_[2], $_[6] ); + } +else { + return @_; + } +} + +sub zones_colnames +{ +if (&new_zones_format()) { + return ( $text{'zones_0'}, $text{'zones_1new'}, $text{'zones_2new'}, +# The option fields are not displayed in the main list. +# $text{'zones_3new'}, $text{'zones_4new'}, $text{'zones_5new'}, + $text{'zones_6new'} ); + } +else { + return ( $text{'zones_0'}, $text{'zones_1'}, $text{'zones_2'} ); + } +} + +sub zones_form +{ +if (&new_zones_format()) { + # Shorewall 3 zones format + print " $text{'zones_0'}\n"; + print "",&ui_textbox("id", $_[0], 8),"\n"; + + print "$text{'zones_1new'}\n"; + print "\n"; + &zone_field("parent", $_[1], 0, 1); + print " \n"; + + print "$text{'zones_2new'}\n"; + print "",&ui_select("type", $_[2], + [ [ "ipv6", $text{'zones_ipv6'} ], + [ "ipsec", $text{'zones_ipsec'} ], + [ "firewall", $text{'zones_firewall'} ] ])," \n"; + + print " $text{'zones_3new'}\n"; + print "",&ui_textbox("opts", $_[3], 50)," \n"; + + print " $text{'zones_4new'}\n"; + print "",&ui_textbox("opts_in", $_[4], 50)," \n"; + + print " $text{'zones_5new'}\n"; + print "",&ui_textbox("opts_out", $_[5], 50)," \n"; + + print " $text{'zones_6new'}\n"; + print "",&ui_textbox("comment", $_[6], 50)," \n"; + + } +else { + # Shorewall 2 zones format + print " $text{'zones_0'}\n"; + print " \n"; + + print " $text{'zones_1'}\n"; + print " \n"; + + print " $text{'zones_2'}\n"; + print " \n"; + } +} + +sub zones_validate +{ +$in{'id'} =~ /^\S+$/ || &error($text{'zones_eid'}); +&is_fw($in{'id'}) && &error($text{'zones_efwid'}); +if (&new_zones_format()) { + # Parse new format + $in{'opts'} =~ /^\S*$/ || &error($text{'zones_eopts'}); + $in{'opts_in'} =~ /^\S*$/ || &error($text{'zones_eopts_in'}); + $in{'opts_out'} =~ /^\S*$/ || &error($text{'zones_eopts_out'}); + if (!defined $in{'parent'} || $in{'parent'} eq "-") { + return ( $in{'id'}, $in{'type'}, $in{'opts'}, + $in{'opts_in'}, $in{'opts_out'}, "# $in{'comment'}" ); + } + else { + return ( $in{'id'}.":".$in{'parent'}, $in{'type'}, $in{'opts'}, + $in{'opts_in'}, $in{'opts_out'}, "# $in{'comment'}" ); + } + } +else { + # Parse old format + $in{'name'} =~ /^\S+$/ || &error($text{'zones_ename'}); + $in{'desc'} =~ /\S/ || &error($text{'zones_edesc'}); + return ( $in{'id'}, $in{'name'}, $in{'desc'} ); + } +} + +################################# interfaces ################################### + +sub interfaces_row +{ +return ( $_[1], + $_[0] eq '-' ? $text{'list_any'} : $_[0], + $_[2] eq 'detect' ? $text{'list_auto'} : + $_[2] eq '-' || $_[2] eq '' ? $text{'list_none'} : $_[2], + $_[3] ? $_[3] : $text{'list_none'} ); +} + +@interfaces_opts = ( 'dhcp', 'noping', 'filterping', 'routestopped', 'norfc1918', + 'multi', 'routefilter', 'dropunclean', 'logunclean', + 'blacklist', 'maclist', 'tcpflags', 'proxyndp' ); +if (&version_atleast(3)) { + push(@interfaces_opts, "logmartians", "routeback", "ndp_filter", + "ndp_ignore", "nosmurfs", "detectnets", "upnp"); + } + +sub interfaces_form +{ +print " $text{'interfaces_0'}\n"; +print "\n"; + +local @ztable = &read_table_file("zones", \&zones_parser); +print "$text{'interfaces_1'}\n"; +print "\n"; +&zone_field("zone", $_[0], 0, 1); +print " \n"; + +local $bmode = $_[2] eq 'detect' ? 2 : + $_[2] eq '-' || $_[2] eq '' ? 1 : 0; +print " $text{'interfaces_2'} \n"; +printf " %s\n", + $bmode == 1 ? "checked" : "", $text{'list_none'}; +printf " %s\n", + $bmode == 2 ? "checked" : "", $text{'list_auto'}; +printf "\n", + $bmode == 0 ? "checked" : ""; +printf " \n", + $bmode == 0 ? $_[2] : ""; + +# options +local %opts = map { $_, 1 } split(/,/, $_[3]); +print " $text{'interfaces_3'} \n"; +&options_input("opts", $_[3], \@interfaces_opts); +print " \n"; +} + +sub interfaces_validate +{ +$in{'iface'} =~ /^[a-z]+\d*(\.\d+)?$/ || + $in{'iface'} =~ /^[a-z]+\+$/ || &error($text{'interfaces_eiface'}); +$in{'broad_mode'} || $in{'broad'} =~ /^[0-9\.,]+$/ || + &error($text{'interfaces_ebroad'}); +return ( $in{'zone'}, $in{'iface'}, + $in{'broad_mode'} == 2 ? 'detect' : + $in{'broad_mode'} == 1 ? '-' : $in{'broad'}, + join(",", split(/\0/, $in{'opts'})) ); +} + +################################# policy ####################################### + +sub policy_row +{ +return ( $_[0] eq 'all' ? $text{'list_any'} : + &is_fw($_[0]) ? $text{'list_fw'} : $_[0], + $_[1] eq 'all' ? $text{'list_any'} : + &is_fw($_[1]) ? $text{'list_fw'} : $_[1], + $_[2], $_[3] eq '-' || $_[3] eq '' ? $text{'list_none'} : $_[3], + $_[4] =~ /(\d+):(\d+)/ ? &text('policy_limit', "$1", "$2") + : $text{'list_none'} ); +} + +@policy_list = ( "ACCEPT", "DROP", "REJECT", "CONTINUE" ); + +sub policy_form +{ +local $found; + +print " $text{'policy_0'}\n"; +print "\n"; +&zone_field("source", $_[0], 0); +print "\n"; + +print "$text{'policy_1'}\n"; +print "\n"; +&zone_field("dest", $_[1], 0); +print " \n"; + +print " $text{'policy_2'}\n"; +print "\n"; + +print "$text{'policy_3'}\n"; +print " \n"; + +local ($l, $b) = $_[4] =~ /(\d+):(\d+)/ ? ($1, $2) : ( ); +print " $text{'policy_4'} \n"; +printf " %s\n", + $l eq '' ? "checked" : "", $text{'list_none'}; +printf "\n", + $l eq '' ? "" : "checked"; +print &text('policy_limit', + "", + "")," \n"; +} + +sub policy_validate +{ +&is_fw($in{'source'}) && &is_fw($in{'dest'}) && &error($text{'policy_efw'}); +if (!$in{'limit_def'}) { + $in{'limit'} =~ /^\d+$/ || &error($text{'policy_elimit'}); + $in{'burst'} =~ /^\d+$/ || &error($text{'policy_eburst'}); + } +return ( $in{'source'}, $in{'dest'}, $in{'policy'}, $in{'log'}, + $in{'limit_def'} ? ( ) : ( "$in{'limit'}:$in{'burst'}" ) ); +} + +################################# rules ####################################### + +sub rules_row +{ +return ( $_[0] =~ /^(\S+):/ ? "$1" : $_[0], + &is_fw($_[1]) ? $text{'list_fw'} : + $_[1] eq 'all' ? $text{'list_any'} : + $config{'display_zone_descriptions'} == 0 ? $_[1] : + $_[1] =~ /^([^:]+):(\S+)$/ ? + &text('rules_hosts', &convert_zone("$1"), &nice_host_list("$2")) : + &text('rules_zone', &convert_zone($_[1])), + &is_fw($_[2]) ? $text{'list_fw'} : + $_[2] eq 'all' ? $text{'list_any'} : + $_[2] =~ /^\d+$/ ? &text('rules_rport', $_[2]) : + $config{'display_zone_descriptions'} == 0 ? $_[2] : + $_[2] =~ /^([^:]+):(\S+)$/ ? + &text('rules_hosts', &convert_zone("$1"), &nice_host_list("$2")) : + &text('rules_zone', &convert_zone($_[2])), + $_[3] eq 'all' ? $text{'list_any'} : + $_[3] eq 'related' ? $text{'rules_related'} : uc($_[3]), + $_[3] eq 'all' || $_[3] eq 'related' ? "" : + $_[5] eq '-' || $_[5] eq '' ? $text{'list_any'} : $_[5], + $_[4] eq '-' || $_[4] eq '' ? "" : $_[4], + &version_atleast(1, 4, 7) ? ( + $_[7] eq "-" ? "" : $_[7], + $_[8] eq "-" ? "" : $_[8] ) : + ( ) + ); +} + +@rules_actions = ( 'ACCEPT', 'DROP', 'REJECT', 'DNAT', 'DNAT-', 'REDIRECT' ); +if (&version_atleast(2, 0, 0)) { + push(@rules_actions, 'CONTINUE'); + push(@rules_actions, 'ACCEPT+'); + push(@rules_actions, 'NONAT'); + push(@rules_actions, 'REDIRECT-'); + push(@rules_actions, 'LOG'); + } +if (&version_atleast(3)) { + push(@rules_actions, 'DNAT-'); + push(@rules_actions, 'SAME'); + push(@rules_actions, 'SAME-'); + push(@rules_actions, 'QUEUE'); + } +@rules_protos = ( 'all', 'related', 'tcp', 'udp', 'ipv6-icmp' ); + +sub rules_form +{ +local $found; +local @ztable = &read_table_file("zones", \&zones_parser); + +local ($action, $log) = split(/:/, $_[0]); +local $macroarg; +if ($action =~ /^(.*)\/(.*)$/) { + $action = $1; + $macroarg = $2; + } + +# Rule action +print " $text{'rules_0'}\n"; +print "\n"; + +# Logging level +print "$text{'rules_log'} \n"; + +if (&version_atleast(3)) { + print " $text{'rules_macro'}\n"; + print "\n"; + print &ui_select("macro", $macroarg, + [ [ "", "<$text{'rules_none2'}>" ], + map { [ $_ ] } (sort { $a cmp $b } @rules_actions) ], + 1, 0, $macroarg); + print " \n"; + } + +# Source zone and hosts +local ($zone, $host) = split(/:/, $_[1], 2); +print " $text{'rules_1z'}\n"; +print "\n"; +$found = &zone_field("source", $zone, 1); +printf "\n", + $found ? "" : $zone; + +print "
$text{'rules_inzone'}\n"; +printf " %s\n", + $host ? "checked" : "", $text{'rules_addr'}; +printf " \n", + join(" ", split(/,/, $host)); + +($zone, $host) = split(/:/, $_[2], 2); +print " $text{'rules_2z'}\n"; +print "\n"; +$found = &zone_field("dest", $zone, 1); +printf "\n", + $found ? "" : $zone; + +print "
$text{'rules_inzone'}\n"; +printf " %s\n", + $host ? "checked" : "", $text{'rules_addr'}; +printf "\n", + join(" ", split(/,/, $host)); +print "
$text{'rules_dnat_dest'} \n"; + +print " $text{'rules_3'}\n"; +print "\n"; +printf " \n", + $found ? "" : $_[3]; + +print " $text{'rules_4'} \n"; +printf " %s\n", + $_[5] eq '' || $_[5] eq '-' ? "checked" : "", $text{'list_any'}; +printf " %s\n", + $_[5] eq '' || $_[5] eq '-' ? "" : "checked", $text{'rules_ranges'}; +printf " \n", + $_[5] eq '' || $_[5] eq '-' ? "" : join(" ", split(/,/, $_[5])); + +print " $text{'rules_5'} \n"; +printf " %s\n", + $_[4] eq '' || $_[4] eq '-' ? "checked" : "", $text{'list_any'}; +printf " %s\n", + $_[4] eq '' || $_[4] eq '-' ? "" : "checked", $text{'rules_ranges'}; +printf "\n", + $_[4] eq '' || $_[4] eq '-' ? "" : join(" ", split(/,/, $_[4])); +print "
$text{'rules_dnat_port'} \n"; + +print " $text{'rules_dnat'} \n"; +printf " %s\n", + $_[6] eq '' || $_[6] eq '-' ? "checked" : "", $text{'list_none'}; +printf "\n", + $_[6] eq '' || $_[6] eq '-' ? "" : "checked"; +printf " \n", + $_[6] eq '' || $_[6] eq '-' ? "" : $_[6]; + +if (&version_atleast(1, 4, 7)) { + print " $text{'rules_rate'} \n"; + printf " %s\n", + $_[7] eq "-" || !$_[7] ? "checked" : "", $text{'rules_norate'}; + printf "\n", + $_[7] eq "-" || !$_[7] ? "" : "checked"; + printf " \n", + $_[7] eq "-" ? "" : $_[7]; + + print " $text{'rules_set'} \n"; + printf " %s\n", + $_[8] eq "-" || !$_[8] ? "checked" : "", $text{'rules_noset'}; + printf "\n", + $_[8] eq "-" || !$_[8] ? "" : "checked"; + printf " \n", + $_[8] eq "-" ? "" : $_[8]; + } +} + +sub rules_validate +{ +$in{'action'} !~ /----/ || &error($text{'rules_eaction'}); +$in{'source'} || $in{'sother'} =~ /^\S+$/ || &error($text{'rules_esother'}); +!$in{'sinzone_def'} || $in{'sinzone'} =~ /\S/ || &error($text{'rules_esinzone'}); +$in{'dest'} || $in{'dother'} =~ /^\S+$/ || &error($text{'rules_edother'}); +!$in{'dinzone_def'} || $in{'dinzone'} =~ /\S/ || &error($text{'rules_edinzone'}); +$in{'proto'} || $in{'pother'} =~ /^\S+$/ || &error($text{'rules_epother'}); +$in{'sport_def'} || $in{'sport'} =~ /\S/ || &error($text{'rules_esport'}); +$in{'dport_def'} || $in{'dport'} =~ /\S/ || &error($text{'rules_edport'}); +$in{'dnat_def'} || &check_ip6address($in{'dnat'}) || + ($in{'dnat'} =~ /^([0-9\.]+):([0-9\.]+)$/ && + &check_ip6address("$1") && &check_ip6address("$2")) || + ($in{'dnat'} =~ /^\!([0-9\.]+)$/ && &check_ip6address("$1")) || + ($in{'dnat'} =~ /^\!([0-9\.]+),([0-9\.]+)(\/\d+)?$/ && + &check_ip6address("$1") && &check_ip6address("$2")) || + ($in{'dnat'} =~ /^\!([0-9\.,]+)$/ && + scalar(grep { &check_ip6address($_) } split(/,/, $1))) || + &error($text{'rules_ednat'}); +$in{'action'} ne 'DNAT' && $in{'action'} ne 'REDIRECT' && $in{'action'} ne 'DNAT-' && + !$in{'dnat_def'} && &error($text{'rules_ednat2'}); + +$in{'sinzone'} =~ s/\s+/,/g; +$in{'dinzone'} =~ s/\s+/,/g; +$in{'sport'} =~ s/\s+/,/g; +$in{'dport'} =~ s/\s+/,/g; +if (&version_atleast(1, 4, 7)) { + $in{'rate_def'} || $in{'rate'} =~ /^\S+$/ || + &error($text{'rules_erate'}); + $in{'set_def'} || $in{'set'} =~ /^\S+$/ || + &error($text{'rules_eset'}); + } +if ($in{'macro'} && &indexof($in{'action'}, &list_standard_macros()) >= 0) { + $in{'action'} .= "/".$in{'macro'}; + $in{'proto'} = $in{'pother'} = undef; + } +return ( $in{'log'} ? "$in{'action'}:$in{'log'}" : $in{'action'}, + ($in{'source'} || $in{'sother'}). + ($in{'sinzone_def'} ? ":$in{'sinzone'}" : ""), + ($in{'dest'} || $in{'dother'}). + ($in{'dinzone_def'} ? ":$in{'dinzone'}" : ""), + $in{'proto'} || $in{'pother'} || '-', + $in{'dport_def'} ? "-" : $in{'dport'}, + $in{'sport_def'} ? "-" : $in{'sport'}, + $in{'dnat_def'} ? "-" : $in{'dnat'}, + &version_atleast(1, 4, 7) ? ( + ( $in{'rate_def'} ? "-" : $in{'rate'} ), + ( $in{'set_def'} ? "-" : $in{'set'} ) + ) : ( ) + ); +} + +sub rules_columns +{ +return &version_atleast(1, 4, 7) ? 6 : 8; +} + +################################# tos ######################################### + +%tos_map = ( 0, 'Normal-Service', + 2, 'Minimize-Cost', + 4, 'Maximize-Reliability', + 8, 'Maximize-Throughput', + 16, 'Minimize-Delay' ); +@tos_protos = ( 'tcp', 'udp', 'ipv6-icmp' ); + +sub tos_row +{ +return ( &is_fw($_[0]) ? $text{'list_fw'} : + $_[0] eq 'all' ? $text{'list_any'} : + $_[0] =~ /^([^:]+):(\S+)$/ ? &text('rules_hosts', "$1", "$2") : + &text('rules_zone', $_[0]), + &is_fw($_[1]) ? $text{'list_fw'} : + $_[1] eq 'all' ? $text{'list_any'} : + $_[1] =~ /^([^:]+):(\S+)$/ ? &text('rules_hosts', "$1", "$2") : + &text('rules_zone', $_[1]), + uc($_[2]), + $_[3] eq '-' || $_[3] eq '' ? $text{'list_any'} : $_[3], + $_[4] eq '-' || $_[4] eq '' ? $text{'list_any'} : $_[4], + $tos_map{$_[5]} || $_[5], + $_[6] eq '-' ? $text{'list_none'} : $_[6] ); +} + +sub tos_form +{ +local ($zone, $host) = split(/:/, $_[0], 2); +print " $text{'tos_0z'}\n"; +print "\n"; +$found = &zone_field("source", $zone, 1); +printf "\n", + $found ? "" : $zone; + +print "
$text{'rules_inzone'}\n"; +printf " %s\n", + $host ? "checked" : "", $text{'rules_addr'}; +printf " \n", + join(" ", split(/,/, $host)); + +($zone, $host) = split(/:/, $_[1], 2); +print " $text{'tos_1z'}\n"; +print "\n"; +$found = &zone_field("dest", $zone, 1); +printf "\n", + $found ? "" : $zone; + +print "
$text{'rules_inzone'}\n"; +printf " %s\n", + $host ? "checked" : "", $text{'rules_addr'}; +printf " \n", + join(" ", split(/,/, $host)); + +print " $text{'tos_2'}\n"; +print "\n"; +printf " \n", + $found ? "" : $_[2]; + +print " $text{'tos_3'} \n"; +printf " %s\n", + $_[3] eq '' || $_[3] eq '-' ? "checked" : "", $text{'list_any'}; +printf " %s\n", + $_[3] eq '' || $_[3] eq '-' ? "" : "checked", $text{'rules_ranges'}; +printf " \n", + $_[3] eq '' || $_[3] eq '-' ? "" : join(" ", split(/,/, $_[3])); + +print " $text{'tos_4'} \n"; +printf " %s\n", + $_[4] eq '' || $_[4] eq '-' ? "checked" : "", $text{'list_any'}; +printf " %s\n", + $_[4] eq '' || $_[4] eq '-' ? "" : "checked", $text{'rules_ranges'}; +printf " \n", + $_[4] eq '' || $_[4] eq '-' ? "" : join(" ", split(/,/, $_[4])); + +print " $text{'tos_5'}\n"; +print " \n"; + +print " $text{'tos_6'}\n"; +printf " \n", + $_[6] eq "-" ? "" : $_[6]; +} + +sub tos_validate +{ +$in{'source'} || $in{'sother'} =~ /^\S+$/ || &error($text{'rules_esother'}); +!$in{'sinzone_def'} || $in{'sinzone'} =~ /\S/ || &error($text{'rules_esinzone'}); +$in{'dest'} || $in{'dother'} =~ /^\S+$/ || &error($text{'rules_edother'}); +!$in{'dinzone_def'} || $in{'dinzone'} =~ /\S/ || &error($text{'rules_edinzone'}); +$in{'proto'} || $in{'pother'} =~ /^\S+$/ || &error($text{'rules_epother'}); +$in{'sport_def'} || $in{'sport'} =~ /\S/ || &error($text{'rules_esport'}); +$in{'dport_def'} || $in{'dport'} =~ /\S/ || &error($text{'rules_edport'}); +return ( ($in{'source'} || $in{'sother'}). + ($in{'sinzone_def'} ? ":$in{'sinzone'}" : ""), + ($in{'dest'} || $in{'dother'}). + ($in{'dinzone_def'} ? ":$in{'dinzone'}" : ""), + $in{'proto'} || $in{'pother'}, + $in{'sport_def'} ? "-" : join(",", split(/\s+/, $in{'sport'})), + $in{'dport_def'} ? "-" : join(",", split(/\s+/, $in{'dport'})), + $in{'tos'}, + $in{'mark'} || "-" ); +} + +################################# proxyndp ####################################### + +sub proxyndp_row +{ +return ( $_[0], + $_[1] eq '-' || $_[1] eq '' ? $text{'list_auto'} : $_[1], + $_[2], + &version_atleast(2, 0, 0) ? + ( $_[4] =~ /yes/i ? $text{'yes'} : $text{'no'} ) : ( ) ); +} + +sub proxyndp_form +{ +print " $text{'proxyndp_0'}\n"; +print "\n"; + +print "$text{'proxyndp_1'}\n"; +printf " %s\n", + $_[1] eq '-' || $_[1] eq '' ? "checked" : "", $text{'list_auto'}; +printf "\n", + $_[1] eq '-' || $_[1] eq '' ? "" : "checked"; +&iface_field("int", $_[1] eq '-' ? undef : $_[1]); +print " "; + +local $have = $_[3] =~ /yes/i; +print " $text{'proxyndp_have'}\n"; +printf " %s\n", + $have ? "checked" : "", $text{'yes'}; +printf " %s\n", + $have ? "" : "checked", $text{'no'}; + +print "$text{'proxyndp_2'}\n"; +print ""; +&iface_field("ext", $_[2]); +print " "; + +if (&version_atleast(2, 0, 0)) { + local $pers = $_[4] =~ /yes/i; + print " $text{'proxydnp_pers'}\n"; + printf " %s\n", + $pers ? "checked" : "", $text{'yes'}; + printf " %s\n", + $pers ? "" : "checked", $text{'no'}; + } +} + +sub proxydnp_validate +{ +&check_ip6address($in{'addr'}) || &error($text{'proxyndp_eaddr'}); +return ( $in{'addr'}, + $in{'int_def'} ? "-" : $in{'int'}, + $in{'ext'}, + $in{'have'} ? "yes" : "no", + &version_atleast(2, 0, 0) ? ( $in{'pers'} ? "yes" : "no" ) : ( ) + ); + +} + +sub proxyndp_columns +{ +return &version_atleast(2, 0, 0) ? 4 : 3; +} + +################################ routestopped ################################## + +sub routestopped_row +{ +return ( $_[0], $_[1], + $_[2] eq '-' || $_[2] eq '' ? $text{'default'} : $_[2], + $_[3] eq '-' || $_[3] eq '' ? $text{'tunnels_gnone'} : $_[3] ); +} + +sub routestopped_columns +{ +return 2; +} + +@routestopped_options = ( "routeback", "source", "dest", "critical" ); + +sub routestopped_form +{ +print " $text{'routestopped_0'}\n"; +print ""; +&iface_field("iface", $_[0]); +print "\n"; + +local $none = $_[1] eq '' || $_[1] eq '-' || $_[1] eq '0.0.0.0/0'; +print "$text{'routestopped_1'}\n"; +printf " %s
\n", + $none ? "checked" : "", $text{'routestopped_all'}; +printf " %s
\n", + $none ? "" : "checked", $text{'routestopped_list'}; +print " \n"; + +if (&version_atleast(3)) { + print " $text{'routestopped_2'}\n"; + print "\n"; + &options_input("opts", $_[2], \@routestopped_options); + print " \n"; + } +} + +sub routestopped_validate +{ +$in{'addr_def'} || $in{'addr'} =~ /\S/ || &error($text{'routestopped_eaddr'}); +return ( $in{'iface'}, + $in{'addr_def'} ? "-" : join(",", split(/\s+/, $in{'addr'})), + join(",", split(/\0/, $in{'opts'})) ); +} + +################################ tunnels ################################## + +sub tunnels_row +{ +local $tt = $_[0]; +$tt =~ s/^(openvpn|generic):.*$/$1/; +return ( $text{'tunnels_'.$tt} || $tt, + $_[1] eq '-' || $_[1] eq '' ? $text{'routestopped_all'} : $_[1], + $_[2], $_[3] ); +} + +sub tunnels_form +{ +print " $text{'tunnels_0'}\n"; +print "\n"; +print "\n"; +print "\n"; + +print " $text{'tunnels_1'}\n"; +print ""; +&zone_field("zone", $_[1], 0, 0); +print " \n"; + +local $none = $_[2] eq '' || $_[2] eq '-'; +print " $text{'tunnels_2'} \n"; +printf " %s\n", + $none ? "checked" : "", $text{'default'}; +printf " %s\n", + $none ? "" : "checked", $text{'tunnels_sel'}; +printf " \n", $_[2]; + +local $none = $_[2] eq '' || $_[2] eq '-'; +print " $text{'tunnels_3'} \n"; +printf " %s\n", + $none ? "checked" : "", $text{'tunnels_gnone'}; +printf " %s\n", + $none ? "" : "checked", $text{'tunnels_gsel'}; +printf " \n", + join(" ", split(/,/, $_[3])); +} + +sub tunnels_validate +{ +$in{'gateway_def'} || &check_ip6address($in{'gateway'}) || + ($in{'gateway'} =~ /^(\S+)\/(\d+)$/ && &check_ip6address($1)) || + &error($text{'tunnels_egateway'}); +if ($in{'type'} eq "openvpn") { + $in{'tport'} =~ /^\d*$/ || &error($text{'tunnels_eopenvpn'}); + $in{'type'} .= ":".$in{'tport'} if ($in{'tport'}); + } +elsif ($in{'type'} eq 'generic') { + $in{'tport'} =~ /^\S+$/ || &error($text{'tunnels_egeneric'}); + $in{'type'} .= ":".$in{'tport'}; + } +return ( $in{'type'}, $in{'zone'}, + $in{'gateway_def'} ? '-' : $in{'gateway'}, + $in{'gzones_def'} ? '-' : join(",", split(/\s+/, $in{'gzones'})) ); +} + +################################ hosts ################################## + +sub hosts_row +{ +return ( $_[0], $_[1] =~ /^(\S+):(\S+)$/ ? ( $1, $2 ) : ( undef, undef ) ); +} + +@host_options = ( "maclist", "routeback" ); +if (&version_atleast(3)) { + push(@host_options, "norfc1918", "blacklist", "tcpflags", + "nosmurfs", "ipsec"); + } + +sub hosts_form +{ +print " $text{'hosts_0'}\n"; +print ""; +&zone_field("zone", $_[0], 0, 2); +print " \n"; + +local ($iface, $net) = split(/:/, $_[1]); +print " $text{'hosts_1'}\n"; +print ""; +&iface_field("iface", $iface); +print " \n"; + +print " $text{'hosts_2'}\n"; +print " \n"; + +print " $text{'hosts_opts'} \n"; +&options_input("opts", $_[2], \@host_options); +print " \n"; +} + +sub hosts_validate +{ +&check_ip6address($in{'net'}) || + $in{'net'} =~ /^(\S+)\/(\d+)$/ && &check_ip6address($1) || + &error($text{'hosts_enet'}); +return ( $in{'zone'}, $in{'iface'}.":".$in{'net'}, + join(",", split(/\0/, $in{'opts'})) ); +} + +################################ blacklist ################################## + +sub blacklist_row +{ +return ( $_[0] eq '-' ? $text{'blacklist_any'} : $_[0], + uc($_[1]) || $text{'blacklist_any'}, + $_[2] || $text{'blacklist_any'} ); +} + +@blacklist_protos = ( undef, 'tcp', 'udp', 'ipv6-icmp' ); + +sub blacklist_form +{ +print " $text{'blacklist_host'} \n"; +local ($mode, $ipset, $mac, $ip); +if ($_[0] =~ /^\+(.*)/) { + $mode = 2; $ipset = $1; + } +elsif ($_[0] =~ /^\~(.*)$/) { + $mode = 1; $mac = $1; + } +elsif ($_[0] eq '-') { + $mode = 3; + } +else { + $mode = 0; $ip = $_[0]; + } +print &ui_radio("host_def", $mode, + [ [ 0, &text('hosts_ip', &ui_textbox("host", $ip, 30))."
" ], + [ 1, &text('hosts_mac', &ui_textbox("mac", $mac, 30))."
" ], + [ 3, $text{'hosts_any'}."
" ], + &version_atleast(3) ? + ( [ 2, &text('hosts_ipset', &ui_textbox("ipset", $ipset, 15)) ] ) : ( ), + ]); +print " \n"; + +print " $text{'blacklist_proto'}\n"; +print "\n"; +printf " \n", + $found ? "" : $_[1]; + +print " $text{'blacklist_ports'}\n"; +print " \n"; +} + +sub blacklist_validate +{ +local $host; +if ($in{'host_def'} == 0) { + &check_ip6address($in{'host'}) || + $in{'host'} =~ /^(\S+)\/(\d+)$/ && &check_ip6address($1) || + &error($text{'blacklist_ehost'}); + $host = $in{'host'}; + } +elsif ($in{'host_def'} == 1) { + $in{'mac'} =~ s/:/-/g; + $in{'mac'} =~ /^[0-9a-f]{2}(\-[0-9a-f]{2}){5}$/ || + &error($text{'blacklist_emac'}); + $host = "~".$in{'mac'}; + } +elsif ($in{'host_def'} == 2) { + $in{'ipset'} =~ /^\S+$/ || &error($text{'blacklist_eipset'}); + $host = "+".$in{'ipset'}; + } +elsif ($in{'host_def'} == 3) { + $host = "-"; + } +local $proto; +if ($in{'proto'} eq '*') { + $in{'pother'} =~ /^\d+$/ || + defined(getprotobyname($in{'pother'})) || + &error($text{'blacklist_eproto'}); + $proto = lc($in{'pother'}); + } +else { + $proto = lc($in{'proto'}); + } +if ($proto eq "tcp" || $proto eq "udp") { + $in{'ports'} =~ /^\S+$/ || &error($text{'blacklist_eports'}); + } +elsif ($in{'ports'}) { + &error($text{'blacklist_eports2'}); + } +return ( $host, $proto, $in{'ports'} ); +} + +################################ providers ################################## + +sub providers_row +{ +return ( $_[0], $_[1], $_[2], $_[4], $_[5] ); +} + +@providers_opts = ( "track", "balance", "loose" ); + +sub providers_form +{ +print " $text{'providers_name'}\n"; +print "\n"; + +print "$text{'providers_number'}\n"; +print " \n"; + +print " $text{'providers_iface'}\n"; +print ""; +&iface_field("iface", $_[4]); +print "\n"; + +print "$text{'providers_mark'}\n"; +print " \n"; + +print " $text{'providers_gateway'}\n"; +print "\n"; + +local $ddef = $_[3] eq "-" || $_[3] eq "" ? 0 : $_[3] eq "main" ? 1 : 2; +print "$text{'providers_dup'}\n"; +print "",&ui_radio("dup_def", $ddef, + [ [ 0, $text{'default'} ], + [ 1, $text{'providers_main'} ], + [ 2, &ui_textbox("dup", $ddef == 2 ? $_[3] : "", 5) ] ]), + " \n"; + +local %opts = map { $_, 1 } split(/,/, $_[6]); +print " $text{'providers_opts'} \n"; +foreach my $o (@providers_opts) { + print &ui_checkbox("opts", $o, $text{'providers_'.$o}, $opts{$o})."
\n"; + delete($opts{$o}); + } +foreach my $o (keys %opts) { + print &ui_hidden("opts", $o),"\n"; + } +print "\n"; + +print "$text{'providers_copy'}\n"; +print " \n"; +} + +sub providers_validate +{ +$in{'name'} =~ /^\S+$/ || &error($text{'providers_ename'}); +$in{'number'} =~ /^\d+$/ || &error($text{'providers_enumber'}); +$in{'mark'} =~ /^\d+$/ || &error($text{'providers_emark'}); +$in{'dup_def'} < 2 || $in{'dup'} =~ /^\S+$/ || &error($text{'providers_edup'}); +&check_ip6address($in{'gateway'}) || &error($text{'providers_egateway'}); +return ( $in{'name'}, $in{'number'}, $in{'mark'}, + $in{'dup_def'} == 0 ? '-' : $in{'dup_def'} == 1 ? 'main' : $in{'dup'}, + $in{'iface'}, $in{'gateway'}, + join(",", split(/\0/, $in{'opts'})) || "-", + $in{'copy'} || "-" ); +} + +################################ shorewall6.conf ################################## + +sub conf_form +{ + local ($msg1, $msg2, $msg3, $field1, $field2, $field3, $dummy) = @_; + + $field1 =~ s/"/"/g; + print "$msg1\n"; + print "\n"; + + $field2 =~ s/"/"/g; + print "$msg2\n"; + print "\n"; + + $field3 =~ s/"/"/g; + print "$msg3\n"; + print "\n"; + + print "\n"; +} + +################################ shorewall6.conf ################################## + +sub shorewall6_conf_columns +{ + return 3; +} + +sub shorewall6_conf_form +{ + &conf_form($text{'shorewall6_conf_0'}, $text{'shorewall6_conf_1'}, $text{'shorewall6_conf_2'}, @_); +} + +sub shorewall6_conf_validate +{ + &error($text{'shorewall6_conf_varname'}) unless $in{'var'} =~ /^\w+$/; + local $comment = ""; + $comment = "\t# ".$in{'comment'} if (exists $in{'comment'} and $in{'comment'} ne ""); + return ($in{'var'}.'='.$in{'val'}.$comment); +} + +################################ params ################################## + +sub params_columns +{ + return 3; +} + +sub params_form +{ + &conf_form($text{'params_0'}, $text{'params_1'}, $text{'params_2'}, @_); +} + +sub params_validate +{ + &error($text{'params_varname'}) unless $in{'var'} =~ /^\w+$/; + local $comment = ""; + $comment = "\t# ".$in{'comment'} if (exists $in{'comment'} and $in{'comment'} ne ""); + return ($in{'var'}.'='.$in{'val'}.$comment); +} + + +############################################################################# + +# can_access(file) +sub can_access +{ +if ($access{'files'} eq '*') { + return 1; + } +else { + local @acc = split(/\s+/, $access{'files'}); + return &indexof($_[0], @acc) >= 0; + } +} + +# run_before_apply_command() +# Runs the before-applying command, if any. If it failes, returns the error +# message output +sub run_before_apply_command +{ +if ($config{'before_apply_cmd'}) { + local $out = &backquote_logged("($config{'before_apply_cmd'}) &1"); + return $out if ($?); + } +return undef; +} + +# run_after_apply_command() +# Runs the after-applying command, if any +sub run_after_apply_command +{ +if ($config{'after_apply_cmd'}) { + &system_logged("($config{'after_apply_cmd'}) /dev/null 2>&1"); + } +} + +# list_standard_actions() +# Returns a list of standard Shorewall actions +sub list_standard_actions +{ +local @rv; +foreach my $a (split(/\t+/, $config{'actions'})) { + open(ACTIONS, $a); + while() { + s/\r|\n//g; + s/#.*$//; + s/\s+$//; + if (/\S/) { + push(@rv, $_); + } + } + close(ACTIONS); + } +if (&version_atleast(3)) { + # Add built-in actions + push(@rv, "allowBcast", "dropBcast", "dropNotSyn", "rejNotSyn", + "dropInvalid", "allowInvalid", "allowoutUPnP", "allowinUPnP", + "forwardUPnP"); + } +return &unique(@rv); +} + +# list_standard_macros() +# Returns a list of all macro. actions +sub list_standard_macros +{ +local @rv; +foreach my $a ($config{'config_dir'}, $config{'macros'}) { + opendir(DIR, $a); + foreach my $f (readdir(DIR)) { + push(@rv, $1) if ($f =~ /^macro\.(.*)$/); + } + closedir(DIR); + } +return &unique(@rv); +} + +$BETA_STR = "-Beta"; +$BETA_NUM = "\.0000\."; + +# get_shorewall6_version(nocache) +sub get_shorewall6_version +{ +local ($nocache) = @_; +local $version; +if (!$nocache && open(VERSION, "$module_config_directory/version")) { + chop($version = ); + close(VERSION); + } +if (!$version) { + local $out = `$config{'shorewall6'} version 2>&1`; + $out =~ s/\r//g; + $out =~ s/$BETA_STR/$BETA_NUM/i; # Convert beta string to version number. + if ($out =~ /(\n|^)([0-9\.]+)\n/) { + $version = $2; + } + } +return $version; +} + +sub get_printable_version($) +{ + local $out = $_[0]; + $out =~ s/$BETA_NUM/$BETA_STR/i; # Convert version number back to string. + return $out; +} + +sub list_protocols +{ +local @stdprotos = ( 'tcp', 'udp', 'ipv6-icmp' ); +local @otherprotos; +open(PROTOS, "/etc/protocols"); +while() { + s/\r|\n//g; + s/#.*$//; + push(@otherprotos, $1) if (/^(\S+)\s+(\d+)/); + } +close(PROTOS); +@otherprotos = sort { lc($a) cmp lc($b) } @otherprotos; +return &unique(@stdprotos, @otherprotos); +} + +# options_input(name, value, &opts) +sub options_input +{ +local ($name, $value, $opts) = @_; +local %opts = map { $_, 1 } split(/,/, $value); +print "\n"; +local $i = 0; +foreach my $o (@$opts) { + print "\n" if ($i%3 == 0); + printf "\n", + $o, $opts{$o} ? "checked" : "", $text{'opts_'.$o} || $o; + print "\n" if ($i%3 == 2); + delete($opts{$o}); + $i++; + } +foreach $o (keys %opts) { + print "\n"; + } +print "
%s
\n"; +} + +1; + diff --git a/shorewall6/start.cgi b/shorewall6/start.cgi new file mode 100755 index 000000000..653f6a64f --- /dev/null +++ b/shorewall6/start.cgi @@ -0,0 +1,21 @@ +#!/usr/bin/perl +# start.cgi +# Make the firewall active + +require './shorewall6-lib.pl'; +if ($access{'nochange'}) { + &redirect("/"); + exit 0; +} + +&error_setup($text{'start_err'}); +$err = &run_before_apply_command(); +&error($err) if ($err); +$out = &backquote_logged("$config{'shorewall6'} start 2>&1"); +if ($?) { + &error("
$out
"); + } +$err = &run_after_apply_command(); +&webmin_log("start"); +&redirect(""); + diff --git a/shorewall6/status.cgi b/shorewall6/status.cgi new file mode 100755 index 000000000..c3c028bd1 --- /dev/null +++ b/shorewall6/status.cgi @@ -0,0 +1,15 @@ +#!/usr/bin/perl +# status.cgi +# Show the status + +require './shorewall6-lib.pl'; +&ui_print_header(undef, $text{'status_title'}, ""); +print "
";
+open(STATUS, "$config{'shorewall6'} status 2>&1 |");
+while() {
+	print &html_escape($_);
+	}
+close(STATUS);
+print "
\n"; +&ui_print_footer("", $text{'index_return'}); + diff --git a/shorewall6/stop.cgi b/shorewall6/stop.cgi new file mode 100755 index 000000000..1b1a8083c --- /dev/null +++ b/shorewall6/stop.cgi @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# stop.cgi +# Shut down the firewall + +require './shorewall6-lib.pl'; +if ($access{'nochange'}) { + &redirect("/"); + exit 0; +} + +&error_setup($text{'stop_err'}); +$out = &backquote_logged("$config{'shorewall6'} stop 2>&1"); +if ($?) { + &error("
$out
"); + } +&webmin_log("stop"); +&redirect(""); + diff --git a/shorewall6/up.cgi b/shorewall6/up.cgi new file mode 100755 index 000000000..cae569a82 --- /dev/null +++ b/shorewall6/up.cgi @@ -0,0 +1,14 @@ +#!/usr/bin/perl +# up.cgi +# Move a row in a table up + +require './shorewall6-lib.pl'; +&ReadParse(); +&can_access($in{'table'}) || &error($text{'list_ecannot'}); +$pfunc = &get_parser_func(\%in); +&lock_table($in{'table'}); +&swap_table_rows($in{'table'}, $pfunc, $in{'idx'}, $in{'idx'}-1); +&unlock_table($in{'table'}); +&webmin_log('up', 'table', $in{'table'}); +&redirect("list.cgi?table=$in{'table'}"); +