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