免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 19200 | 回复: 16
打印 上一主题 下一主题

[proxy] Squid2.7+iptables+透明代理+sarg 生产适用版,无故障运行15天,图示鱿鱼工作原理 [复制链接]

论坛徽章:
4
IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-10-09 06:20:00操作系统版块每日发帖之星
日期:2015-10-20 06:20:00IT运维版块每日发帖之星
日期:2015-11-03 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-20 23:15 |只看该作者 |倒序浏览
安装不用多说
给出参数
顺便说一下,2.7以前的透明代理参数根本不需要以下这四行,这是个误区,我就被这个害过。
httpd_accel_host ProxyServer  
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
根本不需要这几行的


./configure --prefix=/usr/local/squid
--enable-poll
--disable-internal-dns
--enable-storeio=aufs,coss,diskd,ufs
--enable-default-err-languages=Simplify_Chinese
--enable-linux-netfilter         //要想实现透明代理,必须选取这个参数,启用linux netfilter支持
--enable-err-language=Simplify_Chinese
--enable-default-err-languages=Simplify_Chinese
--enable-arp-acl
--enable-snmp
--enable-async-io=180       //1G内存,并且是双核的选180,否则选100以下
--enable-cahce-digests      
--enable-underscore          //允许请求的URL出现下划线
--enable-gnuregex  
--enable-icmp
--enable-kill-parent-hack
#make
#make install

建立用户和组squid
建立/var/squid目录,将目录的权限设置为squid所有 chown -R squid /var/squid
将/usr/local/squid目录的权限设置为squid所有


清空/usr/loca/squid/etc/squid.conf
#Squid Ver 2.7 For xj_kt No.2 Primary School

http_port 192.168.1.1:3128 transparent     //就是这个要注意了,2.7以后的版本只需要加这个参数即可实现透明代理
http_port 192.168.2.1:3128 transparent     //监听二块网卡。因为一个是学生用,一个是老师使用
cache_mem 300 MB                           //使用最大300MB的内存,如果你是2G以上的可以适当增加,我原本是1G,发现1G根本不够用,就买了一根。
maximum_object_size 9000 KB        //最大缓存对象大小为9MB,视你情况而定
maximum_object_size_in_memory 6128 KB   //内存缓存最大为6.1MB ,视你情况而定

dns_nameservers 192.168.1.1       //DNS服务器,我在这台机器上安装了bind缓存服务器,就用自己的啦
cache_dir ufs /var/squid/cache 58000 16 256      //装载缓存的目录为/var/squid/cache,大小58G
error_directory /usr/local/squid/share/errors/Simplify_Chinese

acl nocache urlpath_regex cookie.*\.php *\.jsp *\.asp *\.pl *\.cgi
no_cache deny nocache      //不缓存php jsp asp pl cgi 因为这些都是动态网页

acl audio urlpath_regex -i .torrent$ .avi$ .mp3$ .mp4$
http_access deny audio      //禁止下载torrent avi mp3 mp4

acl name url_regex -i  关键词
http_access deny name


cache_access_log none     //不记录日志了,由于学校电脑太多,一天的日志大于2MB,要记录日志,写出全路径,并使squid组有写权限
cache_log none
cache_store_log none

acl localhost src 192.168.2.0/24 192.168.1.0/24
http_access allow localhost        //允许我的这二块网卡都可以使用squid上网


acl all src 0.0.0.0/0.0.0.0
http_access deny all                //其它所有地址禁止

acl safe port 80 21 443 3128
http_access allow safe            //允许这些端口通过

cache_effective_user squid    //运行squid用户和组
cache_effective_group squid
cache_mgr wubifans_huaxing@yahoo.com.cn   //当现在错误提示时,会显示你的邮箱
acl conncount maxconn 5         //最大连接为5

visible_hostname LinuxProxyServer    //代理服务器所显示的名字
icon_directory /usr/local/squid/share/icons


#ipcache_size 2024    //缓存IP所解析的正反解信息大小。由于我已经有了bind,就注释掉
#ipcache_low 90
#ipcache_high 95
#fqdncache_size 2024

到现在, squid是不可能代理的,因为防火墙不允许squid干活

下面说说防火墙配置
网络环境:
eth0:218.84.9.1    eth1:192.168.1.1  eth2:192.168.2.1
vi fw
chmod a+x fw
在/etc/rc.d/rc.local里添加fw角本所在的全路径
fw角本内容
#!/bin/bash
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t filter -F
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP


#实现192.168.2 与192.168.1源地址转换
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 218.84.9.1
/sbin/iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j SNAT --to-source 218.84.9.1

#将eth1与eth2去往80端口的数据包重定向去本机的3128端口,也就是SQUID处理
/sbin/iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
/sbin/iptables -t nat -A PREROUTING -i eth2 -s 192.168.2.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

#SQUID允许的客户
/sbin/iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3128 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.1.0/24 -p tcp --s port 3128 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport 3128 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.2.0/24 -p tcp --s port 3128 -j ACCEPT

#允许本机向外解析,分析一下数据流,先是output,再是input
/sbin/iptables -A OUTPUT -d 0/0 -p ALL --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -s 0/0 -p ALL --sport 53 -j ACCEPT

#允许80
/sbin/iptables -A OUTPUT -d 0/0 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -s 0/0 -p tcp --sport 80 -j ACCEPT

#允许内网使用本机的dns,懒得再写一条,就将源地址改写为16位的子网编码
/sbin/iptables -A INPUT -s 192.168.0.0/16 -p udp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -d 192.168.0.0/16 -p udp --sport 53 -j ACCEPT


#现在过滤不是做在output与input里,因为数据是从一个网卡流动到另一个网卡,得在forward里
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -d 0/0 -p tcp --dport 80  -j ACCEPT
/sbin/iptables -A FORWARD -s 0/0 -d 192.168.1.0/24 -p tcp  -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.2.0/24 -d 0/0 -p tcp --dport 80  -j ACCEPT
/sbin/iptables -A FORWARD -s 0/0 -d 192.168.2.0/24 -p tcp  -j ACCEPT

#允许使用ssh,一定要不允许root登陆,将permitrootlogin no加上  允许root登陆 不
/sbin/iptables -A INPUT -p tcp -s any/0 --sport 1024:65535 --dport 22 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 22 -d any/0 --dport 1024:65535 -j ACCEPT


运行防火墙/etc/rc.d/fw,必须root用户.
/usr/local/squid/sbin/squid -z
至此一个包过滤的防火墙加透明代理已经完成.
将你的日志开启。看看access.log
1224701847.121 RELEASE -1 FFFFFFFF 99440A26AEF26787E7368B90458A3D54  403 1224701847        -1        -1 text/html 1156/1156 GET http://www.chinaunix.net/favicon.ico


用户应该OK了,设置这个透明代理,我将这个精华区的所有帖全看得差不多了。感谢前辈们的贡献。星期一上课时,我将我的squid.conf与防火墙配置帖出来。哪些文件已经被验证可用,已经运行了15天了。生产适用,呵呵,欢迎CU的兄弟批评指正.还是不行,加我QQ3645636我帮你
还是建议你将squid权威指南看完,哪样就不会问题多多了,不过新的版本参数与2.7以前有所不同,得注意


Sarg的安装请看这里
http://bbs.chinaunix.net/thread-1339666-1-1.html


[ 本帖最后由 3645636 于 2008-12-24 00:59 编辑 ]

squid.jpeg (56.94 KB, 下载次数: 107)

工作原理

工作原理

squid.jpg.jpg (173.26 KB, 下载次数: 120)

squid.jpg.jpg

squiduser.jpg (86.38 KB, 下载次数: 101)

squiduser.jpg

论坛徽章:
0
2 [报告]
发表于 2008-12-23 18:27 |只看该作者
有多少用户? 用户少基本没什么问题

论坛徽章:
0
3 [报告]
发表于 2008-12-23 18:55 |只看该作者
不错,好文。。

论坛徽章:
4
IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-10-09 06:20:00操作系统版块每日发帖之星
日期:2015-10-20 06:20:00IT运维版块每日发帖之星
日期:2015-11-03 06:20:00
4 [报告]
发表于 2008-12-24 00:54 |只看该作者
以图为证,当前一共有36个用户,安装了sarg
看帖里新添加的附件

现在学生的微机课都停了,所以不高,如果高上学生一块上的话。超码得有180个用户了

[ 本帖最后由 3645636 于 2008-12-24 00:56 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-12-24 09:16 |只看该作者
acl conncount maxconn 5

似乎没有看到你有应用这个acl?

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
6 [报告]
发表于 2008-12-24 10:47 |只看该作者
记录一下。

论坛徽章:
4
IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-10-09 06:20:00操作系统版块每日发帖之星
日期:2015-10-20 06:20:00IT运维版块每日发帖之星
日期:2015-11-03 06:20:00
7 [报告]
发表于 2008-12-24 12:45 |只看该作者

回复 #5 zenglingping 的帖子

有的,这个配置文件是我记录在邮箱里的,实际运行的,有的
最大连接数为5

[ 本帖最后由 3645636 于 2008-12-24 12:46 编辑 ]

squid.jpg.jpg (18.74 KB, 下载次数: 97)

squid.jpg.jpg

论坛徽章:
0
8 [报告]
发表于 2008-12-26 20:01 |只看该作者
每ip 5个连接数,楼主做网管可真有点扣啊。

论坛徽章:
0
9 [报告]
发表于 2009-01-02 11:08 |只看该作者
兄弟,我想问问,如果想在sarg中显示用户访问的全url路径而不只是domainName,如何设置?

论坛徽章:
0
10 [报告]
发表于 2009-01-09 14:29 |只看该作者
再加个http 杀毒吧.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP