From 3b2ad4a1bddd2185da6bd500be39ee19694399a7 Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Wed, 26 Jun 2013 07:38:15 +0200 Subject: [PATCH] Forward Firewall: moved "firewall default behaviour" from firewall page to firewall-options page. Some changes in languagefiles de and en. --- html/cgi-bin/forwardfw.cgi | 113 ++++++------------------------------- html/cgi-bin/optionsfw.cgi | 78 ++++++++++++++++++++++--- langs/de/cgi-bin/de.pl | 30 +++++----- langs/en/cgi-bin/en.pl | 22 ++++---- 4 files changed, 112 insertions(+), 131 deletions(-) diff --git a/html/cgi-bin/forwardfw.cgi b/html/cgi-bin/forwardfw.cgi index b45c06a8b..7e1f4f427 100755 --- a/html/cgi-bin/forwardfw.cgi +++ b/html/cgi-bin/forwardfw.cgi @@ -117,16 +117,6 @@ my @protocols; &Header::openbigbox('100%', 'center',$errormessage); #### ACTION ##### -if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'save'}) -{ - my $MODE = $fwdfwsettings{'POLICY'}; - my $MODE1 = $fwdfwsettings{'POLICY1'}; - %fwdfwsettings = (); - $fwdfwsettings{'POLICY'} = "$MODE"; - $fwdfwsettings{'POLICY1'} = "$MODE1"; - &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings); - &reread_rules; -} if ($fwdfwsettings{'ACTION'} eq 'saverule') { &General::readhasharray("$configfwdfw", \%configfwdfw); @@ -436,42 +426,6 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule') &base; } } -if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'reset'}) -{ - if($fwdfwsettings{'poltype'} eq 'forward'){ - &General::readhasharray("$configfwdfw", \%configfwdfw); - foreach my $key (sort keys %configfwdfw){ - &checkcounter($configfwdfw{$key}[3],$configfwdfw{$key}[4],,); - &checkcounter($configfwdfw{$key}[5],$configfwdfw{$key}[6],,); - &checkcounter($configfwdfw{$key}[14],$configfwdfw{$key}[15],,); - } - system("rm ${General::swroot}/forward/config"); - &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings); - unless (-e "${General::swroot}/forward/config") { system("touch ${General::swroot}/forward/config"); } - my $MODE1=$fwdfwsettings{'POLICY1'}; - %fwdfwsettings = (); - $fwdfwsettings{'POLICY'}='MODE2'; - $fwdfwsettings{'POLICY1'}=$MODE1; - &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings); - &reread_rules; - }else{ - &General::readhasharray("$configoutgoing", \%configoutgoingfw); - foreach my $key (sort keys %configoutgoingfw){ - &checkcounter($configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],,); - &checkcounter($configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],,); - &checkcounter($configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],,); - } - system("rm ${General::swroot}/forward/outgoing"); - &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings); - unless (-e "${General::swroot}/forward/outgoing") { system("touch ${General::swroot}/forward/outgoing"); } - my $MODE=$fwdfwsettings{'POLICY'}; - %fwdfwsettings = (); - $fwdfwsettings{'POLICY'}=$MODE; - $fwdfwsettings{'POLICY1'}='MODE2'; - &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings); - &reread_rules; - } -} if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw newrule'}) { &newrule; @@ -555,41 +509,6 @@ sub base &hint; &addrule; print "

"; - &Header::openbox('100%', 'center', $Lang::tr{'fwdfw pol title'}); - if ($fwdfwsettings{'POLICY'} eq 'MODE1'){ $selected{'POLICY'}{'MODE1'} = 'selected'; } else { $selected{'POLICY'}{'MODE1'} = ''; } - if ($fwdfwsettings{'POLICY'} eq 'MODE2'){ $selected{'POLICY'}{'MODE2'} = 'selected'; } else { $selected{'POLICY'}{'MODE2'} = ''; } - if ($fwdfwsettings{'POLICY1'} eq 'MODE1'){ $selected{'POLICY1'}{'MODE1'} = 'selected'; } else { $selected{'POLICY1'}{'MODE1'} = ''; } - if ($fwdfwsettings{'POLICY1'} eq 'MODE2'){ $selected{'POLICY1'}{'MODE2'} = 'selected'; } else { $selected{'POLICY1'}{'MODE2'} = ''; } -print < - - - - - "; - print "
FORWARD
$Lang::tr{'fwdfw pol text'}

- - -END - print "$Lang::tr{'outgoing firewall reset'}:
"; - print"

"; - print < - - - - - "; - print "
OUTGOING
$Lang::tr{'fwdfw pol text1'}

- - -END - print "$Lang::tr{'outgoing firewall reset'}:
"; - &Header::closebox(); print "

Version: $VERSION
"; } sub changerule @@ -1189,7 +1108,10 @@ END next if($defaultNetworks{$network}{'NAME'} eq "IPFire" && $srctgt eq 'tgt'); print ""; + my $defnet="$defaultNetworks{$network}{'NAME'}_NETADDRESS"; + $ifaces{$defnet} = '0.0.0.0' if ($defaultNetworks{$network}{'NAME'} eq 'ALL'); + $defnet = "RED_ADDRESS" if ($defaultNetworks{$network}{'NAME'} eq 'IPFire'); + print ">$network $ifaces{$defnet} "; } print""; #custom networks @@ -1751,14 +1673,14 @@ END &Header::openbox('100%', 'left', $Lang::tr{'fwdfw target'}); print< - $Lang::tr{'fwdfw targetip'}IPFire + $Lang::tr{'fwdfw targetip'}Firewall END print""; } #REMARK - if (($optionsfw{'SHOWREMARK'} eq 'on' && $$hash{$key}[16] ne '') || $$hash{$key}[18] eq 'ON'){ + if ($optionsfw{'SHOWREMARK'} eq 'on' && $$hash{$key}[16] ne ''){ print""; - print"   $$hash{$key}[16]"; + print"   $$hash{$key}[16]"; + } + if ($$hash{$key}[18] eq 'ON'){ #TIMEFRAME if ($$hash{$key}[18] eq 'ON'){ my @days=(); @@ -2562,11 +2486,10 @@ END if($$hash{$key}[25] ne ''){push (@days,$Lang::tr{'fwdfw wd_sun'});} my $weekdays=join(",",@days); if (@days){ - print"$weekdays   $$hash{$key}[26] - $$hash{$key}[27] "; - } - }else{ - print"24/7"; + print""; + print" $weekdays   $$hash{$key}[26] - $$hash{$key}[27] "; } + } } print""; } @@ -2581,7 +2504,5 @@ END } } } - - &Header::closebigbox(); &Header::closepage(); diff --git a/html/cgi-bin/optionsfw.cgi b/html/cgi-bin/optionsfw.cgi index 9e39fbfd3..616f52964 100644 --- a/html/cgi-bin/optionsfw.cgi +++ b/html/cgi-bin/optionsfw.cgi @@ -27,6 +27,13 @@ my %checked =(); # Checkbox manipulations my $filename = "${General::swroot}/optionsfw/settings"; our %settings=(); +my %fwdfwsettings=(); +my %configfwdfw=(); +my %configoutgoingfw=(); + +my $configfwdfw = "${General::swroot}/forward/config"; +my $configoutgoing = "${General::swroot}/forward/outgoing"; + $settings{'DISABLEPING'} = 'NO'; $settings{'DROPNEWNOTSYN'} = 'on'; $settings{'DROPINPUT'} = 'on'; @@ -43,22 +50,43 @@ $settings{'SHOWDROPDOWN'} = 'off'; my $errormessage = ''; my $warnmessage = ''; +&General::readhash("${General::swroot}/forward/settings", \%fwdfwsettings); + &Header::showhttpheaders(); #Get GUI values &Header::getcgihash(\%settings); + + if ($settings{'ACTION'} eq $Lang::tr{'save'}) { - - $errormessage = $Lang::tr{'new optionsfw later'}; - delete $settings{'__CGI__'}; - delete $settings{'x'}; - delete $settings{'y'}; - &General::writehash($filename, \%settings); # Save good settings + if ($settings{'defpol'} ne '1'){ + $errormessage = $Lang::tr{'new optionsfw later'}; + delete $settings{'__CGI__'}; + delete $settings{'x'}; + delete $settings{'y'}; + &General::writehash($filename, \%settings); # Save good settings + system("/usr/local/bin/forwardfwctrl"); + }else{ + if ($settings{'POLICY'} ne ''){ + $fwdfwsettings{'POLICY'} = $settings{'POLICY'}; + } + if ($settings{'POLICY1'} ne ''){ + $fwdfwsettings{'POLICY1'} = $settings{'POLICY1'}; + } + my $MODE = $fwdfwsettings{'POLICY'}; + my $MODE1 = $fwdfwsettings{'POLICY1'}; + %fwdfwsettings = (); + $fwdfwsettings{'POLICY'} = "$MODE"; + $fwdfwsettings{'POLICY1'} = "$MODE1"; + &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings); + &General::readhash("${General::swroot}/forward/settings", \%fwdfwsettings); + system("/usr/local/bin/forwardfwctrl"); + } }else { &General::readhash($filename, \%settings); # Get saved settings and reset to good if needed - } - system("/usr/local/bin/forwardfwctrl"); +} + &Header::openpage($Lang::tr{'options fw'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); @@ -111,7 +139,6 @@ $selected{'FWPOLICY'}{$settings{'FWPOLICY'}}= 'selected'; $selected{'FWPOLICY1'}{$settings{'FWPOLICY1'}}= 'selected'; $selected{'FWPOLICY2'}{$settings{'FWPOLICY2'}}= 'selected'; - &Header::openbox('100%', 'center', $Lang::tr{'options fw'}); print "
"; @@ -182,5 +209,38 @@ print < + + + + + +END + print "
FORWARD
$Lang::tr{'fwdfw pol text'}

+
"; + print"

"; + print < + + + + + +END + print "
OUTGOING
$Lang::tr{'fwdfw pol text1'}

+
"; + &Header::closebox(); + &Header::closebigbox(); &Header::closepage(); diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index 744d1b39a..9587258f9 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -899,26 +899,26 @@ 'fwdfw cust net' => 'Custom Netzwerke:', 'fwdfw copy' => 'Kopieren', 'fwdfw delete' => 'Löschen', -'fwdfw dnat' => 'DNAT/Portforward (ersetze diese IP mit der aus ZIEL)', +'fwdfw dnat' => 'DNAT/Portforward (ersetze diese IP Adresse mit der aus ZIEL)', 'fwdfw dnat error' => 'Für DNAT muss ein einzelner Host als ZIEL gewählt werden. Gruppen oder Netzwerke sind nicht erlaubt', 'fwdfw dnat porterr' => 'Für NAT muss ein einzelner PORT oder PORTRANGE (TCP/UDP) angegeben werden', 'fwdfw DROP' => 'Verwerfen (DROP)', 'fwdfw edit' => 'Bearbeiten', 'fwdfw err nosrc' => 'Keine Quelle gewählt', -'fwdfw err nosrcip' => 'Bitte Quell IP-Adresse angeben', +'fwdfw err nosrcip' => 'Bitte Quell IP Adresse angeben', 'fwdfw err notgt' => 'Kein Ziel gewählt', -'fwdfw err notgtip' => 'Bitte Ziel IP-Adresse angeben', +'fwdfw err notgtip' => 'Bitte Ziel IP Adresse angeben', 'fwdfw err prot' => 'Quell- und Zielprotokoll müssen gleich sein', 'fwdfw err remark' => 'Bemerkung enthält ungültige Zeichen', 'fwdfw err ruleexists' => 'Eine identische Regel existiert bereits', -'fwdfw err src_addr' => 'Quell-MAC/IP ungültig', -'fwdfw err srcovpn' => 'Quell-IP ist ein OpenVPN Client. Bitte Dropdown zum Auswählen nutzen', +'fwdfw err src_addr' => 'Quell-MAC/IP Adresse ungültig', +'fwdfw err srcovpn' => 'Quell-IP Adresse ist ein OpenVPN Client. Bitte Dropdown zum Auswählen nutzen', 'fwdfw err same' => 'Quelle und Ziel sind identisch', 'fwdfw err samesub' => 'Quell und Ziel IP Adresse im selben Subnetz', 'fwdfw err srcport' => 'Bitte Quellport angeben', 'fwdfw err tgtport' => 'Bitte Zielport angeben', -'fwdfw err tgt_addr' => 'Ziel-IP ungültig', -'fwdfw err tgtovpn' => 'Ziel-IP ist ein OpenVPN Client. Bitte Dropdown zum Auswählen nutzen', +'fwdfw err tgt_addr' => 'Ziel-IP Adresse ungültig', +'fwdfw err tgtovpn' => 'Ziel-IP Adresse ist ein OpenVPN Client. Bitte Dropdown zum Auswählen nutzen', 'fwdfw err tgt_port' => 'Ziel Port ungültig', 'fwdfw err tgt_mac' => 'MAC Adressen können nicht als Ziel defininert werden', 'fwdfw err tgt_grp' => 'Ziel-Dienstgruppe ist leer', @@ -935,8 +935,8 @@ 'fwdfw pol allow' => 'Zugelassen', 'fwdfw pol block' => 'Blockiert', 'fwdfw pol title' => 'Standardverhalten der Firewall', -'fwdfw pol text' => 'Standardverhalten für Verbindungen aus den lokalen Netzwerken. Bei "Zugelassen" werden sämtliche Verbindungen zugelassen mit Ausnahme der konfigurierten Regeln. Mit "Blockiert" werden alle Verbindungsversuche blockiert, mit Ausnahme erstellten Regeln. Außerdem werden hier der externe Zugang und der Zugriff auf die DMZ geregelt.', -'fwdfw pol text1' => 'Standardverhalten für Verbindungen von IPFire. Bei "Zugelassen" werden sämtliche Verbindungen zugelassen mit Ausnahme konfigurierten Regeln. Mit "Blockiert" werden alle Verbindungsversuche blockiert, mit Ausnahme der erstellten Regeln.Achtung! Mit diesen Einstellungen kann man sich aussperren. Normalerweise ist keine Änderung nötig.', +'fwdfw pol text' => 'Standardverhalten für Verbindungen aus den lokalen Netzwerken. Bei "Zugelassen" werden sämtliche Verbindungen zugelassen mit Ausnahme der konfigurierten Regeln. Mit "Blockiert" werden alle Verbindungsversuche blockiert, mit Ausnahme erstellten Regeln.', +'fwdfw pol text1' => 'Standardverhalten für Verbindungen von Firewall. Bei "Zugelassen" werden sämtliche Verbindungen zugelassen mit Ausnahme konfigurierten Regeln. Mit "Blockiert" werden alle Verbindungsversuche blockiert, mit Ausnahme der erstellten Regeln.Achtung! Mit diesen Einstellungen kann man sich aussperren. Normalerweise ist keine Änderung nötig.', 'fwdfw red' => 'INTERNET', 'fwdfw REJECT' => 'Verweigern (REJECT)', 'fwdfw reread' => 'Übernehmen', @@ -946,10 +946,10 @@ 'fwdfw rulepos' => 'Regelposition', 'fwdfw snat' => 'SNAT (ersetze die Adresse(n) von QUELLE mit dieser)', 'fwdfw source' => 'Quelle', -'fwdfw sourceip' => 'Quelladresse (MAC, IP oder Netzwerk):', +'fwdfw sourceip' => 'Quelladresse (MAC, IP Adresse oder Netzwerk):', 'fwdfw std network' => 'Standard Netzwerke:', 'fwdfw target' => 'Ziel', -'fwdfw targetip' => 'Zieladresse (IP oder Netzwerk):', +'fwdfw targetip' => 'Zieladresse (IP Adresse oder Netzwerk):', 'fwdfw till' => 'Bis:', 'fwdfw time' => 'Zeitrahmen', 'fwdfw timeframe' => 'Zeitrahmen hinzufügen', @@ -989,7 +989,7 @@ 'fwhost cust srvgrp' => 'Custom Dienstgruppen', 'fwhost deleted' => 'Gelöscht', 'fwhost empty' => 'Keine Regeln definiert', -'fwhost err addr' => 'IP oder Subnetzmaske ungültig', +'fwhost err addr' => 'IP Adresse oder Subnetzmaske ungültig', 'fwhost err addrgrp' => 'Bitte gruppenname angeben', 'fwhost err empty' => 'Bitte alle Felder füllen', 'fwhost err grpexist' => 'Gruppe existiert bereits', @@ -997,14 +997,14 @@ 'fwhost err name' => 'Name ungültig. Erlaubte Zeichen: a-z, A-Z, 0-9 Leerzeichen und Bindestrich', 'fwhost err name1' => 'Name muss gefüllt sein', 'fwhost err netexist' => 'Ein Netz mit diesem Namen existiert bereits', -'fwhost err net' => 'Netzwerk IP existiert bereits', +'fwhost err net' => 'Netzwerk IP Adresse existiert bereits', 'fwhost err mac' => 'MAC Adresse ungültig', 'fwhost err hostexist' => 'Ein Host mit diesem Namen existiert bereits', 'fwhost err hostip' => 'Netz- oder Broadcastadressen sind nicht erlaubt', 'fwhost err hostorip' => 'Name oder IP Adresse ungültig', 'fwhost err isccdhost' => 'Dieser Name wird bereits für einen Openvpn Host verwendet', -'fwhost err isccdipnet' => 'Diese IP wird bereits für einen Openvpn Netzwerk verwendet', -'fwhost err isccdiphost'=> 'Diese IP wird bereits für einen Openvpn Host verwendet', +'fwhost err isccdipnet' => 'Diese IP Adresse wird bereits für einen Openvpn Netzwerk verwendet', +'fwhost err isccdiphost'=> 'Diese IP Adresse wird bereits für einen Openvpn Host verwendet', 'fwhost err isccdnet' => 'Dieser Name wird bereits für einen Openvpn Netzwerk verwendet', 'fwhost err isingrp' => 'Dieser Eintrag existiert bereits in der Gruppe', 'fwhost err ip' => 'IP Addresse ungültig', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index d4bdfcd98..d66c202c5 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -924,7 +924,7 @@ 'fwdfw cust net' => 'Custom networks:', 'fwdfw copy' => 'Copy', 'fwdfw delete' => 'Delete', -'fwdfw dnat' => 'DNAT/Portforward (replace this IP with the one from TARGET)', +'fwdfw dnat' => 'DNAT/Portforward (replace this IP address with the one from TARGET)', 'fwdfw dnat error' => 'You have to select a single host for DNAT. Groups or networks are not allowed.', 'fwdfw dnat porterr' => 'You have to select a single port or portrange (tcp/udp) for NAT', 'fwdfw DROP' => 'DROP', @@ -937,13 +937,13 @@ 'fwdfw err remark' => 'Invalid chars in remark.', 'fwdfw err ruleexists' => 'This rule already exists.', 'fwdfw err src_addr' => 'Invalid source MAC/IP.', -'fwdfw err srcovpn' => 'Source-IP is an OpenVPN client. Please use dropdown for selection', +'fwdfw err srcovpn' => 'Source-IP address is an OpenVPN client. Please use dropdown for selection', 'fwdfw err same' => 'Identical source and target', 'fwdfw err samesub' => 'Source and target IP adress are in same subnet.', 'fwdfw err srcport' => 'Please provide source port.', 'fwdfw err tgtport' => 'Please provide target port.', 'fwdfw err tgt_addr' => 'Invalid target IP-address.', -'fwdfw err tgtovpn' => 'Target-IP is an OpenVPN client. Please use dropdown for selection', +'fwdfw err tgtovpn' => 'Target-IP address is an OpenVPN client. Please use dropdown for selection', 'fwdfw err tgt_port' => 'Invalid target port', 'fwdfw err tgt_mac' => 'MAC addresses cannot be used as target.', 'fwdfw err tgt_grp' => 'Target servicegroup is empty', @@ -971,10 +971,10 @@ 'fwdfw rulepos' => 'Rule position', 'fwdfw snat' => 'SNAT (replace the addresse(s) from SOURCE with this address)', 'fwdfw source' => 'Source', -'fwdfw sourceip' => 'Source address (MAC, IP or Network):', +'fwdfw sourceip' => 'Source address (MAC, IP address or Network):', 'fwdfw std network' => 'Standard networks:', 'fwdfw target' => 'Target', -'fwdfw targetip' => 'Target address (IP or network):', +'fwdfw targetip' => 'Target address (IP address or network):', 'fwdfw till' => 'Till:', 'fwdfw time' => 'Timeframe', 'fwdfw timeframe' => 'Add timeframe', @@ -1014,7 +1014,7 @@ 'fwhost cust srvgrp' => 'Custom servicegroups', 'fwhost deleted' => 'Deleted', 'fwhost empty' => 'No rules defined', -'fwhost err addr' => 'Invalid IP or subnet', +'fwhost err addr' => 'Invalid IP address or subnet', 'fwhost err addrgrp' => 'Please provide a groupname', 'fwhost err empty' => 'Please fill in all fields', 'fwhost err grpexist' => 'Group already exists', @@ -1022,14 +1022,14 @@ 'fwhost err name' => 'Name invalid. Allowed: a-z, A-Z, 0-9 space and minus.', 'fwhost err name1' => 'Name is empty.', 'fwhost err netexist' => 'A network with this name already exists', -'fwhost err net' => 'Network IP already exists', +'fwhost err net' => 'Network IP address already exists', 'fwhost err mac' => 'MAC address invalid', 'fwhost err hostexist' => 'A host with this name already exists', 'fwhost err hostip' => 'Network or broadcast addresses not allowed', -'fwhost err hostorip' => 'Name or IP invalid', +'fwhost err hostorip' => 'Name or IP address invalid', 'fwhost err isccdhost' => 'This name is already used by an OpenVPN client', -'fwhost err isccdipnet' => 'This IP is already used by an OpenVPN network', -'fwhost err isccdiphost'=> 'This IP is already used by an OpenVPN client', +'fwhost err isccdipnet' => 'This IP address is already used by an OpenVPN network', +'fwhost err isccdiphost'=> 'This IP address is already used by an OpenVPN client', 'fwhost err isccdnet' => 'This name is already used by an OpenVPN Network', 'fwhost err isingrp' => 'This entry already exists in the group', 'fwhost err ip' => 'IP address invalid', @@ -1039,7 +1039,7 @@ 'fwhost err partofnet' => 'This network is part of an already existing one', 'fwhost err port' => 'Port is empty', 'fwhost err remark' => 'Remark invalid. Allowed: a-z, A-Z, 0-9 and -_();|.', -'fwhost err srvexist' => 'Dieser Dienst ist bereits in der Gruppe', +'fwhost err srvexist' => 'This service already exists in the group', 'fwhost err srv exists' => 'A Service with this name already exists', 'fwhost err sub32' => 'Please add single host. This subnet is no network', 'fwhost green' => 'Green', -- 2.39.2