]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Forward Firewall: redefined layout of customservicegroups and some layout changes
authorAlexander Marx <amarx@ipfire.org>
Fri, 1 Feb 2013 12:18:15 +0000 (13:18 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 9 Aug 2013 12:08:17 +0000 (14:08 +0200)
html/cgi-bin/fwhosts.cgi
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl

index 02630526a712620778029ae2a0b3d7f8bcc27d12..88c32c4cc337f9bbbc4697c7965056fe8c8e6679 100755 (executable)
@@ -800,9 +800,8 @@ if ($fwhostsettings{'ACTION'} eq 'saveservicegrp')
                $customservicegrp{$key}[0] = $fwhostsettings{'SRVGRP_NAME'};
                $customservicegrp{$key}[1] = $fwhostsettings{'SRVGRP_REMARK'};
                $customservicegrp{$key}[2] = $fwhostsettings{'CUST_SRV'};
-               $customservicegrp{$key}[3] = $port;
-               $customservicegrp{$key}[4] = $prot;
-               $customservicegrp{$key}[5] = $count;
+               $customservicegrp{$key}[3] = $count;
+               
                &General::writehasharray("$configsrvgrp", \%customservicegrp );
                $fwhostsettings{'updatesrvgrp'}='on';
        }
@@ -1359,7 +1358,7 @@ END
                                print" <tr bgcolor='$color{'color20'}'>";
                        }
                        print<<END;
-                       <td width='40%'><form method='post'>$customnetwork{$key}[0]</td><td width=25%'>$customnetwork{$key}[1]</td><td width='25%'>$customnetwork{$key}[2]</td><td align='center'>$customnetwork{$key}[3] x</td>
+                       <td width='40%'><form method='post'>$customnetwork{$key}[0]</td><td width=25%'>$customnetwork{$key}[1]</td><td width='25%'>$customnetwork{$key}[2]</td><td align='center'>$customnetwork{$key}[3]x</td>
                        <td width='1%'><input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} />
                        <input type='hidden' name='ACTION' value='editnet'>
                        <input type='hidden' name='HOSTNAME' value='$customnetwork{$key}[0]' />
@@ -1402,7 +1401,7 @@ END
                        else{            print" <tr bgcolor='$color{'color20'}'>";}
                        my ($ip,$sub)=split(/\//,$customhost{$key}[2]);
                        print<<END;
-                       <td width='40%'><form method='post'>$customhost{$key}[0]</td><td width='50%'>$customhost{$key}[2]</td><td align='center'>$customhost{$key}[3] x</td>
+                       <td width='40%'><form method='post'>$customhost{$key}[0]</td><td width='50%'>$customhost{$key}[2]</td><td align='center'>$customhost{$key}[3]x</td>
                        <td width='1%'><input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} />
                        <input type='hidden' name='ACTION' value='edithost' />
                        <input type='hidden' name='HOSTNAME' value='$customhost{$key}[0]' />
@@ -1451,7 +1450,7 @@ sub viewtablegrp
                                if($count >=2){print"</table>";}
                                print "<br><b><u>$grpname</u></b> &nbsp &nbsp";
                                print " <b>$Lang::tr{'remark'}:</b>&nbsp $remark &nbsp " if ($remark ne '');
-                               print "<b>$Lang::tr{'used'}:</b> $customgrp{$key}[4] x";
+                               print "<b>$Lang::tr{'used'}:</b> $customgrp{$key}[4]x";
                                if($customgrp{$key}[4] == '0')
                                {
                                        print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} align='right' /><input type='hidden' name='grp_name' value='$grpname' ><input type='hidden' name='ACTION' value='delgrp'></form>";
@@ -1502,7 +1501,7 @@ sub viewtableservice
                        <table width='100%' border='0'>
                        <tr><td align='center'><b>$Lang::tr{'fwhost srv_name'}</td><td align='center'><b>$Lang::tr{'fwhost prot'}</td><td align='center'><b>$Lang::tr{'fwhost port'}</td><td align='center'><b>ICMP</td><td align='center'><b>$Lang::tr{'fwhost used'}</td><td></td><td width='3%'></td></tr>
 END
-               foreach my $key (sort {$a <=> $b} keys %customservice)
+               foreach my $key (sort { uc($customservice{$a}[0]) cmp uc($customservice{$b}[0])||  $a <=> $b } keys %customservice)
                {
                        $count++;
                        if ( ($fwhostsettings{'updatesrv'} eq 'on' || $fwhostsettings{'error'}) && $fwhostsettings{'SRV_NAME'} eq $customservice{$key}[0]) {
@@ -1537,9 +1536,12 @@ sub viewtableservicegrp
        my $grpname;
        my $remark;
        my $helper;
+       my $port;
+       my $protocol;
        if (! -z $configsrvgrp){
                &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust srvgrp'});
                &General::readhasharray("$configsrvgrp", \%customservicegrp);
+               &General::readhasharray("$configsrv", \%customservice);
                my $number= keys %customservicegrp;
                foreach my $key (sort { uc($customservicegrp{$a}[0]) cmp uc($customservicegrp{$b}[0])||  $a <=> $b } keys %customservicegrp){
                        $count++;
@@ -1549,8 +1551,8 @@ sub viewtableservicegrp
                                if($count >=2){print"</table>";}
                                print "<br><b><u>$grpname</u></b> &nbsp &nbsp ";
                                print "<b>$Lang::tr{'remark'}:</b>&nbsp $remark " if ($remark ne '');
-                               print "&nbsp <b>$Lang::tr{'used'}:</b> $customservicegrp{$key}[5] x";
-                               if($customservicegrp{$key}[5] == '0')
+                               print "&nbsp <b>$Lang::tr{'used'}:</b> $customservicegrp{$key}[3]x";
+                               if($customservicegrp{$key}[3] == '0')
                                {
                                        print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} align='right' /><input type='hidden' name='SRVGRP_NAME' value='$grpname' ><input type='hidden' name='ACTION' value='delservicegrp'></form>";
                                }
@@ -1559,13 +1561,21 @@ sub viewtableservicegrp
                        }
                        if( $fwhostsettings{'SRVGRP_NAME'} eq $customservicegrp{$key}[0]) {
                                print" <tr bgcolor='${Header::colouryellow}'>";
-                       }elsif ($count %2 == 0){
+                       }
+                       if ($count %2 == 0){
                                print"<tr bgcolor='$color{'color22'}'>";
                        }else{
                                print"<tr bgcolor='$color{'color20'}'>";
                        }
                        print "<td width='39%'>$customservicegrp{$key}[2]</td>";
-                       print"<td align='center'>$customservicegrp{$key}[3]</td><td align='center'>$customservicegrp{$key}[4]</td><td width='1%'><form method='post'>";
+                       foreach my $srv (sort keys %customservice){
+                               if ($customservicegrp{$key}[2] eq $customservice{$srv}[0]){
+                                       $protocol=$customservice{$srv}[2];
+                                       $port=$customservice{$srv}[1];
+                                       last;
+                               }
+                       }
+                       print"<td align='center'>$port</td><td align='center'>$protocol</td><td width='1%'><form method='post'>";
                        if ($number gt '1'){
                                print"<input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} />";
                        }
index 127db1e921ca8d609276a8482109d5b789a78348..d2c1f03838d1c472994ef2ee0933f4829565c0af 100644 (file)
 'download root certificate' => 'Root-Zertifikat herunterladen',
 'dpd action' => 'Aktion für Dead Peer Detection',
 'driver' => 'Treiber',
-'drop action' => 'Standardverhalten der Firewall in Modus1',
+'drop action' => 'Standardverhalten der Firewall in Modus "Blocked"',
 'drop input' => 'Verworfene Input Pakete loggen',
 'drop newnotsyn' => 'Verworfene New Not Syn Pakete loggen',
 'drop forward' => 'Verworfene Firewall-Pakete loggen',
 'fwdfw copy'                   => 'Kopieren',
 'fwdfw delete'                 => 'Löschen',
 'fwdfw edit'                   => 'Bearbeiten',
-'fwdfw err nosrc'              => 'Keine Quelle gewählt.',
-'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 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 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 nosrc'              => 'Keine Quelle gewählt',
+'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 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 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 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.',
-'fwdfw err time'               => 'Es muss mindestens ein Tag gewählt werden.',
+'fwdfw err tgt_mac'            => 'MAC Adressen können nicht als Ziel defininert werden',
+'fwdfw err tgt_grp'            => 'Ziel-Dienstgruppe ist leer',
+'fwdfw err time'               => 'Es muss mindestens ein Tag gewählt werden',
 'fwdfw from'                   => 'Von:',
-'fwdfw hint ip1'               => 'Die zuletzt erzeugte Regel wird vielleicht nicht aktiviert, weil Quelle und Ziel evtl im selben Netz sind.',
+'fwdfw hint ip1'               => 'Die zuletzt erzeugte Regel wird vielleicht nicht aktiviert, weil Quelle und Ziel evtl im selben Netz sind',
 'fwdfw hint ip2'               => 'Bitte überprüfen Sie ob diese Regel Sinn macht: ',
 'fwdfw ipsec network'  => 'IPsec Netzwerke:',
 'fwdfw log rule'               => 'Log Regel',
 '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 in Forward konfigurierten Regeln. Mit "Blockiert" werden alle Verbindungsversuche blockiert mit Ausnahme der in Forward erstellten Regeln. Außerdem werden hier der externe Zugang und der Zugriff auf die DMZ geregelt.',
+'fwdfw pol text'               => 'Standardverhalten für Verbindungen aus den lokalen Netzwerken. Bei "Zugelassen" werden sämtliche Verbindungen zugelassen mit Ausnahme der in Forward konfigurierten Regeln. Mit "Blockiert" werden alle Verbindungsversuche blockiert, mit Ausnahme der in Forward erstellten Regeln. Außerdem werden hier der externe Zugang und der Zugriff auf die DMZ geregelt.',
 'fwdfw reread'                 => 'Übernehmen',
 'fwdfw rules'                  => 'Regeln',
 'fwdfw rule action'    => 'Regel Aktion:',
 'fwhost cust srvgrp'   => 'Custom Dienstgruppen',
 'fwhost deleted'               => 'Gelöscht',
 'fwhost empty'                 => 'Keine Einträge vorhanden',
-'fwhost err addr'              => 'IP oder Subnetzmaske ungültig.',
-'fwhost err addrgrp'   => 'Bitte gruppenname angeben.',
-'fwhost err empty'             => 'Bitte alle Felder füllen.',
-'fwhost err grpexist'  => 'Gruppe existiert bereits.',
-'fwhost err groupempty'        => 'Gewählte Gruppe ist leer.',
-'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 addr'              => 'IP oder Subnetzmaske ungültig',
+'fwhost err addrgrp'   => 'Bitte gruppenname angeben',
+'fwhost err empty'             => 'Bitte alle Felder füllen',
+'fwhost err grpexist'  => 'Gruppe existiert bereits',
+'fwhost err groupempty'        => 'Gewählte Gruppe ist leer',
+'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 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 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.',
-'fwhost err ipmac'             => 'IP/MAC Addresse ungültig.',
-'fwhost err ipcheck'   => 'Diese IP Adresse wird bereits verwendet.',
-'fwhost err ipwithsub' => 'Bitte IP Adresse OHNE Subnetzmaske eingeben.',
-'fwhost err partofnet' => 'Dieses Netzwerk ist Teil eines bereits existierenden Netzwerks.', 
-'fwhost err port'              => 'Port muss gefüllt sein.',
-'fwhost err remark'            => 'Bemerkung ungültig. Erlaubte Zeichen: a-z, A-Z, 0-9 Leerzeichen und Bindestrich.',
+'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 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',
+'fwhost err ipmac'             => 'IP/MAC Addresse ungültig',
+'fwhost err ipcheck'   => 'Diese IP Adresse wird bereits verwendet',
+'fwhost err ipwithsub' => 'Bitte IP Adresse OHNE Subnetzmaske eingeben',
+'fwhost err partofnet' => 'Dieses Netzwerk ist Teil eines bereits existierenden Netzwerks', 
+'fwhost err port'              => 'Port muss gefüllt sein',
+'fwhost err remark'            => 'Bemerkung ungültig. Erlaubte Zeichen: a-z, A-Z, 0-9 Leerzeichen und Bindestrich',
 'fwhost err srvexist'  => 'Dieser Dienst ist bereits in der Gruppe',
-'fwhost err srv exists'        => 'Ein Service mit diesem Namen existiert bereits.',
-'fwhost err sub32'             => 'Bitte Host hinzufügen. Dieses Subnetz ist kein Netzwerk.',
+'fwhost err srv exists'        => 'Ein Service mit diesem Namen existiert bereits',
+'fwhost err sub32'             => 'Bitte Host hinzufügen. Dieses Subnetz ist kein Netzwerk',
 'fwhost green'                 => 'Grün',
 'fwhost hosts'                         => 'Firewall Hosts',
 'fwhost hint'                  => 'Hinweis',
index e8526e726a11cc9c34635d8fe8ffbc62205e1ea7..955d3cfbf6e04fa47956eab997432c37ffa68f8e 100644 (file)
 'download root certificate' => 'Download root certificate',
 'dpd action' => 'Dead Peer Detection action',
 'driver' => 'Driver',
-'drop action' => 'Default behaviour of firewall in mode 1',
+'drop action' => 'Default behaviour of firewall in mode "Blocked"',
 'drop input' => 'Log dropped input pakets',
 'drop newnotsyn' => 'Log dropped new not syn pakets',
 'drop forward' => 'Log dropped forward pakets',
 'fwdfw pol allow'              => 'Allowed',
 'fwdfw pol block'              => 'Blocked',
 'fwdfw pol title'              => 'Firewall default behavior',
-'fwdfw pol text'               => 'Default behavior for connections from local networks. "Allowed" allows all connections from local networks except the defined rules."Blocked" prohibits all connections except the defined ones.Also external access and connections to/from demilitarized zone are configurable here.',
+'fwdfw pol text'               => 'Default behavior for connections from local networks. "Allowed" allows all connections from local networks except the defined rules. "Blocked" prohibits all connections except the defined ones. Also external access and connections to/from the demilitarized zone are configurable here.',
 'fwdfw reread'                 => 'Apply',
 'fwdfw rules'                  => 'Rules',
 'fwdfw rule action'    => 'Rule action:',
 'fwhost ccdhost'               => 'OpenVPN clients:',
 'fwhost ccdnet'                        => 'OpenVPN networks:',
 'fwhost change'                        => 'Modify',
-'fwhost changeremark'  => 'You just modified the remark!',
+'fwhost changeremark'  => 'You just modified the remark',
 'fwhost cust addr'             => 'Custom addresses:',
 'fwhost cust grp'              => 'Custom groups:',
 'fwhost cust net'              => 'Custom networks:',
 'fwhost cust srvgrp'   => 'Custom servicegroups',
 'fwhost deleted'               => 'Deleted',
 'fwhost empty'                 => 'No entries by now',
-'fwhost err addr'              => 'Invalid IP or subnet!',
-'fwhost err addrgrp'   => 'Please provide a groupname!',
-'fwhost err empty'             => 'Please fill in all fields!',
-'fwhost err grpexist'  => 'Group already exists!',
-'fwhost err groupempty'        => 'Selected Group is empty!',
+'fwhost err addr'              => 'Invalid IP or subnet',
+'fwhost err addrgrp'   => 'Please provide a groupname',
+'fwhost err empty'             => 'Please fill in all fields',
+'fwhost err grpexist'  => 'Group already exists',
+'fwhost err groupempty'        => 'Selected Group is empty',
 '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 netexist'  => 'A network with this name already exists',
 'fwhost err net'               => 'Network IP already exists',
 'fwhost err mac'               => 'MAC address invalid',
-'fwhost err hostexist' => 'A host with this name already exists!',
-'fwhost err hostip'    => 'Net or broadcast not allowed!',
-'fwhost err hostorip'  => 'Name or IP 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 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.',
-'fwhost err ipmac'             => 'IP/MAC address invalid.',
-'fwhost err ipcheck'   => 'This IP address is already in use!',
+'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 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 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',
+'fwhost err ipmac'             => 'IP/MAC address invalid',
+'fwhost err ipcheck'   => 'This IP address is already in use',
 'fwhost err ipwithsub' => 'Please provide IP address WITHOUT subnetmask',
-'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 space and minus.',
+'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 space and minus',
 'fwhost err srvexist'  => 'Dieser Dienst ist bereits in der Gruppe',
-'fwhost err srv exists'        => 'A Service with this name already exists.',
-'fwhost err sub32'             => 'Please add single host. This subnet is no network!',
+'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',
 'fwhost hosts'                         => 'Firewall Hosts',
 'fwhost hint'                  => 'Note',
 'fwhost newgrp'                => 'Address grouping',
 'fwhost newservice'            => 'Service',
 'fwhost newservicegrp' => 'Service grouping',
-'fwhost macwarn'               => 'MAC addresses can not be used as target. Such addresses will be ignored!',
+'fwhost macwarn'               => 'MAC addresses can not be used as target. Such addresses will be ignored.',
 'fwhost menu'                  => 'Firewall Groups',
 'fwhost orange'                        => 'Orange',
 'fwhost ovpn_n2n'              => 'OpenVPN N-2-N',