Squid Proxy¶
Design Diagram¶
________ ________
|==|=====| |==|=====|
| | | | | |
| | | | | | .-,( ),-.
| | | | | | .-( )-.
| | | -------------> | | | --------->( internet )
| |====°| | |====°| '-( ).-'
|__|_____| |__|_____| '-.( ).-'
Internal Squid External Squid
Install Internal Squid¶
Replaced all text in command and config
Install squid version 4.x
echo "deb http://squid413.diladele.com/ubuntu/ <code_name> main" > /etc/apt/sources.list.d/squid4.list
apt-get update
apt-get install -y squid apache2-utils
Create new squid config, /etc/squid/squid.conf and restart squid
http_port 0.0.0.0:3128
max_filedesc 4096
dns_v4_first on
cache_peer <external_squid_ipaddress> parent 443 0 proxy-only no-digest tls sslflags=DONT_VERIFY_PEER round-robin default
coredump_dir /var/spool/squid
netdb_filename none
acl local src 127.0.0.1
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic children 5
auth_param basic realm Enter proxy password
auth_param basic credentialsttl 1 hour
acl KnownUsers proxy_auth REQUIRED
http_access allow KnownUsers
http_access deny all
forwarded_for off
#request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all
cache deny all
never_direct allow all
Create basic_auth password file for connecting proxy
Install External Squid¶
Install squid version 4.x
echo "deb http://squid413.diladele.com/ubuntu/ <code_name> main" > /etc/apt/sources.list.d/squid4.list
apt-get update
apt-get install -y squid
Create selfsign certificate
Create new squid config, /etc/squid/squid.conf and restart squid service
http_port 0.0.0.0:3128
https_port 0.0.0.0:443 tls-cert=/etc/squid/squid.crt tls-key=/etc/squid/squid.key
coredump_dir /var/spool/squid
max_filedesc 4096
dns_v4_first on
acl local src 127.0.0.1
acl internal src <internal_squid_ip>
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic children 5
auth_param basic realm Enter proxy password
auth_param basic credentialsttl 1 hour
acl KnownUsers proxy_auth REQUIRED
http_access allow internal
http_access allow KnownUsers
http_access deny all
forwarded_for off
#request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all
cache deny all