缓存代理概述
▪ Web代理的工作机制
▪ 缓存网页对象,减少重复请求
▪ 代理的基本类型
▪ 传统代理:适用于Internet,需明确指定服务端(让机器里面某个程序上网)
▪ 透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理(让机器上网)
▪ 使用代理的好处
▪ 提高Web访问速度
▪ 隐藏客户机的真实IP地址
实验
打开一个虚拟机101
1.拖入安装包
squid-3.5.23.tar.gz
2.安装所需开发环境gcc
[root@localhost ~]# yum -y install gcc*
3.解压squid tar包
[root@localhost ~]# tar zxvf squid-3.5.23.tar.gz
4.进入目录
[root@localhost ~]# cd squid-3.5.23
5.配置
[root@localhost squid-3.5.23]# ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-gnuregex
[root@localhost squid-3.5.23]# make && make install
6.路径优化
[root@localhost squid-3.5.23]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/
7.cd
8.创建用户
[root@localhost ]# useradd -M -s /sbin/nologin squid
9.
[root@localhost ]# chown -R squid:squid /usr/local/squid/var
10.编辑配置文件
[root@localhost ]# vim /etc/squid.conf
修改:在28行添加 http_access allow all
在65行找 cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 ##去掉注释符
在末尾添加 cache_effective_user squid
cache_effective_group squid
保存退出
11.检查配置文件的语法
[root@localhost ]# squid -k parse
12.初始化缓存目录
[root@localhost ]# squid -z
13.启动squid服务
[root@localhost ]# squid
14.查看结果
[root@localhost ]# netstat -anpt | grep squid
端口号为3128为正确
设置传统代理
15.打开103 安装httpd
[root@localhost ~]# yum -y install httpd
16.关闭防火墙和se
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
17.开启http服务
[root@localhost ~]# systemctl start httpd
18.在101防火墙上添加允许策略 (如果不成功就执行开启防火墙命令)
[root@localhost ~]# firewall-cmd --add-service=http --permanent
[root@localhost ~]# firewall-cmd --add-port=3128/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
19.打开window11
进入浏览器客户端
20.查看代理服务IP103
软件下载1:wireshark-win32_cn.zip
软件下载2:benet.rar
看到以上信息为成功
设置透明代理
1.在101里添加网卡并修改网络连接模式
将window11的网络连接模式改为
将103的网络连接模式改为
2.复制ens36
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens36 进入网卡设置将101的网卡配置改为
将103的网卡配置改为
3.进入配置文件
[root@localhost network-scripts]# vim /etc/squid.conf
添加为:http_port 192.168.10.101:3128 transparent
4.杀死进程并重启查端口号
[root@localhost network-scripts]# pkill -9 squid
[root@localhost network-scripts]# squid
[root@localhost network-scripts]# netstat -anpt | grep squid
tcp 0 0 192.168.10.101:3128 0.0.0.0:* LISTEN 46014/(squid-1)
端口号为3128即为正确
4.设置iptable重定向策略
[root@localhost ~]# firewall-cmd --remove-service=http --permanent
[root@localhost ~]# firewall-cmd --remove-port=3128/tcp --permanent
[root@localhost ~]# firewall-cmd --zone=external --change-interface=ens36
[root@localhost ~]# firewall-cmd --zone=internal --change-interface=ens33
[root@localhost ~]# firewall-cmd --zone=internal --add-service=http
[root@localhost ~]# firewall-cmd --zone=internal --add-port=3128/tcp
[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 80 -j REDIRECT --to-ports 3128
[root@localhost ~]# firewall-cmd --runtime-to-permanent
5.打开客户端window11关闭代理
打开网络-属性-网卡-默认网关改为101 浏览172.16.16.172
ACL访问控制
1.在101中打开配置文件修改并添加
[root@localhost ~]# vim /etc/squid.conf
2.杀死并重启squid
[root@localhost ~]# pkill -9 squid
[root@localhost ~]# squid
3.在window中访问172.16.16.172访问失败
4.配置文件中拒绝访问aaa的命令删掉
http_access deny aaa
5.编写脚本执行
[root@localhost ~]# vim aaa.sh
killall squid
sleep 1
killall squid
sleep 1
killall squid
sleep 1
squid
[root@localhost ~]# bash aaa.sh
squid: no process found
[root@localhost ~]# netstat -anpt | grep squid
tcp 0 0 192.168.10.101:3128 0.0.0.0:* LISTEN 46625/(squid-1)
6.在windows中访问成功
7.在opt下分别设置IP黑名单和域名黑名单
[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
[root@localhost opt]# vim ipblock.list
172.16.16.172
[root@localhost opt]# vim dmblock.list
qq.com
8.打开squid配置文件添加
[root@localhost opt]# vim /etc/squid.conf
acl aaa src 192.168.0.0/16 # RFC1918 possible internal network //在下方添加
acl IPBLOCK dst "/opt/ipblock.list"
acl DMBLOCK dstdomain "/opt/dmblock.list"
http_access deny MYLAN IPBLOCK
http_access deny MYLAN DMBLOCK
9.执行aaa脚本
[root@localhost opt]# cd
[root@localhost ~]# bash aaa.sh
10.在windows中访问172.16.16.172和qq.com访问失败则为成功