编译安装带有mac验证的squid代理服务器

由于Squid的RPM发布版通常没有启用这一特性,这种版本使用MAC匹配会提示错误的acl类型,所以我们必须手工编译源代码。下载squid,http://www.squid-cache-org

./configure --prefix=/data/squid/app  --enable-arp-acl --enable-gnuregex  \
--disable-carp --enable-async-io=240 --disable-wccp --enable-icmp --enable-kill-parent-hack \
--enable-cachemgr-hostname=localhost --enable-snmp --disable-ident-lookups --enable-delay-pools \
--enable-cache-digests --with-maxfd=65535 --enable-poll --enable-linux-netfilter \ 
--enable-large-cache-files --disable-internal-dns --enable-underscore
make $$ make install
 

关于编译参数的说明

–prefix=/usr/local/squid :指定软件的安装路径
–enable-gnuregex :支持GNU正则表达式。
–disable-carp: Cache数组路由协议(CARP)用来转发丢失的cache到父cache的数组或cluste
–enable-async-io=240等同于同时打开./configure如下三个选项
--with-aufs-threads=N_THREADS
--with-pthreads
--enable-storeio=ufs,aufs
这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了。另外此项还另cache文件支持aufs
--disable-wccp用于阻止或分发HTTP请求到一个或多个caches
–enable-icmp :加入icmp支持
–enable-kill-parent-hack :关掉suqid的时候,要不要连同父进程一起关掉
--enable-cachemgr-hostname=localhost:指定cachemgr-hostname值为localhost
-- enable-snmp :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
–disable-ident-lookups :防止系统使用RFC931规定的身份识别方法。
--enable-delay-pools 开启squid延时池功能
–enable-cahce-digests :加快请求时,检索缓存内容的速度。
–enable-err-language=”Simplify_Chinese” 和
–enable-default-err-languages=”Simplify_Chinese” :指定出错是显示的错误页面为简体中文
--with-maxfd=65535指定最大文件描述
–enable-poll :指定使用Poll()函数,提升性能就是啦。
--disable-ident-lookups允许服务器利用客户端的特殊TCP连接来发现用户名
–enable-linux-netfilter :可以支持透明代理
--enable-large-cache-files开启大文件支持,支持2GB以上的文件
--disable-internal-dns使用自己的内部DNS查询
–enable-underscore :允许解析的URL中出现下划线,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址
–enable-arp-acl :可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗。
 

添加mac限制

acl access_group arp 00:26:18:bb:d0:5e      #MAC地址验证多个中间用空格分开
http_access allow access_group
 

 

/usr/local/squid/sbin/squid -z

#创建缓存目录

/usr/local/squid/sbin/squid -k parse

#可以根据这个测试命令用来验证squid.conf的语法和配置(如果不OK会有相应的提示根据提示来修改配置文件)/usr/local/squid/sbin/squid-kreconfig#重新加载配置netstat-an|grep8080#如有输出就表示正常,设置测试OK.

相关推荐