squid

防止自己的squid被当成代理来用[技术]

今天群里有个人问,自己的squid总被公网上的人拿来当代理上网用,要如何解决
我现在就把自己维护过程中用的几个方法总结一下
1,设定域名的办法
思路:定义好自己的域名,只有自己的域名能被squid代理,自己域名以外的任何域名都被deny
配置:

acl mydomain dstdomain a.b.c     #定义自己的域名
http_access allow mydomain       #只允许自己的域名被访问
http_access deny all             #阻止所有一切访问

然后重启squid,这样别人就无法使用你的squid作为代理了,但你的业务还是保持正常的
但以上办法,被阻止的人会看到你的squid的错误页面,如果你会改源码,可以做个新的错误页面,所以还有个更完美的办法来实现,就是使用deny_info这个参数,配置如下

acl mydomain dstdomain a.b.c      #定义自己的域名
http_access allow mydomain        #只允许自己的域名被访问
http_access deny all              #阻止所有一切访问

deny_info http://a.b.c all        #阻止所有访问的同时,把请求转到a.b.c主页

这样做最终结果就是无论外部的人用你的squid访问什么网站都会跳到你的首页,这招挺损的,哈哈
再说说另外的一个方法吧
2,不使用dns
多数人都喜欢在自己的服务器上配置dns,但往往squid后端的RS都是内网地址,解析都是通过hosts文件走的,或者内部的dns,这样如果你设置了 dns,就可能会被外面的人利用上网,所以我的做法是去掉dns,只使用hosts文件,同时在启动squid是使用-D参数,这个参数的意思就是不检测本地dns

通过以上两个办法足以使你的squid不会被外人拿来使用

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.