Squid透明代理内网用户上网

  1. 云栖社区>
  2. 博客>
  3. 正文

Squid透明代理内网用户上网

技术小胖子 2017-11-01 18:12:00 浏览934
展开阅读全文

Squid透明代理内网用户上网

2015-04-19 20:48:38

标签:squid 路由器 代理服务 ip地址

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lu2yu.blog.51cto.com/10009517/1635836

一、简介

    squid实现代理上网是7层代理,传统的路由器实现snat一般是4层,基于ip地址和端口转换实现的,7层和4层的区别如下:

        1.nat需要开启路由转发功能,7层代理squid不需要开启路由转发

        2.7层能够实现应用层面的控制,可以基于url的控制过滤,4层无法做到。


 Squid基本功能:

        1.提供HTTP和FTP协议的代理服务

        2.缓存代理数据,提高访问速度

        3.ACL限制内网访问外网资源(时间,ip)



二、Squid实现内网上网

   拓扑:

       wKioL1UzmrqCxVXUAAGjVVTU3Yo755.jpg

(不追求美观,但讲究精确)


 ①安装squid软件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@node1 ~]#  yum  install  -y  squid
 
[root@node1 ~]#  rpm  -ql  squid
/etc/logrotate.d/squid     ##日志轮转
/etc/pam.d/squid            ##squid支持的认证模块
/etc/rc.d/init.d/squid         ##服务脚本
/etc/squid                     ##配置文件位置
/etc/squid/cachemgr.conf
/etc/squid/cachemgr.conf.default
/etc/squid/errorpage.css
/etc/squid/errorpage.css.default
/etc/squid/mime.conf            ##支持的媒体文件类型
/etc/squid/mime.conf.default
/etc/squid/msntauth.conf
/etc/squid/msntauth.conf.default
/etc/squid/squid.conf            ##当前生效的配置文件
/etc/squid/squid.conf.default    ##初始化配置文件的备份
/var/log/squid                    ##日志文件
/var/spool/squid


②配置squid节点

  前提: 保证squid自身能上网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
######/etc/squid/squid.conf#####主要配置内容
 
http_port 192.168.112.135:3128 transparent
 
acl  innet src 192.168.112.0/24
http_access allow  innet
 
cache_access_log  /var/log/squid/access.log ##设置高速缓存存取记录文件的名称和所在目录,它记录了所有高速缓存的行为,如果不需要,可以设为"cache_access_log /dev/null"
 
visible_hostname  192.168.112.135    ##用于提示客户端
 
cache_mem   60M                    ##设置PROXY SERVER可使用多少内存作为高速缓存,一般要设置为物理内存的1/3
 
cache_log /var/log/squid/cache.log  ##设置缓存存储记录文件的名称和所在目录,它记录了哪些数据从高速缓存移出,哪些数据被放入高速缓存
 
cache_swap_low 80
cache_swap_high 97  ##这两行设置CACHE进行替换的闸值,当占用到97%的CACHE后,CACHE中的内容将被清空20%
 
cache_dir ufs /var/spool/squid  100  16 256 ##设置高速缓存目录和高速缓存可以使用的硬盘空间,100表示最大可使用100MB,16表示第一层子目录最多可以有16个,256表示每个第一层子目录下最多可以有256子目录
 
dns_nameservers 192.168.31.1    ##内部指定dns,没有则以/etc/resolv.conf为准


③配置iptables规则,实现客户端的80,443请求定向到squid的3128端口,并且将pc的53dns请求snat出去(udp 的53dns无法代理,所以只能通过snat方式出去)

1
2
[root@node1 squid]# iptables  -t  nat  -A PREROUTING -s 192.168.112.0/24 -p tcp --dport 80,443  -j  REDIRECT --to 3128
[root@node1 squid]# iptables  -t nat -A POSTROUTING -s 192.168.112.0/24 -p udp --dport 53 -j SNAT --to-source 192.168.31.241


   由于需要snat,因此还需要打开路由转发功能

1
[root@node1 squid]#  echo 1 > /proc/sys/net/ipv4/ip_forward


④配置内网PC

  前提:内网PC的流量必须经过squid,dns的解析可以不经过。



⑤测试

wKioL1Uzo7-xaXW0AAtdU4T8P7k599.jpg



本文出自 “Lu2Yu” 博客,请务必保留此出处http://lu2yu.blog.51cto.com/10009517/1635836




      本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1955901,如需转载请自行联系原作者



网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注