[Ubuntu]Installing an HTTP proxy server (Squid)

Last update on October 31, 2008 08:37 AM by jak58
Published by jak58

Installing an HTTP proxy server (Squid)




1.Installing the proxy


To install Squid type the following command in a terminal:
sudo aptitude install squid

2.Configuring the proxy


Configuration of Squid is done through the editing of the following file: /etc/squid/squid.conf
To edit this file ,type Alt+F2 and enter the following command:

gksu gedit /etc/squid/squid.conf

2.1.Naming the proxy


Its important that Squid knows the name of the machine. To do this, locate the line visible_hostname.
For example, if the machine called ubuntu insert:

visible_hostname ubuntu

2.2 Choosing the Port


By default, the proxy server will use port 3128. To choose another port, locate the line:


http_port 3128


and change the port number, for example:

http_port 3177

2.3.Choosing the interface


By default the proxy server will listen on all interfaces. For security reasons, its better to put in on your local network only.
For example, if the network card connected to your LAN, has IP 10.0.0.1, change the line:

http_port 10.0.0.1:3177

2.4. Setting access rights and priorities


By default, nobody is allowed to connect to the proxy server. (Only from your machine itself)
A list of permissions must be created.

For example, we will define a group encompassing the local network.

Find the line beginning with acl localhost...
At the end of the section, add:

acl lanhome src 10.0.0.0/255.255.255.0


(lanhome is a random name chosen).


2.5. Authorizing access to group


Now that the group is defined, we will authorize to use the proxy.
Locate the line http_access allow ...
and add below (before the line http_access deny all):

http_access allow lanhome



2.6. Allow the use non-standard ports


By default, Squid allows HTTP traffic only on specific ports (80, etc.).
This can cause problems on websites using other ports.
Example: http://toto.com:81/images/titi.png will be blocked by Squid.

To avoid this deadlock, find the line:
http_access deny! Safe_ports

and the edit it to:
# http_access deny! Safe_ports

3.Starting the Proxy


Restart the proxy to take apply the modifications you made. Type:
sudo /etc/init.d/squid restart

From there, the proxy should work based upon your requirements. Just configure the software using the proxy and all should run smoothly.

Miscellaneous


Server logs


The proxy logs are located in: /var/log/squid/access.log
===Changing the size of the cache===

The Squid cache is enabled by default, which helps accelerate the loading of some pages.
The default allocated size is 100 MB(found in /var/spool/squid)

To change its size,edit the /etc/squid/squid.conf file.

Find the line:
# cache_dir ufs /var/spool/squid 100 16 256

Edit it. You can change the value 100 by what you want (eg 200 for 200 MB):
cache_dir ufs /var/spool/squid 200 16 256

Functions and additional modules


Squid is full of options and modules:

Prefetch (to preload the pages and speed up navigation).

Antivirus filters, AntiPopUp, etc..

Access control via proxy login and password.

Access control based upon hours.



To do this, open Synaptic, and click on Search and enter squid to find the modules related to Squid.
Consult the documentation for each module and the Squid manual for more information.

Links


See also:Installing an easy HTTP proxy-cache (polipo)
Best answers for « Installing an HTTP proxy server (Squid) » in :
Installing a light HTTP Proxy Server (TINYPROXY) Show Installing a light HTTP Proxy Server (TINYPROXY) Installation Configuration Port Address Authorisation Logs Other Squid is a proxy server for bigger networks (enterprises, etc..) Can be also installed on smaller local...
Proxy and reverse proxy servers Show Proxy servers A proxy server is a machine which acts as an intermediary between the computers of a local area network (sometimes using protocols other than TCP/IP) and the Internet Most of the time the proxy server is used for the web, and when it...
Installing an easy HTTP proxy-cache (polipo) ShowInstalling an easy HTTP proxy-cache (polipo) Intro Quick Installation Allowing hosts on the LAN to connect Changing the port Use a proxy server parent Using an alternative DNS server Disabling IPv6 More info Intro Installing an...
Installing a SSH server on Ubuntu ShowInstalling a SSH server on Ubuntu Installation Connection An ssh server allows you to remotely access your machine. You'll have access to the remote console (equivalent to telnet, but secure) and the transfer of files (equivalent...
Installing a SAMBA server (Linux) ShowInstalling a SAMBA server Prerequisite Introduction The Samba Architecture Installation of required packages for samba server Starting Samba The commands Smb.conf file configuration ‘’global’’ Section ‘’documents’’...
Download HFS (Http File Server) ShowHFS is a ultra-simple way to share files with friends. · Launch HFS · Slide above it the file to be shared. And that’s all ! The directory is accessible from any browser. It is ultra-simple and no installation is necessary (HFS is only...
The HTTP protocol ShowIntroduction to the HTTP protocol Since 1990 HTTP protocol (HyperText Transfer Protocol) has been the most widely used protocol on the Internet. Version 0.9 was only intended to transfer data over the Internet (in particular Web pages written in...
Intranet - Installing a mail server ShowIntroduction to installation The most commonly used e-mail server in Linux is Sendmail; however, as it is very hard to configure, we will use Qmail, an alternative e-mail server, instead. Qmail is made up of a group of programs that work with...
Server integrity check ShowIntegrity check When a server has been compromised, the hacker usually covers his/her tracks by deleting all records of his/her activity from the logs. Additionally, he/she installs some tools to enable him/her to create a backdoor, in order to...