Squid缓存代理服务器!

  • Squid缓存代理概述
    • 缓存代理的类型
    • 设置缓存代理服务器的好处
    • Web服务器配置
    • Win10客户端配置
    • 搭建透明代理
    • 修改Squid配置文件
    • ACL访问控制
    • Squid日志分析
    • 添加计划任务
    • 搭建反向代理

Squid缓存代理概述

Squid代理服务器是基于Unix的代理服务器(proxy server),它主要提供缓存加速、应用层过滤控制的功能,缓存网页对象,可以减少重复请求

缓存代理的类型

传统代理:适用于Internet,需明确指定服务端(用户需要手动指定代理服务器的ip)

透明代理:客户端不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理

反向代理:客户端需要指定代理服务器,代理服务器定义一个后端真实服务器地址池,通过定义地址池进行反向代理

设置缓存代理服务器的好处

提高Web访问速度
隐藏客户端的真实IP地址

Squid代理配置:

[root@squid ~]# yum install -y gcc gcc-c++ make       #部署依赖环境
[root@squid opt]# tar xvf squid-3.5.27.tar.gz
[root@squid opt]# cd squid-3.5.27/
[root@squid squid-3.5.27]# ./configure --prefix=/usr/local/squid
> --sysconfdir=/etc                                 #将配置文件修改到/etc目录下
> --enable-arp-acl                                   #可在ACL中设置通过MAC地址进行管理,防止IP欺骗
> --enable-linux-netfilter                           #使用内核过滤
> --enable-linux-tproxy                          #支持透明模式
> --enable-async-io=100                             #异步i/o,提升存储性能
> --enable-err-language="Simplify_Chinese"            #错误信息的显示语音
> --enable-underscore                                #允许URL中有下划线
> --enable-poll                                  #使用Poll模式,提升性能
> --enable-gnuregex                                  #使用GNU正则表达式
[root@squid squid-3.5.27]# make && make install
[root@squid squid-3.5.27]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/
[root@squid squid-3.5.27]# useradd -M -s /sbin/nologin squid           #创建程序用户、组
[root@squid squid-3.5.27]# chown -R squid:squid /usr/local/squid/var/  #改变目录属主[root@squid squid-3.5.27]# vim /etc/squid.conf              #修改配置文件

[root@squid squid-3.5.27]# squid -k parse       #检查配置文件
[root@squid squid-3.5.27]# squid -k rec            #重新加载配置文件
[root@squid squid-3.5.27]# squid -zX           #初始化缓存目录

编写squid的启动脚本,启动squid

[root@squid squid-3.5.27]# vim /etc/init.d/squid
#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"case "$1" in
start)netstat -ntap | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "squid is running"elseecho "正在启动 squid...." $CMDfi;;
stop)$CMD -k kill &> /dev/nullrm -rf $PID &> /dev/null;;
status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -ntap | grep squidelseecho "squid is not running"fi;;
restart)$0 stop &> /dev/nullecho "正在关闭 squid..."$0 start &> /dev/nullecho "正在启动 squid...";;
reload)$CMD -k reconfigure     //载入新的配置文件;;
check)$CMD -k parse;;
*)echo "用法:$0{start|stop|reload|status|check|restart}";;
esac
[root@squid squid-3.5.27]# chmod +x /etc/init.d/squid
[root@squid squid-3.5.27]# netstat -antp | grep squid
tcp6       0      0 :::3128                 :::*                    LISTEN      118771/(squid-1)

搭建传统代理

[root@squid squid-3.5.27]# vim /etc/squid.conf      #修改配置文件,添加以下内容
[root@squid squid-3.5.27]# service squid restart
正在关闭 squid...
正在启动 squid...

##修改防火墙规则

[root@squid squid-3.5.27]# iptables -F
[root@squid squid-3.5.27]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

Web服务器配置

Web1:

[root@web1 ~]# yum install -y httpd
[root@web1 ~]# systemctl start httpd
[root@web1 ~]# netstat -antp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      97766/httpd

Web2:

[root@web2 ~]# yum install -y httpd
[root@web2 ~]# systemctl start httpd
[root@web2 ~]# netstat -antp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      98921/httpd

Win10客户端配置

设置–高级–添加代理服务器,地址为192.168.8.100,端口3128

访问Web1服务器IP地址,刷新网页并实时查看访问日志,观察来访IP地址


[root@web1 ~]# tail -f /var/log/httpd/access_log 

搭建透明代理

设备准备:基于上面的传统代理设置,Squid服务器增加一个网卡(VMnet1仅主机,ens37:192.168.8.100,不用设置网关,DNS),Win10的IP地址设置为192.168.8.160,网关为Squid的ens36网卡地址

修改Squid配置文件

[root@squid ~]# vim /etc/squid.conf

[root@squid ~]# service squid restart       #重启squid服务
正在关闭 squid...
正在启动 squid...
[root@squid ~]# netstat -antp | grep squid
tcp        0      0 192.168.140.100:3128    0.0.0.0:*               LISTEN      121733/(squid-1
[root@squid ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf    #添加路由转发
[root@squid ~]# sysctl -p
net.ipv4.ip_forward = 1##添加防火墙规则,将来源140网段的80和443端口的流量重定向到3128端口
[root@squid ~]# iptables -F
[root@squid ~]# iptables -t nat -F
[root@squid ~]# iptables -t nat -I PREROUTING -i ens36 -s 192.168.140.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@squid ~]# iptables -t nat -I PREROUTING -i ens36 -s 192.168.140.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
[root@squid ~]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT        #由于前面清理了规则,这里需要重新放通3128端口

ACL访问控制

格式:
acl 列表名称 列表类型 列表内容
acl localhost src 192.168.140.100/24            #源地址为192.168.140.100
acl MYLAN src 192.168.140.0/24                  #客户机网段
acl destinationhost dst 192.168.118.100/32      #目标地址为192.168.118.100
acl MC20 maxconn 20                             #最大并发连接20
acl PORT port 21                                #目标端口21
acl DMBLOCK dstdomain .qq.com                   #目标域,匹配域内所有站点
acl BURL url_regex -i ^rtsp:// ^emule://        #以rtsp://. emule://开头的URL,-i表示忽略大小写
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$   #以 .mp3、.mp4、.rmvb结尾的URL路径
acl WORKTIME time MTWHF 08:30-17:30             #时间为周一-至周五8:30~17:30, "MTWHF"为每个星期的英文首字母
[root@squid ~]# vim /etc/squid.conf     #修改配置文件,添加一条规则

Squid日志分析


[root@squid ~]# cd /opt
[root@squid opt]# tar xzf sarg-2.3.7.tar.gz                #解压sarg包
[root@squid opt]# yum install -y gd gd-devel pcre-devel        #安装依赖环境
[root@squid opt]# cd sarg-2.3.7/
[root@squid sarg-2.3.7]# ./configure --prefix=/usr/local/sarg \
> --sysconfdir=/etc/sarg \              #设置配置文件目录,
> --enable-extraprotection               #额外安全防护
[root@squid sarg-2.3.7]# make && make install
[root@squid sarg-2.3.7]# vim /etc/sarg/sarg.conf










[root@squid sarg-2.3.7]# touch /usr/local/sarg/noreport
[root@squid sarg-2.3.7]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin
[root@squid sarg-2.3.7]# sarg
SARG: Records in file: 3695, reading: 100.00%
SARG: Successful report generated on /var/www/html/sarg/2021Jul28-2021Jul28
[root@squid sarg-2.3.7]# yum install httpd -y
[root@squid sarg-2.3.7]# systemctl start httpd
[root@squid sarg-2.3.7]# netstat -antp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      127474/httpd

添加计划任务

[root@squid sarg-2.3.7]# vim /usr/local/sarg/report.sh
#!/bin/bash
#Get current date                               #获取准确时间
TODAY=$(date +%d/%m/%Y)
#Get one yesterday 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
[root@squid sarg-2.3.7]# chmod +x /usr/local/sarg/report.sh
[root@squid sarg-2.3.7]# crontab -e
0 0 * * * /usr/local/sarg/report.sh
[root@squid sarg-2.3.7]# crontab -l
0 0 * * * /usr/local/sarg/report.sh

搭建反向代理

工作机制:缓存网页对象,减少重复请求,讲互联网请求轮询或按权重分配到内网Web服务器,代理用户请求,避免用户直接访问Web服务器,提高安全

[root@squid sarg-2.3.7]# iptables -F
[root@squid sarg-2.3.7]# iptables -t nat -F
[root@squid sarg-2.3.7]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
[root@squid sarg-2.3.7]# vim /etc/squid.conf           #修改配置文件


第六十五集 Squid缓存代理服务(p≧w≦q)相关推荐

  1. 美学心得(第二百三十五集) 罗国正

    美学心得(第二百三十五集) 罗国正 (2022年3月) 3015.我比较喜欢"破茧化蝶"这个成语,它充满象征意义和美感.其实,人的成长过程,人类的发展就象不断的"破茧化蝶 ...

  2. 美学心得(第二百四十五集) 罗国正

    美学心得(第二百四十五集) 罗国正 (2023年2月) 3039.清朝文学家张惠言,是江苏武进人,三十八岁中进士,官至翰林院编修,工词文,他的美学成就居于常州词派的创始地位,他一生得志的时间很短,享年 ...

  3. 六十五、Leetcode数组系列(上篇)

    @Author:Runsen @Date:2020/6/5 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  4. 六十五年来,他的祖国向他道歉了三次

    △ "人工智能之父"艾伦 · 麦席森 · 图灵 (Alan Mathison Turing,1912-1954) 2021年6月23日是英国科学家."人工智能之父&quo ...

  5. JavaScript学习(六十五)—数组知识点总结

    JavaScript学习(六十五)-数组 学习内容 一.什么是数组 二.数组的分类 三.数组的创建方式 四.数组元素 五.数组的操作 六.数组元素遍历的四种方法 七.随机数为数组赋值 八.数组的比较 ...

  6. 信息系统项目管理师核心考点(六十五)信息安全基础知识网络安全

    科科过为您带来软考信息系统项目管理师核心重点考点(六十五)信息安全基础知识网络安全,内含思维导图+真题 [信息系统项目管理师核心考点]信息安全基础知识网络安全 1.拒绝服务攻击(Dos) 一种利用合理 ...

  7. 陈艾盐:春燕百集访谈节目第二十五集

    <春燕姐姐>访谈节目共120集,每月分10集播出,记录了上百位企业家对"慈善"的各种不同见解,通过讲述社会真善美的故事,让更多的人了解慈善.发扬慈善精神,构建更加美好, ...

  8. 陈艾盐:《春燕》百集访谈节目第六十九集

    <春燕>访谈节目共120集,每月分10集播出,记录了上百位企业家对"慈善"的各种不同见解,通过讲述社会真善美的故事,让更多的人了解慈善.发扬慈善精神,构建更加美好,和谐 ...

  9. 陈艾盐:《春燕》百集访谈节目第六十二集

    <春燕>访谈节目共120集,每月分10集播出,记录了上百位企业家对"慈善"的各种不同见解,通过讲述社会真善美的故事,让更多的人了解慈善.发扬慈善精神,构建更加美好,和谐 ...

最新文章

  1. R语言dplyr包if_else条件判断选择函数实战
  2. jquery简单使用入门
  3. nginx中的try_files指令解释
  4. 15.7 擦除的神秘之处
  5. Salesforce 小知识:大量“子记录”的处理方法
  6. 推荐30个新鲜出炉的精美 jQuery 效果
  7. leetcode1466. 重新规划路线(dfs)
  8. 使用uuid作为数据库主键,被技术总监怼了!
  9. hibernate mysql自定义变量_hibernate 跟 MySql in的参数变量
  10. Q132:PBRT-V3,BSSRDF(双向散射表面反射分布函数)(5.6.2章节、11.4章节)
  11. list自定义排序工具类
  12. 图像原始格式 YUV444 YUV422 YUV420 详细解析
  13. 大数据安全和网络安全基础知识
  14. windows 2003 系统中安装 火狐浏览器
  15. java环境安装1359错误_iserver java api接口频发错误
  16. android手机定时截屏软件,最好用的截图软件 安卓手机截图软件横评对比
  17. 三体 读后思考-泰勒展开/维度打击/黑暗森林
  18. 老外的各种no-sql数据库的比较贴
  19. mysql-获取当前系统时间
  20. Firefox全历史版本下载

热门文章

  1. python中reduce函数的运用_python 中 reduce 函数的使用
  2. TX2调试之远程桌面控制
  3. 植发搞笑图片_搞笑GIF段子:植发三天了,越来越粗壮了!!
  4. 物联网毕业设计 NBIOT远程通信系统
  5. 手机下载正版linux,约战竞技场手机正版
  6. 常见文件的加密工具类
  7. 微信菜单 html页面添加的,微信公众号菜单进入的页面切换第二次失效
  8. html中的float含义,float是什么意思?
  9. terraform登录ec2实例
  10. 辽宁最新特种工(塔式起重机)操作证模拟题库及答案解析