免费注册 查看新帖 |

Chinaunix

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

用Squid+Iptables架设透明代理服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-10 08:12 |只看该作者 |倒序浏览

节省金钱、气毙网管
                Squid+Iptables架设透明代理服务器

基本环境

硬件:
  PC机一台-Intel 815主板,4.3G 7200RPM/S SCSI希捷硬盘,64M SDRAM内存,Intel Celon 1.1G CPU
软件:
RedHat Linux 9.0、Squid-2.5.STABLE10.tar.gz 、iptables
硬盘分区:
  swap     256M
      /        400M
      /usr      2.5G
      /usr/local  1.2G
网卡设置:
eth0 10.0.1.35  连接外网
eth1 172.16.0.1     连接内网
1.      安装Squid代理服务器软件

添加squid组和squid用户
#groupadd squid
#useradd -g squid squid

解压squid tar压缩包
#tar –xzvf squid-2.5.STABLE10.tar.gz
#mv squid-2.5.STABLE10 squid
#cd squid
#./configure --prefix=/usr/local/squid --enable-gnuregex --enable-async-io=8 --enable-icmp --enable-kill-parent-hack --enable-snmp --disable-ident-lookups --enable-cahce-digests --enable-arp-acl --enable-err-language="Simplify_Chinese" --enable-default-err-languages="Simplify_Chinese" --enable-poll --enable-linux-netfilter --enable-underscore
###############################################################################
说明:
--prefix=/usr/local/squid :指定软件的安装路径
--enable-gnuregex :由于Squid大量使用字符串处理做各种判断,加入此项能更好的处理。
--enable-async-io=80 :这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了。另外此项还另cache文件支持aufs
--enable-icmp :加入icmp支持
--enable-kill-parent-hack :关掉suqid的时候,要不要连同父进程一起关掉,这个当然要啦
--enable-snmp :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
--disable-ident-lookups :防止系统使用RFC931规定的身份识别方法。
--enable-cahce-digests :加快请求时,检索缓存内容的速度。
--enable-arp-acl :可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗。
--enable-err-language="Simplify_Chinese" 和
--enable-default-err-languages="Simplify_Chinese" :指定出错是显示的错误页面为简体中文
--enable-poll :应启用Poll()函数而不是select()函数,通常而言poll(轮询)比select要好,但configure(脚本程序)已知Poll在某些平台下失效, 若你认为你比configure编译配置脚本程序要聪明的话,可以用这个选项启用Poll。总之就是用这个可以提升性能就是啦。
--enable-linux-netfilter :可以支持透明代理
--enable-underscore :允许解析的URL中出现下划先,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址。
###############################################################################
#make
#make install
安装好了,接下来修改配置文件。
2.修改Squid.conf配置文件
vi /usr/local/squid/etc/squid.conf,在配置文件中添加以下内容:
cache_mgr vivamo@163.com
http_port 3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

cache_effective_user squid
cache_effective_group squid
visible_hostname netpower
hierarchy_stoplist cgi-bin ?
hierarchy_stoplist -i ^https:\ ?
acl QUERY urlpath_regex -i cgi-bin ? .asp .php .jsp .cgi
acl denyssl urlpath_regex -i ^https:\
no_cache deny QUERY
no_cache deny denyssl
cache_mem 32 MB
cache_swap_low 85
cache_swap_high 90
maximum_object_size 4096 KB
maximum_object_size_in_memory 8 KB
ipcache_size 1024
ipcache_low 80
ipcache_high 90
fqdncache_size 1024
cache_dir ufs /usr/local/squid/var/cache 600 16 256
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
ftp_user Squid@
ftp_passive on
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
connect_timeout 1 minute

acl internal src 172.16.0.0/24
http_access allow internal

peer_connect_timeout 30 seconds
request_timeout 2 minutes
persistent_request_timeout 1 minute
forwarded_for off
icon_directory /usr/local/squid/share/icons
error_directory /usr/local/squid/share/errors/Simplify_Chinese
coredump_dir /usr/local/squid/var/cache
说明:
#禁止缓存
hierarchy_stoplist cgi-bin ?
hierarchy_stoplist -i ^https:\ ?
acl QUERY urlpath_regex -i cgi-bin ? .asp .php .jsp .cgi
acl denyssl urlpath_regex -i ^https:\
no_cache deny QUERY
no_cache deny denyssl
#上面几个就是说遇到URL中有包含cgi-bin和以https:\开头的都不要缓存,
#还有asp、cgi、php等动态脚本也不要缓存,
#因为这些脚本通常都是动态更新的,这样数据不同步。
#还有https://开通的不缓存是因为一般我们进行电子商务交易,
#例如银行付款等都是采用这个的,如果把信用卡号什么缓存那不是很危险。

# OPTIONS WHICH AFFECT THE CACHE SIZE(定义cache大小的选项)
cache_mem 8 MB                    #额外使用内存量,可根据你的系统内存在设定,一般为实际内存的1/3
cache_swap_low 80                   #最低缓存百分比
cache_swap_high 90                  #最高缓存百分比,就是上面那个额外内存的使用百分比
maximum_object_size 4096 KB          #单个文件最大缓存大小,超过这个大小将不缓存
maximum_object_size_in_memory 8 KB  #在内存中单个文件最大缓存大小,超过这个大小将不缓存到内存中

#有DNS正反解所得到的IP存在缓存区的大小,这样可以加快解析速度
ipcache_size 1024
ipcache_low 80
ipcache_high 90
fqdncache_size 1024

# LOGFILE PATHNAMES AND CACHE DIRECTORIES(定义日志文件的路径及cache的目录)
#    目录所在> 大小>   
#  那个 aufs 只有在编译的时候加入 --enable-async-io 那个选项才有支持,
#  至于目录所在地与所占用的磁盘大小则请视您的主机情况而定,
#  而后面 dir1, dir2 则是两个次目录的大小,通常 16 256 或 64 64 皆可,
#  一般来说,数字最好是 16 的倍数,据说性能会比较好啦!
cache_dir ufs /usr/local/squid/var/cache 600 16 256  
#这里的600是指把cache目录最大设置为600M

#日志存放位置
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log

#  TAG: cache_store_log
cache_store_log /usr/local/squid/var/logs/store.log

#  TAG: pid_filename
pid_filename /usr/local/squid/var/logs/squid.pid

# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS(外部支持程序选项)
#用代理登陆匿名ftp服务选项
#  TAG: ftp_user
ftp_user Squid@    #用户名
ftp_passive on     #被动模式

#认证
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours
#auth_param basic casesensitive off

# OPTIONS FOR TUNING THE CACHE(调整cache的选项)
#  TAG: refresh_pattern    Cache更新时间设置
#  最小时间> 百分比> 最大时间>
refresh_pattern ^ftp:      1440   20%   10080
refresh_pattern ^gopher:   1440   0%   1440
refresh_pattern .      0   20%   4320

#上面第一行如果网址开头是 ftp 的话,那么在一天(1440分钟)后,
#如果proxy 再次取用这个档案时,则 cache 内的数据会被更新!

# TIMEOUTS (超时)
# -----------------------------------------------------------------------------
#连接到其他机器的最大尝试时间
connect_timeout 1 minute
#连接到上层代理的超时时间
peer_connect_timeout 30 seconds
#返回超时
request_timeout 2 minutes
#持续连接时间
persistent_request_timeout 1 minute
# ACCESS CONTROLS(访问控制部分)
#  TAG: acl
#Examples:
#acl myexample dst_as 1241
#acl password proxy_auth REQUIRED
#acl fileupload req_mime_type -i ^multipart/form-data$
#acl javascript rep_mime_type -i ^application/x-javascript$
#
#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443 563   # https, snews
acl Safe_ports port 70      # gopher
acl Safe_ports port 210      # wais
acl Safe_ports port 1025-65535   # unregistered ports
acl Safe_ports port 280      # http-mgmt
acl Safe_ports port 488      # gss-http
<span lang="EN-

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1495/showart_56199.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP