How to install squid proxy server on CentOS 7 linux

Squid is one of the greatest softwares for linux that act as a proxy. Today we are going to tell you how to install squid proxy server on CentOS 7 linux.

squid has alot of usages. you can configure it as a forwarding proxy or reverse proxy. here we want to install squid and configure it as a forwarding proxy.

Here is our environment:

OS: CentOS 7 linux on VMWare
IP: 192.168.43.242
SElinux: enforcing

1-Install squid

squid is available in base repository. also we want to enable authentication for squid. so we will install squid and prerequisites with the following command:

# yum install squid httpd-tools

2- Configure squid

squid configuration file is in /etc/squid/ directory. so open it with Vim:

# vim /etc/squid/squid.conf

it’s a good idea to hide squid version. so add this line to the top of config file:

httpd_suppress_version_string on

add this line and replace IP address range with your own:

acl localnet src 192.168.43.0/24

it allows your private network to access squid.
add any port that is not in squid config file, if you have a service on it. for example if you have a service on port 8080 add it like:

acl Safe_ports port 8080

squid normally listens on port 3128. you can leave it unchanged or change it to what the port you would prefer:

http_port 3128

squid support some authentication method like RADIUS and password authentication.
in addition it’s strongly recommend to add authentication to your squid. so add these lines to the TOP of squid config file:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

create password file:

# touch /etc/squid/passwd

change the owner of password file to squid:

# chown squid: /etc/squid/passwd

then add users:

# htpasswd /etc/squid/passwd testuser

4- Configue firewall

we need to open port 3128 on firewall. so run this commnad:

# firewall-cmd --zone=public --add-port=3128/tcp --permanent

then restart firewall:

# firewall-cmd --reload

3- Start squid

finally enable and start squid:

# systemctl enable squid
# systemctl start squid

now you can set IP address and port 3128 of squid in your browsers or programs.