首页 > 其他 > 详细

Squid透明代理内网用户上网

时间:2015-04-19 22:55:07      阅读:516      评论:0      收藏:0      [点我收藏+]

一、简介

    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软件

[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自身能上网

######/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方式出去)

[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,因此还需要打开路由转发功能

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


④配置内网PC

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



⑤测试

技术分享



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

Squid透明代理内网用户上网

原文:http://lu2yu.blog.51cto.com/10009517/1635836

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!