免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 水中风铃
打印 上一主题 下一主题

[proxy] 关于squid需要注意的一些问题及不足 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2005-04-28 10:22 |只看该作者

关于squid需要注意的一些问题及不足

写道:

>;zbyue,您好!
>;
>;        目的:所有的电脑都能够上一些三个的IP网站,IP文件为squid-url.txt,也能够根据域名来访问三个网定的网址,网址文件为squid-url.txt,我根据MAC来判断是否能够上除了这三个网址和IP的其他网址,能够上所有网址的MAC地址在squid-mac.txt文件中,现在这三个文件我都放在附件中,具体的配置的规则如下:
>;acl all src 0.0.0.0/0.0.0.0
>;acl mac arp "/etc/squid/squid-mac.txt"
>;acl ip src "/etc/squid/squid-ip.txt"
>;acl url src "/etc/squid/squid-url.txt"
>;http_access allow mac
>;http_access deny !mac
>;http_access allow !mac ip
>;http_access allow !mac url
>;而现在mac地址在etc/squid/squid-mac.txt文件中的是可以上所有的网站了,而不在MAC文件中的也可以上网,请大家帮我看看,我该如何改了?
>;squid-ip.txt
>;http://192.168.25.22/
>;http://61.146.192.148/
>;http://201.252.189.64/
>;squid-mac.txt
>;00-0D-56-61-FC-86
>;00-0C-76-60-B1-50
>;squid-url.txt
>;*.fsvod.com
>;
>;  
>;
允许MAC地址的能够访问所有的网站(放在最前面):
http_access allow mac
未允许的MAC地址能够且只能访问一共六个网站:
squid_ip.txt and squid_url.txt 可以放在一个文件中squid_url.txt写就是:
192.168.25.22
61.146.192.148
201.252.189.64
fswod.com
sina.com
china.com.cn

acl ip nomacurl "/etc/squid/squid-url"

这样就可以。
http_access deny !nomacurl
http_access allow nomacurl

现在就变成这样的:

acl all src 0.0.0.0/0.0.0.0
acl mac arp "/etc/squid/squid-mac.txt"
acl nomacurl src "/etc/squid/squid-url.txt"

http_access allow mac
http_access deny !nomacurl
http_access allow nomacurl
http_access allow !mac

看看有没有问题,我只是分析了一下,具体还要看情况

论坛徽章:
0
32 [报告]
发表于 2005-04-28 10:26 |只看该作者

关于squid需要注意的一些问题及不足

你在编译时有没有说明使用透明代理?

论坛徽章:
0
33 [报告]
发表于 2005-04-28 17:05 |只看该作者

关于squid需要注意的一些问题及不足

我在iptables中加入了如下一行:

#forward to squid for www services
/usr/sbin/iptables  -t nat -A PREROUTING -i eth1 -p tcp -s $in_ip_range --dport 80 -j REDIRECT --to-port 3128

在squid.conf文件中設置了如下語句片段(注:squid是squid-2.5.STABLE8版本的):

......
http_port 3128
cache_mem 64 MB
#Default:
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 KB
cache_dir ufs /usr/local/squid/var/cache 100 16 256
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
pid_filename /var/run/squid.pid
ftp_passive on
dns_nameservers 192.168.60.1
redirect_children 5

auth_param basic program /usr/local/squid/libexec/ncsa_auth /usr/squid/passwd

#authenticate_program /usr/sbin/squid_ldapauth

auth_param basic children 5

auth_param basic credentialsttl 2 hours
authenticate_ttl 1 hour

acl password proxy_auth REQUIRED
#acl fileupload req_mime_type -i ^multipart/form-data$

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 acl_query urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi
acl denyssl urlpath_regex -i ^https:\\
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
acl Safe_ports port 591                # filemaker
acl Safe_ports port 777                # multiling http
acl CONNECT method CONNECT
acl ftpok proto ftp
acl allowed_mac arp "/usr/squid/mac"
acl allowed_ip src 192.168.60.60/32 192.168.60.61/32

http_access allow manager localhost
http_access deny manager

http_access allow localhost
http_access allow SSL_ports
http_access allow Safe_ports
http_access allow ftpok
http_access deny !allowed_ip
http_access deny !allowed_mac
http_access allow password allowed_mac
http_access allow all
http_access deny all

icp_access allow all

miss_access allow all

auth_param basic realm Welcome to Proxy.abc.com

cache_effective_user nobody
cache_effective_group nogroup

no_cache deny acl_query
no_cache deny denyssl

httpd_accel_port 80
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
visible_hostname proxy
......

通過squid+iptables原來就實現了透明代理,但是卻無法在透明代理中實現“用戶認證”的功能。其實,對於透明代理來講,主要起作用的就是iptables中的那條forward語句以及squid.conf中的如下幾條語句:
httpd_accel_port 80
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
visible_hostname proxy

在透明代理中,這些acl以及http_access語句是沒有起到任何作用的。因為,如果將這些語句注釋掉的話,仍然能夠正常的訪問internet的。也就是說:在透明代理中,有無那些http_access語句都不會影響到訪問internet的(注:在非透明代理中,那些acl以及http_access語句卻有著很重要的作用,利用它們能夠很好的進行一些控制或限制等功能)。

其實,可以了解一下“透明代理”的工作過程及原理。我個人認為:如果要在“透明代理”中實現“用戶認證”的話,可能必須自己寫腳本。你們認為呢?

真的不明白“zybue”那位朋友是如何在“透明代理”中實現用戶認證的!!!還請指教!

论坛徽章:
0
34 [报告]
发表于 2005-04-28 17:19 |只看该作者

关于squid需要注意的一些问题及不足

其实问题是在当客户端通过网关访问代理服务器时,当80号端口的数据转向3128时,squid 发现有人要通过squid取数据,这时就要用户认证才把3128的数据包转到80号上通过网关到达上网人的Browse.

实际上用户认证只能控制3128端口的数据包,如果你通过8000的UDP去访问QQ服务器又是不需要的。

论坛徽章:
0
35 [报告]
发表于 2005-04-28 17:30 |只看该作者

关于squid需要注意的一些问题及不足

不知道我的解释对不对,但我通过这个确实实现了透明代理,用户也需要输入密码,但这只能控制3128端口的数据包,也许是一个偶然!!!!我用了两年多了,有500多个用户。

论坛徽章:
0
36 [报告]
发表于 2005-04-29 20:18 |只看该作者

关于squid需要注意的一些问题及不足

透明代理和用户认证是可以并存的

讨论透明代理和用户认证问题前,有一个概念大家要区分清楚。

透明代理实现后的用户认证并不是说的只要访问外网就会出来了对话框让

你输入用户名及密码,这样理解是错误的。是不可能做到这样的。

试想一下,在console下面走port 21,53让系统跳出一个认证对话框,这是多么滑稽的事情。

现在有nat的认证,我看过一些资料。不过我再也没有找到相关的资料了。



所以现在讲的透明代理+用户认证都是要设置IE的代理服务器选项的并是在访问WEB时才做得到的。

不是你访问任何port 都会弹出个对话框的。

也不是说你不设置IE也会弹出个对话框让你输入用户名及密码。呵呵。



我们首先要讲的用户认证,是脱离NAT做的认证。原来如下

以squid默认配置讲解

http_port 3128  这里是以3128做代理port


如果你要用户认证的话,那么上http及http方式的ftp就只能从这个3128上过了。

不能做的事情很多,如不能用pop方式收邮件等。因为你不能解析域名,也没有做网关。数据出不去。


有些公司可能需要这样。经理级以上人员不做管控,下面的人员用用户名登录,以便查核访问记录。

公司有这样的要求,我在Linuxaid.com.cn问过,没有好办法。所以只能自己尝试。

后来我将原理弄清楚后,就实现了这样一个功能。

原理如下:

   透明代理及squid用户认证启用后,就有 port 3128,80 这两个都可以上外网。

   port 3128  普通代理(传统代理,需认证)

   port  80   透明代理

   试想一下,如果我们不让用户能直接访问到 80 ,只让他访问到 3128 。

   那么,这台电脑如果想上WEB,那么他只能通过 3128 ,而3128有做认证,所以这台电脑一定要用户认证

   所以,如果你想让用户认证,阻止他直接访问 80 就可以了。 (当然,隧道技术不在此讲)

  怎么样阻止用户直接访问 80 呢,用iptables就可以做的。

  iptables -A FOWARD -s 192.168.0.100 -j DROP

   
  这样认证用户就没办去用透明代理的 80 直接上WEB了,那就老老实实设置IE代理上网吧。

  
  呵呵。原理很简单,是吧?

  注:我不清楚squid官方说的透明代理与用户认证不能共存是什么意思,还望大家指点一二。

http://bbs.chinaunix.net/forum/viewtopic.php?t=335526&show_type=new&start=50&postdays=0&postorder=asc&highlight=

squid和一些别的工具在一起,是可以实现上面贴子中的内容的。

论坛徽章:
0
37 [报告]
发表于 2005-04-30 01:55 |只看该作者

关于squid需要注意的一些问题及不足

透明代理弹出认证框并不荒谬,记得有一次瞎改,竟然能弹出认证框,但无论如何也无法通过密码认证

论坛徽章:
0
38 [报告]
发表于 2005-04-30 17:05 |只看该作者

关于squid需要注意的一些问题及不足

我也认为透明代理弹出认证框并不荒谬,我公司以前提出这个透明代理还要用户认证要求时,我看了资料是不行的,但后来我通过了上100次的试验,是可以的,这是不可以否认的。

是决对可以的,事实胜于雄辨!!!!!

论坛徽章:
0
39 [报告]
发表于 2005-04-30 17:06 |只看该作者

关于squid需要注意的一些问题及不足

我也认为透明代理弹出认证框并不荒谬,我公司以前提出这个透明代理还要用户认证要求时,我看了资料是不行的,但后来我通过了上100次的试验,是可以的,这是不可以否认的。

是决对可以的,事实胜于雄辨!!!!!

如果有谁不相信,我提供机会并请他吃饭,到我这里看看!

论坛徽章:
0
40 [报告]
发表于 2005-05-01 01:49 |只看该作者

关于squid需要注意的一些问题及不足

原帖由 "zbyue" 发表:
我也认为透明代理弹出认证框并不荒谬,我公司以前提出这个透明代理还要用户认证要求时,我看了资料是不行的,但后来我通过了上100次的试验,是可以的,这是不可以否认的。

是决对可以的,事实胜于雄辨!!!!!

如果有谁不相信,我提供机会并请他吃饭,到我这里看看!

提供你的proxy地址就可以了,我用自己的网关将tcp/80转到你那里去,上网试试看是否提示认证框就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP