ITPub博客

首页 > IT基础架构 > 网络安全 > cron辅助squid(转)

cron辅助squid(转)

原创 网络安全 作者:post0 时间:2007-08-10 12:49:48 0 删除 编辑
cron辅助squid(转)[@more@]

  利用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的配置文件,新的配置文件对上网的权限进行设置。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8225414/viewspace-940660/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    2018
  • 访问量
    8225452