2 透明代理
透明代理:(此实验类似于DNAT策略实验,用外网客户机访问内网web服务器)
网卡、IP设置
内网web服务器 192.168.1.17 网关 192.168.1.18
squid 192.168.1.18(网关192.168.1.18) 172.168.1.1(网关172.168.1.1)
外网客户机 172.168.1.19 网关 172.168.1.1
squid主机上的操作:
(0)源码安装squid
tar -zxvf squid-3.4.6.tar.gz -C /usr/src
cd /usr/src/squid-3.4.6/
./configure --prefix=/usr/local/squid --sysconfdir=/etc
--enable-arp-acl --enable-linux-netfilter
--enable-linux-tproxy --enable-async-io=100
--enable-err-language="Simplify_Chinese"
--enable-underscore --enable-poll --enable-gnuregex
make
make install
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid.squid /usr/local/squid/
chmod -R 757 /usr/local/squid/var/
(1)修改squid 主配置文件
在 http_port 3128这一行添加内容,如下所示
http_port 172.168.1.1:3128 transparent
(2)重启squid服务
service squid restart
(3)开启路由转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
(4)编写防火墙规则
iptables -t nat -I PREROUTING -i ens32 -s 192.168.20.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -I PREROUTING -i ens32 -s 192.168.20.0/24 -p tcp --dport 443 -j REDIRECT --to-port 3128
iptables -I INPUT -p tcp --dport 3218 -j ACCEPT
nginx主机上的操作:
启动nginx服务: nginx
在外网客户机上操作(172.168.1.19的主机上)
firefox 192.168.1.17
可以访问到nginx主页
在 squid主机上 tailf /usr/local/squid/var/logs/access.log
在内网web主机上 tailf /usr/local/nginx/logs/access.log
都能够看到访问记录 nginx的访问日志上显示的是网关中与自己同网段的网卡的IP即可
关于这部分的说明
1. 如果访问不到,可能是squid没有启动起来,再次启动squid即可
2. 在停止防火墙的情况下也可以做实验,只要看到相应的访问IP即可