Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。
按照代理类型的不同,可以将Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。此处要介绍的是最简单的普通代理的安装配置方法。
1.安装
yum install -y squid
2.修改配置
vi /etc/squid/squid.conf
配置或添加局域网地址列表,如:
acl localnet src 0.0.0.0/23
修改配置:
http_access allow CONNECT !SSL_ports #允许除列表中的其他https端口连接
http_access allow all #允许所有地址的http连接
ps:如果本机的hostname非默认的localhost,需要在配置文件最后加上如下配置(否则启动会报错):
visible_hostname hostname
hostname是指主机名,本机唯一的一个名字。
以上面图片为例,localhost.localdomain为主机名,但一般简写成localhost就可以啦!
3.初始化并重启
squid -z #初始化
service squid restart #重启
4.配置iptables
vi /etc/sysconfig/iptables #加上如下策略,squid的默认端口为3128,也可根据需要在配置文件中修改
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT
service iptables restart
5.验证
此时即已完成免认证的代理的搭建,可在其它设备上执行命令验证:
curl -x IP:3128 www.baidu.com
如上图所示,表示代理配置成功!
6.配置用户验证
1)修改配置文件
# vi /etc/squid/squid.conf
在配置文件中添加:
auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users
认证配置说明:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd : 选择的认证方式为basic,认证程序路径和密码文件路径,指定密码文件和用来验证密码的程序
auth_param basic children 5 : 鉴权进程的数量
auth_param basic realm Squid proxy-caching web server : 用户输入用户名密码时看到的提示信息
auth_param basic credentialsttl 2 hours : 用户名和密码的缓存时间,也就是说同一个用户名多久会调用 ncsa_auth 一次。
auth_param basic casesensitive off : 用户名是否需要匹配大小写,on为区分,off为不区分
acl ncsa_users proxy_auth REQUIRED : 所有成功鉴权的用户都归于 ncsa_users 组
http_access allow ncsa_users : 允许 ncsa_users 组的用户使用 Proxy
2)配置用户
# touch /etc/squid/squid_passwd
# chown squid /etc/squid/squid_passwd
# yum install httpd-tools
# htpasswd /etc/squid/squid_passwd squiduser #生成用户squiduser的密码文件
#service squid restart #重启
至此,已完成代理认证信息的配置!
完成代理认证信息的搭建,可在其它设备上执行命令验证:
curl -x <代理服务器地址:端口号> -U <用户名:密码> <目标URL>
例如:curl -x IP:3128 -U user:password http://www.baidu.com