Linux下Squid代理服务器的安装与配置,带用户认证功能

来源:互联网 发布:网络存在劫持 编辑:程序博客网 时间:2024/06/05 17:53
基础环境
CentOS release 6.5 (Final) 64位
squid 3.1.23-9.el6
SELINUX=disabled
HTTP Service: stoped

1、安装squid

检查squid软件是否安装
# rpm -qa|grep squid

如果未安装,则使用yum 方式安装
# yum -y install squid

设置开机自启动
# chkconfig --level 345 squid on  //在3、4、5级别上自动运行squid服务

2、squid服务器的配置文件说明

squid 的主配置文件是 /etc/squid/squid.conf,所有squid的设定都是在这个文件里配置,
下面我们来讲解一下该文件的配置选项。

http_port 3128      //设置监听的IP与端口号
cache_mem 64 MB      //额外提供给squid使用的内存,squid的内存总占用为 X * 10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位),
              //比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。
maximum_object_size 4 MB   //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
minimum_object_size 0 KB   //设置squid磁盘缓存最小文件
maximum_object_size_in_memory 4096 KB   //设置squid内存缓存最大文件,超过4M的文件不保存到内存
cache_dir ufs /var/spool/squid 100 16 256   //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量
logformat combined %&gt;a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh        //log文件日志格式
access_log /var/log/squid/access.log combined  //log文件存放路径和日志格式
cache_log /var/log/squid/cache.log   //设置缓存日志
logfile_rotate 60   //log轮循 60天
cache_swap_high 95  //cache目录使用量大于95%时,开始清理旧的cache
cache_swap_low 90   //cache目录清理到90%时停止。
acl localnet src 192.168.1.0/24  //定义本地网段
http_access allow localnet  //允许本地网段使用
http_access deny all  //拒绝所有
visible_hostname squid.david.dev  //主机名
cache_mgr china@qq.com  //管理员邮箱



我自己的实际增加的配置:
cache_mem 64 MB
maximum_object_size 4 MB
minimum_object_size 0 KB
maximum_object_size_in_memory 4096 KB
cache_dir ufs /var/spool/squid 4048 16 256
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
logfile_rotate 80
cache_swap_low 90
visible_hostname squid



添加用户认证(在第一个:http_access 前加上以下内容,重要)

#用户认证需要添加
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic credentialsttl 2 hours
auth_param basic realm Example.com's Squid proxy-caching
acl auth_user proxy_auth REQUIRED
http_access allow auth_user
auth_param basic casesensitive off


注释:
第一行:选择的认证方式为basic,认证程序路径和密码文件路径。
第二行:认证程序的进程数
第三行:认证有效时间
第四行:认证领域内容,上面定义的web浏览需要输入用户密码
第五,六行:设置允许认证的用户访问,指明接收所有合法用户的访问
第七行:指定是否区分用户名大小写,on为区分,off为不区分。



#user acl
auth_param basic program /usr/lib64/squid/ncsa_auth /usr/lib64/squid/passwd
auth_param basic children 5
auth_param basic credentialsttl 2 hours
auth_param basic realm My Proxy Caching Domain
acl auth_user proxy_auth REQUIRED
http_access allow auth_user

接着生成密码文件:
htpasswd -c /usr/lib64/squid/passwd user1

接下来输入二次密码password1,确认。
为user1 这个用户添加密码进行验证访问的过程就结束了。

如果还要添加其它用户,则不用加参数-c了
htpasswd /usr/etc/passwd xingxing
重新启动Squid,密码认证生效


重启squid服务:
/etc/init.d/squid restart

刷新
/usr/sbin/squid -s


一切配置以后:
squid –z 初始化缓存
squid –k parse 检查语法
service squid start 启动squid
chkconfig squid on 加入开机启动
netstat –nltp   查看3128端口是否打开


客服端的配置:
ip : 192.168.1.12 gw:192.168.1.1

然后打开浏览器-工具-选项-连接-局域网设置-代理服务器

地址:192.168.1.1 端口:3128

一切搞定之后在浏览器输入www.baidu.com即可访问!
0 0
原创粉丝点击