免费注册 查看新帖 |

Chinaunix

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

Squid初级配置 [复制链接]

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

Squid初级配置
       在局域网中,常常需要对访问外部资源进行控制。通常的做法是用防火墙(例如iptables)对某些IP或者端口进行管理,但这样不够灵活。
    在RHEL5中使用Squid作为代理服务软件,不仅可以实现访问控制,也可以对访问内容进行控制。同时可以作为Cache提高访问速度。
一、Squid访问控制——ACL
ACL的语法格式如下:
acl aclname acltype string1 ...
acl aclname acltype "file" ...
       当使用”file”时,”file”中的每一行只能包含一个item。
几种ACL类型简介:
默认情况下,正则表达式是大小写敏感的,加-i参数可以取消大小写敏感。
       acl aclname src      ip-address/netmask ... (客户端IP地址)
acl aclname src      addr1-addr2/netmask ... (地址范围)
acl aclname dst      ip-address/netmask ... (URL host's IP address)
acl aclname myip     ip-address/netmask ... (本地IP)
acl aclname arp      mac-address ... (xx:xx:xx:xx:xx:xx notation)
         # arp ACL 需要特殊选项 --enable-arp-acl.
                # /etc/init.d/squid restart --enable-arp-acl
acl aclname srcdomain   .foo.com ...    # 反解client IP
acl aclname dstdomain   .foo.com ...   
acl aclname srcdom_regex [-i] xxx ...   # 正则表达式匹配客户端的主机名
acl aclname dstdom_regex [-i] xxx ...   
       #如果匹配不成功,可以使用”none”这个字来匹配。
acl aclname time     [day-abbrevs]  [h1:m1-h2:m2]
day-abbrevs:
               S - Sunday
               M - Monday
               T - Tuesday
               W - Wednesday
               H - Thursday
               F - Friday
               A - Saturday
# h1:m1 必须小于 h2:m2
acl aclname port     80 70 21 ...               #定义端口
acl aclname port     0-1024 ...         #定义端口的范围
acl aclname myport   3128 ...           # (local socket TCP port)
acl aclname proto    HTTP FTP ...
acl aclname method   GET POST ...
acl aclname browser  [-i] regexp ...           #过滤浏览器类型
         # 这个选项会检查HTTP报头中的User-Agent选项
acl aclname referer_regex  [-i] regexp ...
         #正则表达式匹配HTTP报头中的Referer选项
acl aclname maxconn number
         #每个IP的最大链接数
二、基于ACL网页内容过滤
acl aclname url_regex [-i] ^http:// ...         # 匹配整个url地址
acl aclname urlpath_regex [-i] \.gif$ ...              #匹配url中的路径
acl sexpath urlpath_regex "/usr/local/squid/etc/sex_path.txt"
acl sex url_regex "/usr/local/squid/etc/sex_tab.txt"
至於sex_path.txt的内容列举如下:
sex
fuck
而sex_tab.txt的内容列举如下:(注意在网址之前须使用^)
^
http://069.cc
^
http://0sex.com
^
http://www.playboy.com
http_access allow manager localhost
#设定色情防治
http_access deny sexpath
http_access deny sex
#设定中可存取proxy
http_access allow school
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
….
http_access deny all
三、透明代理
要在一个网段的每一台计算机上都设置代理很不方便,所以可以利用NAT和Squid来实现透明代理功能。
实验要求:
       Client1访问Server1的HTTP服务,默认访问80端口,在服务器端通过iptables将访问到80端口的包重定向到3128端口(Squid服务监听的端口)。这样对于客户端来说就完全意识不到有代理服务器的存在。
实验环境:
Client1 :
              OS:Red Hat Enterprise Linux 5 update 4
              Network:eth0 192.168.242.2/24
              Gateway:192.168.242.3
Server1(Squid Server,HTTP Server):
              OS:Red Hat Enterprise Linux 5 update 4
Network:eth0 10.66.5.144/24;eth1 192.168.242.3/24
实验步骤:
客户端:
1.      配置客户端的Gateway,设置为192.168.242.3,重启network服务使之生效。
#vi /etc/sysconfig/network-scripts/ifconfig-eth0
       ...
GATEWAY=192.168.242.3
              ...
       #service network restart
2.      客户端的DNS服务器一定要指向正确的地址。
#vi /etc/resolv.conf
generated by /sbin/dhclient-script
search redhat.com
nameserver 66.187.233.210
nameserver 209.132.183.2
       服务器:
1.      编辑squid.conf文件,配置合理的acl,使客户端不能访问。在http_port选项后加transparent参数,使squid支持透明代理。
#vi /etc/squid/squid.conf
       ...
acl localnet src 192.168.242.0/24
...
http_access deny localnet
...
http_port 3128 transparent
2.      配置防火墙规则,将访问到80端口的包重定向到3128端口;为了能使内网IP访问互联网,对私网IP做SNAT。
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.66.5.144
//对私网IP做SNAT
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
//DNAT
      
       测试
在客户端访问
http://g.cn
,若出现Access Deny,则说明实验成功;若出现其他问题,则实验失败。
        #elinks
http://g.cn



实验成功!
更多信息,可以参考/etc/squid/squid.conf文件中的注释

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP