How to restrict website in Squid Proxy
In this tutorial i am going to block and allow website for all user.
Before get started the practical you should know the ACL type
- src : source (client) IP addresses
- dst : destination (server) IP addresses
- myip: the local IP address of a client’s connection
- arp : Ethernet (MAC) address matching
- srcdomain: source (client) domain name
- dstdomain: destination (server) domain name
- time: time of day, and day of week
- url_regex: URL regular expression pattern matching
- urlpath_regex: URL-path regular expression pattern matching, leaves out the protocol and hostname
- port : destination (server) port number
- myport: local port number that client connected to
- proto : transfer protocol (http, ftp, etc)
- method: HTTP request method (get, post, etc)
- browser: regular expression pattern matching on the request user-agent header
- proxy_auth: user authentication via external processes
- maxconn: a limit on the maximum number of connections from a single client IP address
- max_user_ip: a limit on the maximum number of IP addresses one user can login from
Firstly create a ACL rule for blocking the website.
Squid ACL Syntax
acl
Here i will take dstdomain acl type because i am going to block a domain.
Write below parameter in squid configuration file.
# vim /etc/squid/squid.conf
#acl Example
acl blocksites dstdomain .amazon.in
acl allowsites dstdomain .justdial.com
#Rule to apply
http_access allow allowsites
http_access deny blocksites
Brefore reloading the squid service make sure you comment below line
#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
#http_access allow localnet
Reload Squid service
# service squid reload
Note: Squid Implementation rules read from above, so write the rule in conf file accordingly as i mentioned. Firstly allowsites than denysites.
Now test website
# tail -f /var/log/squid/access.log
1486249774.702 84793 192.168.0.5 TCP_MISS/200 77489 CONNECT www.justdial.com:443 - DIRECT/122.252.142.91
# tail -f /var/log/squid/access.log