Tuesday, 4 February 2014

SQUID ON CENTOS

How to install and configure squid on Centos?
How to install and configure squid on Fedora?

1. Open terminal to install squid
Ctrl + Alt + T

2. install as root

yum install squid

3. Edit squid.conf

nano /etc/squid/squid.conf


#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1


# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
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
acl localnet src fc00::/7    # RFC 4193 local private network range
acl localnet src fe80::/10   # RFC 4291 link-local (directly plugged) machines


acl SSL_ports port 443
acl Safe_ports port 80       # http
acl Safe_ports port 21       # ftp
acl Safe_ports port 443      # https
acl Safe_ports port 70       # gopher
acl Safe_ports port 210      # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280      # http-mgmt
acl Safe_ports port 488      # gss-http
acl Safe_ports port 591      # filemaker
acl Safe_ports port 777      # multiling http
acl CONNECT method CONNECT


##
# Recommended minimum Access Permission configuration:
##
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager


# Deny requests to certain unsafe ports
http_access deny !Safe_ports


# Deny CONNECT to other than secure SSL ports
#http_access deny CONNECT !SSL_ports


# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost


#################################################
#INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
##


#################################################
#Time Based ACL
##
#acl officehours time MTWHFA 9:15-13:30
#acl officehours time MTWHFA 14:00-17:00
#acl blsites url_regex -i "/etc/squid/officetime.acl"
#http_access deny blsites officehours


#################################################
#disable caching
##
#acl nocache src all
#no_cache deny nocache


# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all


# Squid normally listens to port 3128
http_port 192.168.100.1:3128 transparent


#ssl-bump cert=/etc/squid/myCA.pem
#acl broken_sites dstdomain .facebook.com
#ssl_bump deny broken_sites
#always_direct allow all
#ssl_bump allow all


# the following two options are unsafe and not always necessary:
#sslproxy_cert_error allow all
#sslproxy_flags DONT_VERIFY_PEER


# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?


## Uncomment and adjust the following to add a disk cache directory.
#lru    : Squid's original list based LRU policy
#heap GDSF : Greedy-Dual Size Frequency
#heap LFUDA: Least Frequently Used with Dynamic Aging
#heap LRU  : LRU policy implemented using a heap
##
#cache_mem 18432 MB
#cache_dir diskd /cache/squid 18432 16 256
#cache_replacement_policy heap LFUDA
#memory_replacement_policy heap LFUDA


# Leave coredumps in the first cache dir
coredump_dir /cache/squid


#Log
access_log /var/log/squid/access.log


# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp:        1440 20% 10080
refresh_pattern ^gopher:     1440 0%   1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%   0
refresh_pattern .            0    20% 4320


4. Enable ipv4 forwarding
echo 1 >/proc/sys/net/ipv4/ip_forward

5. IPTABLES RULES TO ROUTE PORT 80 TRAFFIC TO 3128 AND SEND OUTWARD
iptables -t nat -A PREROUTING -i eth2 -p tcp --syn --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

6. Save iptables
service iptables save

7. Client side default gateway settings
Go to LAN settings at client side and set default gateway to proxy's ip 192.168.100.1

No comments:

Post a Comment