squid传统代理的另一形式----透明代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了squid传统代理的另一形式----透明代理相关的知识,希望对你有一定的参考价值。

构建透明代理

安装squid支持透明模式

  • squid透明代理本属于squid标准传统代理的一部分,本文特意将透明代理单独写出,是因为yum安装的版本中没有支持透明模式的模块。
  • 因此,支持透明代理的模块需要在手动编译安装时加入。

tar zxvf squid-3.4.6.tar.gz -C /opt/

cd /opt/squid-3.4.6

./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl       //可以在规则链中设置为直接通过客户端MAC管理,防止客户端使用IP欺骗
--enable-linux-netfilter   //使用内核过滤
--enable-linux-tproxy      //使用透明模式
--enable-async-io=100      //异步I/O,提升存储性能
--enable-err-language="Simplify_Chinese"    //错误信息显示语言
--enable-underscore        //允许URL中有下划线
--enable-poll              //使用poll模式,提升性能
--enable-gnuregex           //使用GNU正则表达式

实验环境

服务器 操作系统 IP地址 使用软件
squid代理服务器 centos7.3 内192.168.100.1 外12.0.0.1 squid
外网web服务器 centos7.3 12.0.0.12 http
client windows7 192.168.100.100 IE浏览器

实验拓扑展示

技术分享图片

透明代理配置过程

squid代理服务器设置

1、添加网卡,内网卡ens33,外网卡ens37

  • 网卡添加完成后修改IP,此过程建立在已经安装好squid缓存代理服务器基础上。
  • 网卡配置如下图所示:

技术分享图片

  • 接着打开路由转发功能:

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1   //添加打开路由转发功能

sysctl -p //立即生效

  • 或者这样打开路由转发功能:

echo "1" > /proc/sys/net/ipv4/ip_forward

2、配置squid代理服务配置文件

ln -s /usr/local/squid/sbin/* /usr/local/sbin/

useradd -M -s /sbin/nologin squid

chown -R squid.squid /usr/local/squid/var/
vim /etc/squid/squid.conf

# Squid normally listens to port 3128
http_port 192.168.100.1:3128  transparent  //设置为内网端口代理
cache_mem 64 MB                   #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB         #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制
maximum_object_size 4096 KB       #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户

...
cache_effective_user squid        #添加   指定程序用户
cache_effective_group squid       #添加   指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid     #在这一行上方添加

systemctl restart squid.service

3、写入防火墙nat策略

iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128   //允许http端口服务

iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128   //允许https端口服务

iptables -I INPUT -p tcp --dport 3218 -j ACCEPT  

4、外网web服务器配置

  • 将外网网卡IP设置为12.0.0.12,启动HTTP服务即可。

5、客户端访问

  • 客户端访问时不需要通过在浏览器中设置代理功能,直接访问IP地址即可。访问结果如下:

技术分享图片

以上是关于squid传统代理的另一形式----透明代理的主要内容,如果未能解决你的问题,请参考以下文章

squid代理服务器(传统代理透明代理反向代理ACL日志分析)

squid传统代理和透明代理

实战Squid 缓存服务器 之 传统代理 + 透明代理

利用Squid构建传统代理及透明代理

Squid代理—传统与透明代理的服务搭建

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