centos7配置squid代理(透明代理)

squid透明代理

实验材料

这里只是先详细的阐述,后面实验环境配置我会详细讲
一台centos7配置squid服务
添加一块网卡
vm1 网卡IP 192.168.100.102 模拟内网
vm2 网卡IP192.168.200.102 模拟外网
一台win7 vm1 IP 192.168.100.66 内网客户机
一台centos7 vm2 IP 192.168.200.66 配置apache服务

centos7配置squid代理(透明代理)_第1张图片
透明代理需要在传统代理的基础上配置

所以这里需要我上一篇博客的基础

,可以参考如下
https://blog.csdn.net/weixin_45308292/article/details/100360831
做好后,不要做其他配置,变成这章的实验环境这里我会详细的做,

配置实验环境接着上篇博客
首先squid服务器添加一块vm2网卡就不用说了
先使用Xshell连接上,连192.168.100.102就行
[root@CentOS7-02 ~]# ifconfig (查看新的网卡名字,我这里是ens33,可能会不一样)
因为新的网卡没有配置文件需要手动建立,可以直接复制
[root@CentOS7-02 network-scripts]# cp ifcfg-ens33 ifcfg-ens37 (后面的文件名,新网卡叫什么,就写什么)
[root@CentOS7-02 network-scripts]# vim ifcfg-ens37
centos7配置squid代理(透明代理)_第2张图片
[root@CentOS7-02 network-scripts]# systemctl restart network
[root@CentOS7-02 network-scripts]# ifconfig (查看是否配上了)

然后进入192.168.100.103(就是这章的apache服务器,这是上一篇博客的地址)
把网卡改成vm2
vim /etc/sysconfig/network-scripts/ifcfg-ens33
把IPADDR 改成 192.168.200.66
把GATEWAY 改成 192.168.200.102 (squid服务器外网口地址)

这里解释一下为什么要改网关,如果不改网关的话,不走代理,就不能访问外网服务器
,后面不好看效果

就是内部主机发包过来后,apche服务器这里显示的是源地址是100网段,但是他们中间没有路由器
所以就不可通信,但是如果走的代理,内部主机通过外网口ip出去的,回应的时候会把包传回外网口,外网口和内部主机是一个网段就可以通信了
*
systemctl restart network
ifconfig

然后在客户机win7指定网关为192.168.100.102
关掉所有主机的防火墙。。
win7 ping 192.168.200.102
web服务器 ping 192.168.100.102
能通就实验环境就算成功了

先不要ping 对方网段的客户机的地址,这一会还不可以通信,因为现在还没有开启路由转发功能

透明代理

1.配置squid支持透明代理
Xshell连接192.168.100.102
[root@CentOS7-02 ~]# vim /etc/squid.conf
http_port 3128 (在这个配置项后面添加一个单词)
http_port 3128 transparent
[root@CentOS7-02 ~]# cd /etc/xinetd.d/
[root@CentOS7-02 init.d]# ./squid restart
[root@CentOS7-02 init.d]# vim /etc/sysctl.conf
添加如下语句 (注意不要加#号,作用是开启路由转发,实现本机中不同网段的地址转发)
net.ipv4.ip_forward = 1
[root@CentOS7-02 init.d]# sysctl -p (这里会显示一下,不是报错)
net.ipv4.ip_forward = 1

2.设置fiewalld的重定向服务
还是squid代理服务器上操作
透明代理实际上是构建在linux网关上的,因此只需正确设置防火墙策略就可是实现代理
[root@CentOS7-02 ~]# systemctl start firewalld

下面的可能会有各种提示信息有的是报错,但是只要按照我下面的做,只要没有打错字母,就不用管他的报错(如果打错了,直接覆盖就ok不用管提示信息。不知道配置项,什么意思的后面我图片有解释)

[root@CentOS7-02 ~]# firewall-cmd --zone=external --add-interface=ens37

[root@CentOS7-02 ~]# firewall-cmd --zone=internal --add-interface=ens33

[root@CentOS7-02 ~]# firewall-cmd --zone=external --add-service=http

[root@CentOS7-02 ~]# firewall-cmd --zone=external --add-service=https

[root@CentOS7-02 ~]# firewall-cmd --zone=external --add-port=3128/tcp

[root@CentOS7-02 ~]# firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens37 -p tcp --dport=80 -j REDIRECT --to-ports 3128

[root@CentOS7-02 ~]# firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens37 -p tcp --dport=443 -j REDIRECT --to-ports 3128

[root@CentOS7-02 ~]# firewall-cmd --runtime-to-permanent

下图有几个字母被挡住了,按我上面打的来
centos7配置squid代理(透明代理)_第3张图片

验证

进入win7客户机
关闭上一篇博客的浏览器传统代理设置,就是工具>internet选项那里 ,取消勾选
输入192.168.200.66(web服务器地址外网)
多刷新几次方便看效果
进入web服务器,查看日志
centos7配置squid代理(透明代理)_第4张图片
然后在进入squid服务器102中
[root@CentOS7-02 ~]# systemctl stop firewalld (关闭防火墙,也就关闭了代理)

再回到win7主机刷新网页页面

回到web服务器中查看日志
centos7配置squid代理(透明代理)_第5张图片

实验完毕

你可能感兴趣的:(Linux高级管理)