Viele CGIs geaendert, einige Proxy Dateien hinzugefuegt, iptables aus dem menu geschmissen

git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@612 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8
This commit is contained in:
maniacikarus
2007-06-06 17:09:21 +00:00
parent d10e55d104
commit 268292e730
16 changed files with 283 additions and 181 deletions

View File

@@ -60,9 +60,9 @@
'title' => "$Lang::tr{'sstraffic'}",
'enabled' => 1,
};
$substatus->{'73.iptables'} = {
'caption' => $Lang::tr{'iptable rules'},
'uri' => '/cgi-bin/iptables.cgi',
'title' => "$Lang::tr{'iptable rules'}",
$substatus->{'73.qos'} = {
'caption' => $Lang::tr{'qos graphs'},
'uri' => '/cgi-bin/qosgraphs.cgi',
'title' => "$Lang::tr{'qos graphs'}",
'enabled' => 1,
};

BIN
config/proxy/auth/msnt_auth Normal file

Binary file not shown.

BIN
config/proxy/auth/ncsa_auth Normal file

Binary file not shown.

BIN
config/proxy/auth/ntlm_auth Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

3
config/proxy/proxy.pac Normal file
View File

@@ -0,0 +1,3 @@
function FindProxyForURL(url, host)
{
}

View File

@@ -1311,6 +1311,7 @@ srv/web/ipfire/cgi-bin/pppsetup.cgi
srv/web/ipfire/cgi-bin/proxy.cgi
srv/web/ipfire/cgi-bin/proxygraphs.cgi
srv/web/ipfire/cgi-bin/qos.cgi
srv/web/ipfire/cgi-bin/qosgraph.cgi
srv/web/ipfire/cgi-bin/remote.cgi
srv/web/ipfire/cgi-bin/services.cgi
#srv/web/ipfire/cgi-bin/shaping.cgi

View File

@@ -363,3 +363,4 @@ WARNING: translation string unused: written sectors
WARNING: translation string unused: xtaccess bad transfert
WARNING: translation string unused: year
WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: qos graphs

View File

@@ -366,3 +366,4 @@ WARNING: translation string unused: weekly firewallhits
WARNING: translation string unused: written sectors
WARNING: translation string unused: year
WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: qos graphs

View File

@@ -2756,9 +2756,34 @@ END
;
if ($proxysettings{'ENABLE'} eq 'on')
{
print FILE "if (\n";
print FILE " (isInNet(myIpAddress(), \"$netsettings{'GREEN_NETADDRESS'}\", \"$netsettings{'GREEN_NETMASK'}\"))";
undef @templist;
if (-e "$acl_src_subnets") {
open(SUBNETS,"$acl_src_subnets");
@templist = <SUBNETS>;
close(SUBNETS);
}
foreach (@templist)
{
@temp = split(/\//);
if (
($temp[0] ne $netsettings{'GREEN_NETADDRESS'}) && ($temp[1] ne $netsettings{'GREEN_NETMASK'}) &&
($temp[0] ne $netsettings{'BLUE_NETADDRESS'}) && ($temp[1] ne $netsettings{'BLUE_NETMASK'})
)
{
chomp $temp[1];
print FILE " ||\n (isInNet(myIpAddress(), \"$temp[0]\", \"$temp[1]\"))";
}
}
print FILE "\n";
print FILE <<END
if (
(isInNet(myIpAddress(), "$netsettings{'GREEN_NETADDRESS'}", "$netsettings{'GREEN_NETMASK'}"))
)
return "PROXY $netsettings{'GREEN_ADDRESS'}:$proxysettings{'PROXY_PORT'}";
END

View File

@@ -488,76 +488,6 @@ elsif ($qossettings{'ACTION'} eq 'Statusinformationen')
&Header::closepage();
exit
}
elsif ($qossettings{'ACTION'} eq 'Grafische Auswertung')
{
open( FILE, "< $classfile" ) or die "Unable to read $classfile";
@classes = <FILE>;
close FILE;
open( FILE, "< $subclassfile" ) or die "Unable to read $subclassfile";
@subclasses = <FILE>;
close FILE;
&Header::openbox('100%', 'left', 'QoS Graphen');
print <<END
<table width='100%'> <tr><td align='center'><font color='red'>Diese Seite braucht je nach Geschwindigkeit des Computers laenger zum Laden.</font>
<tr><td align='center'><b>Klasse:</b>
END
;
foreach $classentry (sort @classes)
{
@classline = split( /\;/, $classentry );
$qossettings{'CLASS'}=$classline[1];
print <<END
<input type="button" onClick="swapVisibility('$qossettings{'CLASS'}')" value='$qossettings{'CLASS'}' />
END
;
}
print <<END
</table>
END
;
&Header::closebox();
foreach $classentry (sort @classes)
{
@classline = split( /\;/, $classentry );
$qossettings{'DEV'}=$classline[0];
$qossettings{'CLASS'}=$classline[1];
&gengraph($qossettings{'DEV'},$qossettings{'CLASS'});
print "<div id='$qossettings{'CLASS'}' style='display: none'>";
&Header::openbox('100%', 'center', "$qossettings{'CLASS'} ($qossettings{'DEV'})");
print <<END
<table>
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png' />
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-borrowed.png' />
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-bytes.png' />
END
;
foreach $subclassentry (sort @subclasses)
{
@subclassline = split( /\;/, $subclassentry );
if ($subclassline[1] eq $classline[1]) {
$qossettings{'DEV'}=$subclassline[0];
$qossettings{'SCLASS'}=$subclassline[2];
&gengraph($qossettings{'DEV'},$qossettings{'SCLASS'});
print <<END
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'SCLASS'}_$qossettings{'DEV'}-packets.png' />
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'SCLASS'}_$qossettings{'DEV'}-borrowed.png' />
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'SCLASS'}_$qossettings{'DEV'}-bytes.png' />
END
;
}
}
print "\t\t</table>";
&Header::closebox();
print "</div>\n";
}
print <<END
</table>
END
;
&Header::closebigbox();
&Header::closepage();
exit
}
elsif ($qossettings{'ACTION'} eq 'Parentklasse hinzufuegen')
{
&parentclass();
@@ -704,9 +634,8 @@ END
<table border='0' cellpadding='0' cellspacing='0'>
<tr><td><input type='submit' name='ACTION' value='Parentklasse hinzufuegen' />
<td><input type='submit' name='ACTION' value='Erweiterte Einstellungen' />
<tr><td><input type='submit' name='ACTION' value='Statusinformationen' />
<td><input type='submit' name='ACTION' value='Grafische Auswertung' />
</table>
<td><input type='submit' name='ACTION' value='Statusinformationen' />
</tr></table>
</form>
END
;
@@ -728,20 +657,12 @@ if ( ($qossettings{'DEFCLASS_INC'} eq '') || ($qossettings{'DEFCLASS_OUT'} eq ''
}
&Header::openbox('100%', 'center', $Lang::tr{'info'});
&overviewgraph($qossettings{'RED_DEV'});
&overviewgraph($qossettings{'IMQ_DEV'});
print <<END
<table>
<tr><td colspan='9' align='center' valign='middle'><img alt="" src='/images/addblue.gif' />&nbsp;Unterklasse hinzufuegen | <img alt="" src='/images/addgreen.gif' />&nbsp;Regel hinzufuegen | <img alt="" src='/images/edit.gif' />&nbsp;Bearbeiten | <img alt="" src='/images/delete.gif' />&nbsp;Loeschen &nbsp;
<tr><td colspan='9' align='right' valign='middle'><b>TOS-Bits:</b>&nbsp;&nbsp;<b>0</b> - Deaktiviert | <b>8</b> - Minimale Verzoegerung | <b>4</b> - Maximaler Durchsatz | <b>2</b> - Maximale Zuverlaessigkeit | <b>1</b> - Minimale Kosten &nbsp;
END
;
if (( -e "/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'RED_DEV'}.png") && ( -e "/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'IMQ_DEV'}.png")) {
print <<END
<tr><td colspan='9' align='center'><img alt="" src="/graphs/qos-graph-$qossettings{'RED_DEV'}.png" />
<tr><td colspan='9' align='center'><img alt="" src="/graphs/qos-graph-$qossettings{'IMQ_DEV'}.png" />
END
;}
print "\t</table>";
&Header::closebox();
@@ -1144,7 +1065,6 @@ sub showclasses {
@classline = split( /\;/, $classentry );
if ( $classline[0] eq $qossettings{'DEV'} )
{
gengraph($qossettings{'DEV'},$classline[1]);
&Header::openbox('100%', 'center', "Klasse: $classline[1]");
print <<END
<table border='0' width='100%' cellspacing='0'>
@@ -1348,10 +1268,6 @@ END
}
}
}
if ( -e "/srv/web/ipfire/html/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png") {
print <<END
<tr><td colspan='9' align='center'><img alt="" src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png' />
END
;
}
@@ -1400,7 +1316,6 @@ END
}
}
}
}
sub expert
{
@@ -1500,86 +1415,3 @@ sub validsubclass {
}
}
}
sub gengraph {
$qossettings{'DEV'} = shift;
$qossettings{'CLASS'} = shift;
my $ERROR="";
if ( $qossettings{'DEV'} eq $qossettings{'RED_DEV'} ) {
$qossettings{'CLASSPRFX'} = '1';
} else {
$qossettings{'CLASSPRFX'} = '2';
}
my $color=random_hex_color(6);
RRDs::graph ("/srv/web/ipfire/html/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png",
"--start", "-3240", "-aPNG", "-i", "-z",
"--alt-y-grid", "-w 600", "-h 150", "-r",
"--color", "SHADEA#EAE9EE",
"--color", "SHADEB#EAE9EE",
"--color", "BACK#FFFFFF",
"-t $qossettings{'CLASS'} ($qossettings{'DEV'})",
"DEF:pkts=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:pkts:AVERAGE",
"DEF:dropped=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:dropped:AVERAGE",
"DEF:overlimits=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:overlimits:AVERAGE",
"AREA:pkts$color:packets",
"GPRINT:pkts:LAST:total packets\\:%8.3lf %s packets\\j",
"LINE3:dropped#FF0000:dropped",
"GPRINT:dropped:LAST:dropped packets\\:%8.3lf %s packets\\j",
"LINE3:overlimits#0000FF:overlimits",
"GPRINT:overlimits:LAST:overlimits\\:%8.3lf %s packets\\j",
);
$ERROR = RRDs::error;
#print "$ERROR";
}
sub overviewgraph {
$qossettings{'DEV'} = shift;
if ( $qossettings{'DEV'} eq $qossettings{'RED_DEV'} ) {
$qossettings{'CLASSPRFX'} = '1';
} else {
$qossettings{'CLASSPRFX'} = '2';
}
my $ERROR="";
my $count="1";
my $color="#000000";
my @command=("/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'DEV'}.png",
"--start", "-3240", "-aPNG", "-i", "-z",
"--alt-y-grid", "-w 600", "-h 150", "-r",
"--color", "SHADEA#EAE9EE",
"--color", "SHADEB#EAE9EE",
"--color", "BACK#FFFFFF",
"-t Auslastung auf ($qossettings{'DEV'})"
);
open( FILE, "< $classfile" ) or die "Unable to read $classfile";
@classes = <FILE>;
close FILE;
foreach $classentry (sort @classes)
{
@classline = split( /\;/, $classentry );
if ( $classline[0] eq $qossettings{'DEV'} )
{
$color=random_hex_color(6);
push(@command, "DEF:$classline[1]=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bits:AVERAGE");
if ($count eq "1") {
push(@command, "AREA:$classline[1]$color:Klasse $classline[1] - $classline[8]\\j");
} else {
push(@command, "STACK:$classline[1]$color:Klasse $classline[1] - $classline[8]\\j");
}
$count++;
}
}
RRDs::graph (@command);
$ERROR = RRDs::error;
#print "$ERROR";
}
sub random_hex_color {
my $size = shift;
$size = 6 if $size !~ /^3|6$/;
my @hex = ( 0 .. 9, 'a' .. 'f' );
my @color;
push @color, @hex[rand(@hex)] for 1 .. $size;
return join('', '#', @color);
}

237
html/cgi-bin/qosgraph.cgi Normal file
View File

@@ -0,0 +1,237 @@
#!/usr/bin/perl
#
# SmoothWall CGIs
#
# This code is distributed under the terms of the GPL
#
# (c) The SmoothWall Team
#
#
use strict;
# enable only the following on debugging purpose
use warnings;
use CGI::Carp 'fatalsToBrowser';
require '/var/ipfire/general-functions.pl';
require "${General::swroot}/lang.pl";
require "${General::swroot}/header.pl";
require "${General::swroot}/graphs.pl";
#workaround to suppress a warning when a variable is used only once
my @dummy = ( ${Header::colourred} );
undef (@dummy);
my %qossettings = ();
my %checked = ();
my %netsettings = ();
my $message = '';
my $errormessage = "";
my $c = "";
my $direntry = "";
my $classentry = "";
my $subclassentry = "";
my $l7ruleentry = "";
my $portruleentry = "";
my $tosruleentry = "";
my @tmp = ();
my @classes = ();
my @subclasses = ();
my @l7rules = ();
my @portrules = ();
my @tosrules = ();
my @tmpline = ();
my @classline = ();
my @subclassline = ();
my @l7ruleline = ();
my @portruleline = ();
my @tosruleline = ();
my @proto = ();
my %selected= ();
my @checked = ();
my $classfile = "/var/ipfire/qos/classes";
my $subclassfile = "/var/ipfire/qos/subclasses";
my $level7file = "/var/ipfire/qos/level7config";
my $portfile = "/var/ipfire/qos/portconfig";
my $tosfile = "/var/ipfire/qos/tosconfig";
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
&overviewgraph($qossettings{'RED_DEV'});
&overviewgraph($qossettings{'IMQ_DEV'});
my %color = ();
my %mainsettings = ();
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
my %cgiparams=();
# Maps a nice printable name to the changing part of the pid file, which
# is also the name of the program
# Generate Graphs from rrd Data
&Graphs::updatecpugraph ("day");
&Graphs::updateloadgraph ("day");
&Header::showhttpheaders();
&Header::getcgihash(\%cgiparams);
&Header::openpage($Lang::tr{'status information'}, 1, '');
&Header::openbigbox('100%', 'left');
open( FILE, "< $classfile" ) or die "Unable to read $classfile";
@classes = <FILE>;
close FILE;
open( FILE, "< $subclassfile" ) or die "Unable to read $subclassfile";
@subclasses = <FILE>;
close FILE;
&Header::openbox('100%', 'left', 'QoS Graphen');
print <<END
<table width='100%'> <tr><td align='center'><font color='red'>Diese Seite braucht je nach Geschwindigkeit des Computers laenger zum Laden.</font>
<tr><td align='center'><b>Klasse:</b>
END
;
foreach $classentry (sort @classes)
{
@classline = split( /\;/, $classentry );
$qossettings{'CLASS'}=$classline[1];
print <<END
<input type="button" onClick="swapVisibility('$qossettings{'CLASS'}')" value='$qossettings{'CLASS'}' />
END
;
}
print <<END
</table>
END
;
&Header::closebox();
foreach $classentry (sort @classes)
{
@classline = split( /\;/, $classentry );
$qossettings{'DEV'}=$classline[0];
$qossettings{'CLASS'}=$classline[1];
&gengraph($qossettings{'DEV'},$qossettings{'CLASS'});
print "<div id='$qossettings{'CLASS'}' style='display: none'>";
&Header::openbox('100%', 'center', "$qossettings{'CLASS'} ($qossettings{'DEV'})");
print <<END
<table>
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png' />
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-borrowed.png' />
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-bytes.png' />
END
;
foreach $subclassentry (sort @subclasses)
{
@subclassline = split( /\;/, $subclassentry );
if ($subclassline[1] eq $classline[1]) {
$qossettings{'DEV'}=$subclassline[0];
$qossettings{'SCLASS'}=$subclassline[2];
&gengraph($qossettings{'DEV'},$qossettings{'SCLASS'});
print <<END
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'SCLASS'}_$qossettings{'DEV'}-packets.png' />
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'SCLASS'}_$qossettings{'DEV'}-borrowed.png' />
<tr><td colspan='2' align='center'><img src='/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'SCLASS'}_$qossettings{'DEV'}-bytes.png' />
END
;
}
}
print "\t\t</table>";
&Header::closebox();
print "</div>\n";
}
print <<END
</table>
END
;
if (( -e "/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'RED_DEV'}.png") && ( -e "/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'IMQ_DEV'}.png")) {
print <<END
<tr><td colspan='9' align='center'><img alt="" src="/graphs/qos-graph-$qossettings{'RED_DEV'}.png" />
<tr><td colspan='9' align='center'><img alt="" src="/graphs/qos-graph-$qossettings{'IMQ_DEV'}.png" />
END
;}
&Header::closebox();
&Header::closebigbox();
&Header::closepage();
sub gengraph {
$qossettings{'DEV'} = shift;
$qossettings{'CLASS'} = shift;
my $ERROR="";
if ( $qossettings{'DEV'} eq $qossettings{'RED_DEV'} ) {
$qossettings{'CLASSPRFX'} = '1';
} else {
$qossettings{'CLASSPRFX'} = '2';
}
my $color=random_hex_color(6);
RRDs::graph ("/srv/web/ipfire/html/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png",
"--start", "-3240", "-aPNG", "-i", "-z",
"--alt-y-grid", "-w 600", "-h 150", "-r",
"--color", "SHADEA#EAE9EE",
"--color", "SHADEB#EAE9EE",
"--color", "BACK#FFFFFF",
"-t $qossettings{'CLASS'} ($qossettings{'DEV'})",
"DEF:pkts=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:pkts:AVERAGE",
"DEF:dropped=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:dropped:AVERAGE",
"DEF:overlimits=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:overlimits:AVERAGE",
"AREA:pkts$color:packets",
"GPRINT:pkts:LAST:total packets\\:%8.3lf %s packets\\j",
"LINE3:dropped#FF0000:dropped",
"GPRINT:dropped:LAST:dropped packets\\:%8.3lf %s packets\\j",
"LINE3:overlimits#0000FF:overlimits",
"GPRINT:overlimits:LAST:overlimits\\:%8.3lf %s packets\\j",
);
}
sub overviewgraph {
$qossettings{'DEV'} = shift;
if ( $qossettings{'DEV'} eq $qossettings{'RED_DEV'} ) {
$qossettings{'CLASSPRFX'} = '1';
} else {
$qossettings{'CLASSPRFX'} = '2';
}
my $ERROR="";
my $count="1";
my $color="#000000";
my @command=("/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'DEV'}.png",
"--start", "-3240", "-aPNG", "-i", "-z",
"--alt-y-grid", "-w 600", "-h 150", "-r",
"--color", "SHADEA#EAE9EE",
"--color", "SHADEB#EAE9EE",
"--color", "BACK#FFFFFF",
"-t Auslastung auf ($qossettings{'DEV'})"
);
open( FILE, "< $classfile" ) or die "Unable to read $classfile";
@classes = <FILE>;
close FILE;
foreach $classentry (sort @classes)
{
@classline = split( /\;/, $classentry );
if ( $classline[0] eq $qossettings{'DEV'} )
{
$color=random_hex_color(6);
push(@command, "DEF:$classline[1]=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bits:AVERAGE");
if ($count eq "1") {
push(@command, "AREA:$classline[1]$color:Klasse $classline[1] - $classline[8]\\j");
} else {
push(@command, "STACK:$classline[1]$color:Klasse $classline[1] - $classline[8]\\j");
}
$count++;
}
}
RRDs::graph (@command);
}
sub random_hex_color {
my $size = shift;
$size = 6 if $size !~ /^3|6$/;
my @hex = ( 0 .. 9, 'a' .. 'f' );
my @color;
push @color, @hex[rand(@hex)] for 1 .. $size;
return join('', '#', @color);
}

View File

@@ -131,11 +131,6 @@ print <<END;
<input type='submit' name='ACTION' value='$Lang::tr{'update'}' />
</form>
</td>
<td width='5%' align='center'>
<form method='post' action='/cgi-bin/trafficadm.cgi'>
<input type='submit' name='ACTION' value='$Lang::tr{'net-traffic configuration'}' />
</form>
</td>
<td width='5%' align='center'>
<form method='post' action='/cgi-bin/traffics.cgi'>
<input type='submit' name='ACTION' value=' > ' />

View File

@@ -123,6 +123,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
chmod 775 /srv/web/ipfire/html/updatecache/download
chmod 775 /srv/web/ipfire/html/updatecache/metadata
chmod 755 /var/log/updatexlrator
chwon squid:squid /var/log/squid
mkdir /var/ipfire/proxy/advanced/auth
cp -f $(DIR_SRC)/config/proxy/auth /var/ipfire/proxy/advanced/auth
cp -f $(DIR_SRC)/config/proxy/proxy.pac /srv/web/ipfire/html/proxy.pac
chown nobody.nobody /srv/web/ipfire/html/proxy.pac
ln -f /srv/web/ipfire/html/proxy.pac /srv/web/ipfire/html//wpad.dat
@rm -rf $(DIR_APP)
@$(POSTBUILD)