squid缓存服务器介绍、安装及使用

一、squid服务基础

1.缓存代理概念

作为应用层的代理服务软件,squid主要提供缓存加速和应用层过滤(ACL)的功能

2.代理的基本类型

1)传统代理:必须在客户机手动设置代理服务器的地址和端口,才能使用代理服务器访问网络
2)透明代理:客户机不需要手动指定代理服务器的地址和端口,而是通过网关服务器将web访问重定向,实际上仍然交给代理服务器处理

二、安装squid

1. 解压
tar zxf squid-3.4.6.tar.gz -C /usr/src
2.配置(需要gcc、gcc-c++、cmake,使用yum安装即可)
./configure  --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable--underscore --enable-poll --enable-gnuregex
选项及解释
--prefix:安装路径
--sysconfdir:配置文件的目录
--enable-arp-acl:这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗
--enable-linux-netfilter:使用内核过滤
--enable-linux-tproxy :支持透明模式
--enable-async-io:异步IO,提升存储性能
--enable-err-language:错误信息的显示语言
--enable--underscore:允许URL中有下划线
--enable-poll:使用poll()模式,提升性能
--enable-gnuregex:使用GNU正则表达式
3.创建连接路径、用户和组
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid:squid /usr/local/squid/var
4.修改squid的配置文件
vim /etc/squid.conf
添加:
cache_effective_user squid	#指定程序用户,用来设置初始化、运行时的账号,否则启动不成功
cache_effective_group squid  #指定账号的基本组
5.squid运行控制

1)检查配置文件的语法

squid -k parse

2)初始化(必须停止程序、缓存目录为空)

squid -z

3)启动

squid

4)编写squid服务控制脚本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、构建代理服务器

1.传统代理

1)修改配置文件

vim /etc/squid.conf
将"http_access deny localhost"改为"http_access allow localhost"
也可以将"http_access allow localhost`放在"http_access deny localhost"之前

2)添加防火墙策略

iptables -t filter -I INPUT -p tcp --dport 3128 -j ACCEPT
iptables -t filter -I INPUT -p tcp --sport 3128 -j ACCEPT

3)在客户机的浏览器中修改代理

ip:squid服务器ip,端口:3128

4)建立一个用来测试的网站服务器,并有客户机访问
5)查看网站服务器的日志,看是否是有代理服务器的ip来访问的
添加代理前
在这里插入图片描述
添加代理后
在这里插入图片描述
6)linux的客户机设置代理

vim /etc/profile
HTTP_PROXY=http://192.168.1.2:3128  #为使用HTTP协议指定代理
HTTPS_PROXY=http://192.168.1.2:3128	#为使用HTTPS协议指定代理
FTP_PROXY=http://192.168.1.2:3128	#为使用FTP协议使用代理
NO_PROXY=192.168.1.,192.168.2.	    #不使用代理的网段
export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY
source /etc/profile
2.透明代理(安装在网关服务器上)

1)修改配置文件

vim /etc/squid.conf
修改"http_port"为"httpd_port 192.168.1.1:3128 transparent" 
#需要提供代理的网段或ip

2)设置防火墙重定向策略

iptables -t nat -I PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to 3128	#内网网卡
iptables -t nat -I PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
#将http和https交由代理

保存防火墙规则

service iptables save

三、ACL访问控制

1.定义访问控制列表

在配置文件中,每一行配置可以定义一条访问控制列表

语法:
acl 列表名称 列表类型 列表内容
#列表名称由管理员自己定义

在这里插入图片描述
例:

acl localnet src 127.0.0.1/255.255.255.255     #源地址为127.0.0.1
acl MYLAN src 192.168.1.0/24  # 客户机网段
acl to_localhost dst 127.0.0.1/8  # 目标地址为127.0.0.1/8网段
acl MC20 maxconn 20       # 最大并发连接20
acl BlackURL url_regex -i ^rtsp://      # 以rtsp开头的url
acl YINYUE urlpath_regex -i \.mp3$ \.rmvb$  #以这些结尾的URL路径	
acl TIME time MTWHF 8:30-17:30  #时间为周一到周五的8:30-17:30
2.当限制的同一类对象较多时,可以使用独立文件来存放,在ACL配置行的列表内容除指定对应的文件位置即可

例:

acl IPBLOCK dst "/etc/squid/ipblock.list"
3.设置访问权限

定义好访问控制列表后,需要使用httpd_access配置项来控制,每一行httpd_access配置确定一条访问控制规则

语法:
httpd_access allow/deny 列表名

例:

httpd_access deny MYLAN YINYUE #禁止客户机下载MP3、MP4文件
httpd_access deny MYLAN MC20  #客户机的并发连接达到20是将被阻止
4.没有设置任何规则时,默认拒绝客户端的请求

四、squid日志分析

1.安装日志分析软件sarg

1)安装GD库

yum -y install gd gd-devel

2)安装sarg
创建安装目录

mkdir /usr/local/sarg

解压
配置

./configure --prefix= /usr/local/sarg -sysconfdir=/etc/sarg --enable-extraprotection
#-sysconfdir:配置文件目录
#--enable-extraprotection:添加额外的安全保护

安装

make && make install

3)修改配置文件

vim /etc/sarg/sarg.conf
access_log /usr/local/squid/var/access.log/  #指定squid的访问日志文件
title "Squid User Access Reports"   #网页标题
output_dir /var/www/html/sarg   #sarg报告的输出目录
user_ip no    #使用用户名显示
exclude_ hosts /usr/local/sarg/noreport    #指定不计入排序的站点列表文件
top user_sort_ field connect BYTES reverse     #在top排序中,指定连接次数、访问字节数,采用降序排列,升序将reverse换成normal
user_sort_field connect reverse				#对于用户访问记录,连接次数按降序排列
overwrite report no			#当那个日期报告已经存在,是否覆盖报告
mail_utility mailq.postfix			#发送邮件报告的命令
charset UTF-8			#使用字符集
weekdays 0-6			#指定top排序时的星期周期,0为周日
hours 9-12,14-16,18-20		#指定top排序时的时间周期
www_document_root /var/www/html		#网页根目录

上述配置中添加了不计入排序的站点,需要存在下面这个文件
touch /usr/local/sarg/noreport
4)启动

sarg

可以在配置文件中设置字体、颜色等信息方便查询。多次执行sarg后,在客户端访问sarg/目录,可以看到生成的报表
5)计划任务
编写脚本

vim /usr/local/sarg/daily.sh 
#/bin/bash
TODAY=$(date +%d/%M/%Y)
#Get one week ago today
YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y)
/usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg -z -d $YESTERDAY-$TODAY &> /dev/null
exit 0

给脚本添加执行权限

chmod +x /usr/local/sarg/daily.sh

创建计划任务

crontab -e
00 00 * * * /usr/local/sarg/daily.sh

将计划任务设为开机启动

chkconfig crond on
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值