squid 代理服务器的安装配置
2011-11-16在公司一直给大家用Apache的代理功能给大家代理上网,用mysql做口令认证服务。但是由于Apache同时还要服务好多系统其他应用,用作代理性能确实比较一般。所以我今天就尝试使用比较专业的代理服务器squid。
一向比较喜欢从源码编译安装的,不过最近偷懒了,yum用的习惯了,直接yum安装了一个squid。
1 |
yum install squid |
搞定之后,开始简单的配置。
默认只允许localhost使用的,编辑 /etc/squid/squid.conf,做简单的修改就可以使用了:
1 2 3 4 5 6 |
acl localnet src 172.16.0.0/12 <-- 加上一个本地网络范围 ...... http_access allow localnet <-- 允许本地网络使用 http_access deny all ...... visible_hostname dev.xueron.com <-- 加上这个,不然没有配一个有用的主机名的话,启动会报错滴 |
启动squid,
1 |
/etc/init.d/squid start |
就可以在浏览器里面开始使用啦,默认端口是3128。
我是计划使用squid的pam_auth模块,通过pam_mysql实现使用mysql进行认证的。首先安装一下pam_mysql,从sourceforge上下载pam_mysql源码,编译,安装:
1 2 3 4 5 6 7 |
tar zxf pam_mysql-0.7RC1.tar.gz cd pam_mysql-0.7RC1 ./configure --prefix=/usr --with-mysql=/usr/bin/mysql_config \ --with-openssl --with-pam=/usr --with-cyrus-sasl=/usr \ --with-pam-mods-dir=/lib/security make make install |
然后修改squid的pam配置 /etc/pam.d/squid:
1 2 3 4 5 |
#%PAM-1.0 #auth include system-auth #account include system-auth auth required pam_mysql.so user=root passwd=root db=zentao host=localhost table=zt_user usercolumn=account passwdcolumn=password crypt=3 account required pam_mysql.so user=root passwd=root db=zentao host=localhost table=zt_user usercolumn=account passwdcolumn=password crypt=3 |
具体参数的使用方法,可以参看pam_mysql源码包里面的README,这里crypt=3是指我的密码加密方式是md5的。
OK,接着修改 squid.conf :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# 认证相关配置 auth_param basic program /usr/lib/squid/pam_auth -o auth_param basic children 10 auth_param basic realm dev.jsptpd.com auth_param basic credentialsttl 2 hours ...... acl password-pam proxy_auth REQUIRED <-- 这里加一个认证用户的acl acl localnet src 172.16.0.0/12 ...... http_access allow password-pam <-- 仅通过认证的用户可以访问,其他都deny掉了 #http_access allow localhost #http_access allow localhost #http_access allow localnet http_access deny all ...... |
重启squid,再次使用浏览器,就会弹出认证框,提示输入用户名和密码了。
分类:技术 | 标签: |
好简单啊。
还可以写更多的,比如命中率,哪些要cache下来,哪些不cache,cache的生命周期多久