CentOS7.4 Squid透明代理

实验说明:客户端是不能接着访问到外网的web服务器的,要通过squid代理服务器实现,访问外网web服务器。

外网:20.110.20.0/24

内网:192.168.12.0/24

Client Squid Apache
IP:192.168.12.0/24 ens37:192.168.12.10 IP:20.110.20.20
网关:192.168.12.10 ens33:20.110.20.10
DNS:20.110.20.20 ens33:DNS:20.110.20.20

CentOS7.4 Squid透明代理_第1张图片

配置外网web,DNS服务

DNS配置:

正向:
www     A       20.110.20.20
反向
20      PTR     www.2020.com.

Apache配置


    DocumentRoot /www/www
    ServerName www.2020.com.

    Require all granted


接下来就是squid和防火墙了

  1. 安装

    [root@localhost ~]# yum install -y squid iptables-services
    
  2. 配置squid

    [root@localhost ~]# vi /etc/squid/squid.conf
    
    56	http_access allow all(deny改为allow)
    59	http_port 192.168.12.10:3128 transparent(内网ip:3128透明模式transparent)
    62	cache_dir ufs /var/spool/squid 100 16 256(去掉注释)
    	cache_mem 100 MB(加一行)
    

    检查

    [root@localhost ~]# squid -k parse
    

    初始化

    [root@localhost ~]# squid -Z
    
  3. 开启路由转发

    [root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
    [root@localhost ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
    [root@localhost ~]# sysctl -p
    net.ipv4.ip_forward = 1
    
  4. 配置防火墙

    停用firewalld,启用iptables

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# systemctl restart iptables
    

    清除防火墙规则

    [root@localhost ~]# iptables -P INPUT ACCEPT
    [root@localhost ~]# iptables -F
    

    设置 DNS 请求转发,如被访问 53 端口,则把请求转发到:20.110.20.20

    [root@localhost ~]# iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 20.110.20.20
    

    设置内网请求过滤,如发现是 192.168.12.0/24 网段数据则递交给 20.110.20.10

    [root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.12.0/24 -j SNAT --to 20.110.20.10
    

    设置内网请求端口数据转发,如是 192.168.12.0/24 的 ens37 网卡发送的 80,443 端口数据,则递交给本地服务器的 3128 端口处理

    [root@localhost ~]# iptables -t nat -A PREROUTING -s 192.168.12.0/24 -i ens37 -p tcp --dport 80 -j REDIRECT --to-port 3128
    
    [root@localhost ~]# iptables -t nat -A PREROUTING -s 192.168.12.0/24 -i ens37 -p tcp --dport 443 -j REDIRECT --to-port 3128
    

    保存规则

    [root@localhost ~]# service iptables save
    

    重启防火墙

    [root@localhost ~]# systemctl restart iptables
    
  5. 启动squid

    [root@localhost ~]# systemctl restart squid
    

客户端

  1. 网卡配置
    CentOS7.4 Squid透明代理_第2张图片
  2. cmd:“nslookup”
    CentOS7.4 Squid透明代理_第3张图片
  3. 浏览器访问www.2020.com
    CentOS7.4 Squid透明代理_第4张图片

    完成

你可能感兴趣的:(Linux)