Squid代理服务

Posted liang-yao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Squid代理服务相关的知识,希望对你有一定的参考价值。

Squid服务程序会接收用户的请求,然后自动去下载指定数据(如网页)并存储在服务器内,当以后的用户再来请求相同数据时,则直接将刚刚储存在服务器本地的数据交给用户,节省网络带宽,减少了用户的等待时间。

 

环境:

squid:192.168.200.100(外网)

192.168.100.254(内网)

client 192.168.100.10 #无需网关和DNS

 

Squid代理服务配置:

  1. 安装squid软件包

yum install -y squid

 

2. 启用IP路由转发

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

sysctl -p

 

3. 修改squid配置文件

vim /etc/squid/squid.conf

http_port 192.168.100.254:3128 #监听内网192.168.100.1:3128

cache_dir ufs /var/spool/squid 1024 16 256 #硬盘缓存1G,目录/var/spool/squid 一级子目录16个,二级子目录256个

cache_mem 128 MB #内存缓存大小128MB

cache_swap_low 90

cache_swap_high 95 #超过95%删除旧缓存,直到90%

maximum_object_size 5 MB #单个缓存文件大小限制

cache_access_log /var/log/squid/access.log #访问日志

cache_log /var/log/squid/cache.log #缓存日志

cache_store_log /var/log/squid/store.log #网页缓存日志

dns_nameservers 119.29.29.29 114.114.114.114 #DNS

cache_mgr [email protected] #管理员邮箱

visible_hostname 192.168.100.254 #代理服务器地址

cache_effective_user squid #squid进程所有者

cache_effective_group squid #squid进程所属组

 

 

4. 初始化squid服务,创建Squid使用硬盘缓冲区的目录结构

squid -z

 

5. 检测squid语法

squid -k parse

 

6. 启动squid服务

systemctl restart squid

systemctl enable squid

ss -ntlu | grep 3128

tcp    LISTEN     0      128    192.168.1.1:3128                  *:*

 

浏览器代理设置:

技术分享图片

7. ACL访问控制应用

1、禁止IP地址为192.168.2.11的客户机上网。

vim /etc/squid/squid.conf

acl banhostnet src 192.168.2.11/32

http_banhostnet deny badclientip1

systemctl restart squid

技术分享图片

2、禁止用户访问IP地址为60.174.243.162的网站。

技术分享图片

acl bansiteip dst 60.174.243.162

http_access deny bansiteip

 

3、禁止用户访问域名为www.qq.com的网站。

acl bansite1 dstdomain -i www.qq.com

http_access deny bansite1

 

4、禁止用户访问域名包含有qq.com的网站。

acl banqqcom url_regex -i .qq.com

http_access deny banqqcom

 

5、禁止用户访问域名包含有qq关键字的网站。

acl bandomainqq url_regex -i qq

http_access deny bandomainqq

 

6、限制IP地址为192.168.100.10的客户机并发最大连接数为5。

acl clientip1 src 192.168.100.10

acl conn1 maxconn  5

http_access deny clientip1 conn1

 

7、限制192.168.2.0子网所有客户机仅在周一到周五的9:00-17:00上网。

acl intranet src 192.168.2.0/24

acl  worktime1 time MTWHF 9:00-12:00 13:00-17:00

http_access  deny intranet !worktime1

 

8、禁止客户机下载*.mp3,*.exe,*.rar和*.zip类型的文件。

acl badfile1 urlpath_regex -i \\.mp3$ \\.exe$ \\.rar$ \\.zip$

http_access deny badfile1

 

透明代理。

所谓透明代理,就是客户端不知道有代理服务器的存在,当然也不需要进行任何与代理有关的设置,从而大大方便了系统管理员。可以用firewalld直接将对Web端口80的请求直接转发到Squid端口3128,由Squid接手,而用户浏览器仍然认为它访问的是对方的80端口。

1、修改squid主配置文件。

vim /etc/squid/squid.conf

http_port 192.168.100.254:3128 transparent

 

systemctl restart squid.service

 

2、配置firewalld。

yum install -y firewalld

systemctl restart firewalld.service

systemctl enable firewalld.service

 

firewall-cmd --zone=internal --change-interface=ens35

firewall-cmd --zone=public --add-masquerade

firewall-cmd --zone=internal --add-forward-port=port=80:proto=tcp:toport=3128:toaddr=192.168.100.254

firewall-cmd --zone=internal --add-port=3128/tcp

firewall-cmd --zone=public --list-all

firewall-cmd --zone=internal --list-all

 

firewall-cmd --runtime-to-permanent

firewall-cmd --reload

技术分享图片

3、代理客户端配置。

IP:192.168.100.10

网关:192.168.100.254

dns:114.114.114.114

删除internet选项中的局域网代理服务器选项

以上是关于Squid代理服务的主要内容,如果未能解决你的问题,请参考以下文章

squid代理服务器应用

Squid代理服务器——配置Squid服务器

squid代理服务,搭建传统代理和透明代理案例

squid代理服务,搭建传统代理和透明代理案例

Squid 代理服务器

Squid代理服务器应用