当前位置:首页 > CN2资讯 > 正文内容

squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理

11小时前CN2资讯

缓存代理概述

  • Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址、目标地址、访问的URL路径、访问的时间等条件进行过滤。 作为应用层的代理服务器软件,Sqiod主要提供了缓存加速和引用层过滤控制能力
  • 代理的工作机制

当客户机通过代理来请求 Web 页面时,指定的代理服务器,会先检查自己的缓存如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面内容反馈给客户机;如果缓存中没有客户机需要访问的页面,则用代理服务器向Internet 发送访问请求。

由于客户机的Web 访问请求实际上时由代理服务器来代替完成的,从而可以隐藏用户的真是IP地址,起到一定的保护作用。另一方面,代理服务器承担这类似经纪人人的角色,所以有机会针对要访问的目标,客户机,访问的时间段等进行过滤控制。

  • 传统代理:也就是普通的代理服务,首先必须在客户机的浏览器,QQ聊天工具消灾软件过程中手动设置代理服务器地址和端口,然后才能使用代理武器来访问网络,
  • 透明服代理:提供传统意义上的代理,区别在于客户机不需要指定代理服务器的地址和端口,而是通过默认路由,防火墙策咯将Web访问重定向,实际上仍然交给代理服务器,来处理。使用透明代理网页浏览器访问的网站的域名解析请求将有限交给DNS服务器
    • 安装及运行控制
    mount.cifs //192.168.100.1/squid /abc/ #挂在共享目录 tar zxvf squid-3.4.6.tar.gz -C /opt/ #解压 cd /opt/squid-3.4.6 yum install gcc gcc-c++ make cmake -y //由于时手工编译安装所以需要安装一些需要的环境 ./configure --prefix=/usr/local/squid \ #安装目录 --sysconfdir=/etc \ #单独将配置文件修改到其他目录 --enable-arp-acl \ #可在规则中设置为直接通过客户端MAC进行管理,放置客户端使用IP欺骗 --enable-linux-netfilter \ # 使用内核过滤 --enable-linux-tproxy \ # 支持透明模式 --enable-async-io=100 \ #异步I/O提升存储性能,相当于 --enable-pthreads --enable-storeio=ufs,aufs --enable-err-language="Simplify_Chinese" \ #错误信息的显示语言 --enable-underscore \ #允许URL中有下划线 --enable-poll \ #使用poll()模式提升性能 --enable-gnuregex #使用GNU正则表表达式 manke && make install
    创建链接文件 创建用户和组 制作启动脚本
    ln -s /usr/local/squid/sbin/* /usr/local/sbin/ 创建链接文件 创建用户和组 useradd -M -s /sbin/nologin squid chown -R squid.squid /usr/local/squid/var/ vim /etc/squid.conf #修改配置文件 http_access allow all http_access deny all http_port 3128 cache_mem 64 MB #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4 reply_body_max_size 10 MB #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制 maximum_object_size 4096 KB #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户 cache_effective_user squid #添加 指定程序用户 cache_effective_group squid #添加 指定账号基本组 coredump_dir /usr/local/squid/var/cache/squid squid -k parse //检查配置文件语法 squid -z //初始化缓存目录 squid //启动服务 cd /etc/init.d/ vim 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 -natp | grep squid &> /dev/null if [ $? -eq 0 ] then echo "squid is running" else echo "正在启动 squid..." $CMD fi ;; stop) $CMD -k kill &> /dev/null rm -rf $PID &> /dev/null ;; status) [ -f $PID ] &> /dev/null if [ $? -eq 0 ] then netstat -natp | grep squid else echo "squid is not running" fi ;; restart) $0 stop &> /dev/null echo "正在关闭 squid..." $0 start &> /dev/null echo "正在启动 squid..." ;; reload) $CMD -k reconfigure ;; check) $CMD -k parse ;; *) echo "用法:$0{start|stop|status|reload|check|restart}" ;; esac chmod +x squid #提升执行权限 chkconfig --add squid #加如到被系统所管理 chkconfig --level 35 squid on #实现开机自启动 iptables -F setenforce 0 iptables -I INPUT -p tcp --dport 3218 -j ACCEPT 整对于 INPUT链 指定 tcp 目标端口 3218 允许转发 service squid reload

    透明代理
    配置双网卡内网ens33 外网ens36 echo "1" > /proc/sys/net/ipv4/i[_forward //开启路由转发功能 vim /etc/squid.conf http_port 192.168.100.1:3128 transparent //只在其中一个IP地址上提供代理 service squid reload iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

    ACL访问控控制
    • squid 提供了强大的代理控制机制,通过合理设置ACL访问控制列表,并进行限制,可以针对源地址、目标地址、访问的URL路径,访问的是时间各种条件进行过滤。
    • 在配置文件squid.confACL访问控制通过以下两个步骤实现:其一,使用acl配置的定义需要控制的条件;其二通过http access 配置项对已定义的列表做“允许”或拒绝访问控制
    • squid预定义的列表类型有和多种,常用的包括源地址,目标地址,访问时间,访问端口。
    列表类型 列表内容实列 含义\通途 src 192.168.1.168/192.168.1.0/24、192.168.1.0-192.168.3.0/24 源IP地址,网段、IP地址范围 dst 216.163.137.3、61.135.167.0/24、www.playboy.com 目标IP地址、网段、主机名 por 80 443 8080 20 21 目标端口 dstdomain . 目标域,匹配域的所在站点 time MTWHF 8:30-17:30 12:00-13:00 AS 使用代理服务器的时间段 字母表示一个星期隔天的英文所缩写 maxconn 20 每个客户机的并非连接数 最大连接数 url_regex url_regex-i^rtsp:// url_regex-i^emule:// 目标资源的URL地址,-i表示忽略大小写^以什么开头 urlpath_regex urlpath_regex -i sex adult urlpath_regex-i.mp3$ 目标资源的真个URL路径,-i表示忽略大小写
    • 在定义访问控制列表时。因该结合当前往网络环境真确的分析用户发文需求 当需要限制的同一类型比较多时,可以通过使用独立的文件来存放。在acl配置行的列表内容处指定对应的文件位置即可 没有设置任何规则时:squid服务将拒绝客户端的请求 有规则但是涨找不到想匹配的选项squid 将采取与最后一条规则相反的权限,即如果最后一条规则时allow,就拒绝客户端请求,否则允许该请求,建议采用,先拒绝后允许,或者先允许在拒绝,的方式最后一条规则设为默认策略,可以为http_access allow all 或者http_access deny all
    • 实验部署
    名称 IP地址 squid服务器 192.168.100.7 wed1服务器 192.168.100.8 wed2服务器 192.168.100.9 客户端W7 192.168.100.10
    • 修改定义配置文件内
    vim /etc/squid.conf # Deny requests to certain unsafe ports 对于端口进行控制 # Only allow cachemgr access from localhost 对于列表进行控制 acl localhost src 192.168.100.10/32 #基于源地址 acl MYLAN src 192.100.0/24 #基于源网段 acl destionhost dst 192.168.100.10/32 #基于目标地址 acl MC20 maxconn 20 #基于端口 acl BURL url_regex -i ^rtsp:// ^emule:// #目标资源的URL地址,-i表示忽略大小写(以什么什么开头) acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ #目标资源的整个URL路径,-i表示忽略大小写(以什么什么结尾) acl work time MTWHF 08:30-17:30 #基于时间段禁止访问 mkdir /etc/squid #启用对象列表管理 vim dest.list #创建如都在统一网段或者定义大部分禁止访问的地址 192.168.100.10 #客户端W7 vim /etc/squid.conf acl destionhost dst "/etc/squid/dest.list" #写入前面创建的的文件路径到需要添加或者删除只需要在前面创建的文件里定义就可以不用在请主配置文件修改 http_access deny destionhost #拒绝列表(注意置顶) service squid restart

    日志分析
    yum install -y gd gd-devel #图像处理 httpd -y mkdir /usr/local/sarg tar zxvf sarg-2.3.7.tar.gz -C /opt/ cd /opt/sarg-2.3.7 ./configure --prefix=/usr/local/sarg \ --sysconfdir=/etc/sarg \ --enable-extraprotection #额外安全防护 make && make install cd /etc/sarg/ vim sarg.conf access_log /usr/local/squid/var/logs/access.log //指定访问日志文件 title "Squid User Access Reports" //网页标题 output_dir /var/www/html/squid-reports //报告输出目录 user_ip no //使用用户名显示 exclude_hosts /usr/local/sarg/noreport //不计入排序的站点列表文件 topuser_sort_field connect reverse //top排序中有连接次数、访问字节、降序排列 升序是normal user_sort_field reverse //用户访问记录 连接次数、访问字节按降序排序 overwrite_report no //同名日志是否覆盖 mail_utility mailq.postfix //发送邮件报告命令 charset UTF-8 //使用字符集 weekdays 0-6 //top排行的星期周期 hours 0-23 //top排行的时间周期 www_document_root /var/www/html //网页根目录 #添加不计入站点文件,添加的域名将不被显示在排序中 touch /usr/local/sarg/noreport ln -s /usr/local/sarg/bin/sarg /usr/local/bin/ [root@localhost sarg]# sarg SARG: 纪录在文件: 242, reading: 100.00% SARG: 成功的生成报告在 /var/www/html/squid-reports/2018Jul21-2018Jul21 yum install httpd -y http://192.168.175.128/squid-reports #周期性计划任务执行每天生成报告 sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/squid-reports/ -z -d $(date -d "1 day ago" +%d/%m/%Y)-$(date +%d/%m/%Y)

    squid反向代理
    vim /var/www/html/index.html #wed1 添加首页内容 test01 vim /var/www/html/index.html #wed2 添加首页内容 test02 vim /etc/squid.conf # Squid normally listens to port 3128 #下添加 http_port 192.168.100.7:80 accel vhost vport (// 本地地址 accel:加速代理 虚拟主机 虚拟端口) cache_peer 192.168.100.8 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1 cache_peer 192.168.100.9 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2 (//指定负向服务器 ICP端口不开启设为0 不进行查询 指向真实服务器 轮询 最大连接30 权重1 名字) cache_peer_domain web1 web2 (//指定web1,web2的域名为 )

      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/25088.html

      分享给朋友:

      “squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理” 的相关文章

      中国电信CN2线路安装教程:详解企业级国际通信解决方案

      CN2线路概述与准备工作作为一名企业IT管理员或是对网络性能有高要求的个人用户,你是否经常为跨国数据传输的延迟、丢包问题而困扰?如果是,那么中国电信的CN2线路可能是你的最佳选择。作为国内领先的通信运营商,中国电信推出的CN2线路专为企业级用户设计,提供高带宽、低延迟、高稳定性的国际通信服务,是跨境...

      bbtec:高性能海外VPS的优质选择,适合联通用户的流媒体与在线游戏体验

      bbtec产品介绍 bbtec,这个在中国联通用户中逐渐崭露头角的海外VPS选择,无疑是一条连接世界的优质线路。作为软银线路,它专为追求高性能网络体验的用户设计,尤其适合频繁访问国外网站的朋友。bbtec具备低延迟、大带宽和快速下载速度的显著特点,特别是在流媒体应用的需求日益增长的今天,bbtec显...

      VPSCheap评测:低价VPS服务的最佳选择与性能分析

      VPSCheap的概述 我第一次听说VPSCheap的时候,是在一个热闹的VPS论坛上。这个成立于2010年的主机商,主要提供KVM型VPS服务,其特点是低价格和无限流量。从那以后,我对VPSCheap的关注逐渐加深。它的数据中心位于美国达拉斯,给不少用户带来了良好的使用体验。论坛上的用户在讨论各自...

      RackNerd IP测评:选择可靠VPS的最佳指南

      在我接触过的众多VPS服务提供商中,RackNerd以其高性价比的特点脱颖而出。作为一家位于美国的公司,RackNerd专注于为用户提供可靠的虚拟私人服务器(VPS)解决方案。在这里,我将和大家分享一些关于RackNerd的重要信息,尤其是它的IP测评,我认为这对想要选择VPS的用户来说至关重要。...

      Virmach虚拟主机评测:高性价比VPS服务推荐

      大家好,今天我想和你聊一聊Virmach,这是一家我非常推荐的虚拟主机提供商。Virmach专注于提供VPS(虚拟专用服务器)服务,近年来逐渐在行业中赢得了一席之地。它的价格相对亲民,而服务质量与稳定性也让人感到满意。很多人选择它,主要是因为它不仅适合个人用户,也非常受中小企业欢迎。 Virmach...

      甲骨文云账号如何注销:详尽步骤与注意事项

      甲骨文云账号注销流程 注销甲骨文云账号的流程其实并不复杂,但有几个关键步骤需要认真对待。整个过程主要分为几个部分,包括登录甲骨文云控制台、发起注销请求、查看注销请求状态,以及最后的等待和确认删除。 1.1 甲骨文云控制台的登录 进入甲骨文云控制台的第一步,就是要登录到你的账号。打开浏览器,访问甲骨文...