[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...
Installing an easy HTTP proxy-cache (polipo) Show Installing 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 Show Installing 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...
The Proxy Server ShowWhat is a Proxy? Filtering Authentication Storage of Logs A proxy server can be a computer or a module that acts as a go-betweens between a Web browser and the Internet. The proxy is involved in network security. Proxy servers...
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’’...
MSN Connection Problems ShowMSN Connection Problems Error Codes Error code 0x80072ee6 Error code 81000377 Error code 0x80072efd / 80072ee7 Error code 80048820 Error code 8007277b UNICOWS.DLL Error Code Other error codes Connection problems have become...
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...
Proxy and reverse proxy servers ShowProxy 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...
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...
Installing a VPN server on XP ShowInterest of a VPN Setting up a virtual private network allows you to connect remote computers in a secure fashion via an unreliable (Internet) connection, as if they were on the same LAN. This procedure is used by many companies in order to allow...