squid
['installedpackages']['squid']['config']
echo "<pre>";
system("/bin/mkdir /usr/local/etc/squid");
system("/usr/sbin/pw adduser squid -s /bin/false");
system("/usr/sbin/pw addgroup squid");
$lancfg = $config['interfaces']['lan'];
$lanif = $lancfg['if'];
$lanip = $lancfg['ipaddr'];
$lansa = gen_subnet($lancfg['ipaddr'], $lancfg['subnet']);
$lansn = $lancfg['subnet'];
$netmask = "";
$fout = fopen("/usr/local/etc/squid/squid.conf","w");
fwrite($fout, "#\n");
fwrite($fout, "# This file was automatically generated by the pfSense package manager\n");
fwrite($fout, "#\n");
fwrite($fout, "http_port 3128\n");
fwrite($fout, "icp_port 0\n");
fwrite($fout, "acl localnet src " . $lansa . "/" . $lansn . "\n");
fwrite($fout, "acl all src " . $lansa . "/" . $lansn . "\n");
fwrite($fout, "acl localhost src 127.0.0.1/255.255.255.255\n");
fwrite($fout, "acl Safe_ports port 80 443 210 119 70 21 1025-65535\n");
fwrite($fout, "acl CONNECT method CONNECT\n");
fwrite($fout, "http_access allow localnet\n");
fwrite($fout, "http_access allow localhost\n");
fwrite($fout, "http_access deny !Safe_ports\n");
fwrite($fout, "http_access deny CONNECT\n");
fwrite($fout, "http_access deny all\n");
fwrite($fout, "visible_hostname pfSense\n");
fwrite($fout, "httpd_accel_host virtual\n");
fwrite($fout, "httpd_accel_port 80\n");
fwrite($fout, "httpd_accel_with_proxy on\n");
fwrite($fout, "httpd_accel_uses_host_header on\n");
fwrite($fout, "cache_effective_user squid\n");
fwrite($fout, "cache_effective_group squid\n");
fclose($fout);
$fout = fopen("/usr/local/etc/rc.d/squid.sh","w");
fwrite($fout, "#!/bin/sh\n");
fwrite($fout, "/usr/local/sbin/squid\n\n");
fclose($fout);
system("chmod a+x /usr/local/etc/rc.d/squid.sh");
system("/usr/bin/touch /usr/local/etc/squid/mime.conf");
system("/bin/mkdir /usr/local/squid");
system("/bin/mkdir /usr/local/squid/cache");
system("/bin/mkdir /usr/local/libexec/squid");
system("chown -R squid:squid /usr/local/squid");
system("chown -R squid:squid /usr/local/etc/squid");
system("chown -R squid:squid /usr/local/libexec/squid");
system("/usr/local/sbin/squid -z");
system("/usr/local/sbin/squid");
filter_configure();
exec("mv /var/db/pkg/squid* /tmp/");
filter_configure();
exec("mv /tmp/squid* /var/db/pkg/");
exec("rm -rf /usr/local/squid/");
exec("rm -rf /usr/local/etc/squid/");
exec("rm -rf /usr/local/libexec/squid/");
exec("/usr/sbin/pw deluser squid");
exec("/usr/sbin/pw delgroup squid");
/usr/local/sbin/squid
squid