Squid透明代理内网用户上网
2015-04-19 20:48:38
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。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实现内网上网
拓扑:
(不追求美观,但讲究精确)
①安装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的解析可以不经过。
⑤测试
本文出自 “Lu2Yu” 博客,请务必保留此出处http://lu2yu.blog.51cto.com/10009517/1635836
本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1955901,如需转载请自行联系原作者