Short Description about Proxy Server:
Then edit the /etc/squid/squid.conf file:
******ACL Configuration portion******
A Proxy Server acts as an intermediary between the computers of a LAN and Internet.
Maximum time proxy server is used for web when it’s an http proxy. There can be proxy servers for every application protocol (such as FTP.).
Squid proxy:
Squid proxy aggregates the requests of many web surfers that use it into a single stream of requests. When the Squid server aggregates multiple outbound connections, it is called a proxy. When it aggregates multiple inbound connections it is called a reverse proxy. This is also called “accelerator mode”.
There are many reasons to create squid proxy. Two important goals are:
- Reduce Internet bandwidth charges
- Limit access to the Web to only authorized users.
The operating principle of a proxy server:
When a user connects to the internet using a client application configured to use a proxy server, the application will first connect to the proxy server and give it its request. The proxy server then connects to the server which the client application wants to connect to and sends that server the request. Then the server gives its reply to the proxy, which then sends it to the application client.
Important Features of Proxy Server:
1. Caching
2. Filtering
3. Authentication
Transparent proxy:
It is possible to limit HTTP Internet access to only the Squid server without having to modify the browser settings on your client PCs. This called a transparent proxy configuration. It is usually achieved by configuring a firewall between the client PCs and the Internet to redirect all HTTP (TCP port 80) traffic to the Squid server on TCP port 3128 (Default port).
Quick Simple Proxy Server Configuration on Debian Squeeze:
#apt-get install squid [2.7.stable9]
Then edit the /etc/squid/squid.conf file:
******ACL Configuration portion******
acl src c.c.c.c/24 [c.c.c.c /24 is the local network]
http_access allow [Just allow the local net]
[Access can be controlled by various way. Such as , specific website, port, content, time based etc. It depends on requirement]
To restrict specific site:
Create a file with any name in any location with restricted site name. here I create:
/etc/squid/restricted-sites.squid
Then in squid.conf file
acl Badsites dstdomain "/etc/squid/restricted-sites.squid"
http_access deny Badsites
[acl will write in acl section and http_access will write in http_access section before all deny]
Then
Cache_mem MB [Not more than RAM/4]
cache_dir aufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
emulate_httpd_log on
logformat squid %tl %6tr %>a %Ss/%03Hs % [To see http format]
visible_hostname
http_port :3128 transparent [Here I have used default port. Transparent is used for using transparently by without configuring proxy in browser].
Then add the service in startup by
#chkconfig - -level 2345 squid on
In console and restart the service by
#/etc/init.d/squid/restart
IPTABLES Configuration :
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE [for nat]
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -A INPUT -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -i eth0 -p tcp --dport 3128
iptables -A OUTPUT -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -o eth1 -p tcp --dport 80
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED -i eth1 -p tcp --sport 80
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED -o eth0 -p tcp --sport 80
Now Its ok.
[Don’t follow this for you because this is quick reference for me. You can read some book or websites for your better understanding].
[Reverse proxy, FTP through proxy will submit next time].