cron辅助管理squid

简介: 利用cron的定时功能辅助对squid代理进行上网限制:  1. Squid是我所用过的最好的代理服务器(my opinion)   2. 该文档,该功能只适用于使用静态ip的局域网   3.想要实现的功能:   在工作时间,让一部分办公电脑(allow表中的)上网,在非工作时间,让所有办公电脑上网,定时切换。
利用cron的定时功能辅助对squid代理进行上网限制:

  1. Squid是我所用过的最好的代理服务器(my opinion)

  2. 该文档,该功能只适用于使用静态ip的局域网

  3.想要实现的功能:

  在工作时间,让一部分办公电脑(allow表中的)上网,在非工作时间,让所有办公电脑上网,定时切换。

  工作时间worktime):8:00~11:30(周1-周5)以及13:00~17:00(周1-周5),让一部分办公电脑(allow表中的)上网。非工作时间(notworktime):11:31~12:59(周1-周5)以及17:01(当日)~7:59(次日)(周1-周5)、(周6-周7),让所有办公电脑上网。

step 1:

  vi /etc/crontab,脚本如下


    SHELL=/bin/bash  
    PATH=/sbin:/bin:/usr/sbin:/usr/bin  
    MAILTO=root  
    HOME=/  

    # run-parts  
  01 * * * * root run-parts /etc/cron.hourly  
  02 4 * * * root run-parts /etc/cron.daily  
  22 4 * * 0 root run-parts /etc/cron.weekly  
  42 4 1 * * root run-parts /etc/cron.monthly  
  00 8 * * 1-5 root run-parts /etc/squid/worktime  
  30 11 * * 1-5 root run-parts /etc/squid/notworktime  
  00 13 * * 1-5 root run-parts /etc/squid/worktime  
  00 17 * * 1-5 root run-parts /etc/squid/notworktime  
  0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg  
  注:5至8行为后加入的  

  day(第三列*) 和 month(第四列*)被忽略, 即每周一至每周五的那四个时间,那四个cron定时程序启动

step 2:


  cd /etc/squid  
  mkdir worktime  
  vi worktime.job  

  脚本如下


  SHELL=/bin/sh  
  MAILTO=root  
  rm -f /etc/squid/squid.conf 
  #把原来的配置文件删掉  
  cp /etc/squid/worktime.conf /etc/squid/squid.conf 
  #置换成定制的squid.conf  
  /etc/rc.d/init.d/squid restart
  #重启squid,读新的squid.conf文件  

  注:所建目录,及其中的以.job为扩展名的文件是cron daemon要求的


  mkdir notworktime  
  vi notworktime  

  脚本如下


  SHELL=/bin/sh  
  MAILTO=root  
  rm -f /etc/squid/squid.conf  
  cp -f /etc/squid/notworktime.conf /etc/squid/squid.conf  
  /etc/rc.d/init.d/squid restart  

step 3:

  在/etc/squid下,以squid.conf文件为模板,创建及修改worktime.conf和notworktime


  cp squid.conf worktime.conf
  (拷贝原配置文件并新命名,然后vi worktime.conf)  
  cp squid.conf notworktime.conf  
  vi worktime.conf  

  先:set number,脚本需修改,如下


  47 #Default:  
  48 http_port 80  

  405 #Default:  
  406 cache_mem 64 MB  

  601 #Default:  
  602 cache_dir ufs /var/spool/squid 400 16 256  
  ACCESS CONTROL  
  此处的思想为:先开放(allow)一些,然后在底下全禁(deny all)  
  在临近位置对应添加、修改如下几行  
  1425  
  1426 acl myallow src "/etc/squid/allow"
  (squid会拿有上网请求的ip和此文件中的ip地址列表
  做对比、做查找,如果找到了则允许其上网,否则
  deny.允许上网的机器的ip都在这里)  

  1427  
  1428 acl denymine urlpath_regex .exe .zip(禁止下载.exe和.zip的文件)  

  1458 http_access allow myallow  
  1459 http_access deny denymine  

  1468 http_access allow localhost  
  1469 http_access deny all  

  vi notwortime,先:set number,脚本需修改,如下:


  47 #Default:  
  48 http_port 80  

  405 #Default:  
  406 cache_mem 64 MB  

  601 #Default:  
  602 cache_dir ufs /var/spool/squid 400 16 256  

  ACCESS CONTROL  
  在临近位置对应添加如下几行  
  1422 acl mynet src 192.168.1.0/255.255.255.0  
  1425  

  1456 http_access allow manager localhost  
  1457 http_access deny manager  
  1458 http_access allow mynet (让本网段的机器上网)  

  1470 http_access allow localhost  
  1471 http_access deny all  

step 4:

  在/etc/squid下创建allow文件,vi allow,脚本如下


  192.168.1.124  
  192.168.1.123  

  192.168.1.138(临时上网的,临时在此文件的后面添加其ip)  
  注:每行只能有一个ip  

  final:总结一下,就是利用cron的定时功能去定时置换squid的配置文件,新的配置文件对上网的权限进行设置。

  Dr.li instructed
  Mymail:luanyc@bk.net.cn
  狐狸宝宝捣蛋

 
目录
相关文章
|
2月前
|
应用服务中间件 nginx 数据安全/隐私保护
HAProxy的高级配置选项-配置haproxy的状态页
这篇文章详细介绍了如何配置HAProxy的状态页,包括隐藏版本信息、设置自动刷新时间、自定义访问URI、配置认证信息以及启用管理功能等,并通过实战案例展示了配置过程和效果。
108 4
HAProxy的高级配置选项-配置haproxy的状态页
|
2月前
HAProxy的高级配置选项-haproxy预定义(内置)acl使用案例
这篇文章介绍了HAProxy的高级配置选项,特别是如何使用HAProxy预定义(内置)的ACL进行流量控制和路由分发。通过实战案例,展示了如何利用内置ACL如HTTP_1.1和TRUE结合自定义ACL来匹配请求并分配到不同的后端服务器,以实现复杂的流量管理策略。
53 11
HAProxy的高级配置选项-haproxy预定义(内置)acl使用案例
|
2月前
|
监控 Apache
HAProxy的高级配置选项-Web服务器状态监测
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行Web服务器状态监测,包括基于四层传输端口监测、基于指定URI监测和基于指定URI的request请求头部内容监测三种方式,并通过实战案例展示了配置过程和效果。
81 8
HAProxy的高级配置选项-Web服务器状态监测
|
3月前
|
存储 监控 Linux
LXJ
ansible-playbook脚本-从被管理机收集指定日期标识的文件
从被管理机收集指定日期标识的文件
LXJ
368 0
|
监控 开发工具 Windows
|
应用服务中间件 Linux nginx
下一篇
无影云桌面