规则:我们还可以使用acl 定义squid访问控制列表。下面是其选项信息..
- src IP 源IP地址(客户机的IP地址)
- dst IP 目标地址(服务的器IP地址)
- scrdomain 源名称 (客户机所属的域)
- dstdomain 目标名称(服务器所属的域)
- time 一天中的某一时刻和一周内的某一天
- url_regex URL规则的表达式
- urlpath_regex:URL-path 略去协议和主机名的URL规则表达式匹配。
- proxy_auth 通过外部程序进行用户认证。
- maxconn 单一IP最大连接数。
time 语法[星期][时间段]。星期可以使用这些关键字M(Mondy),T(Tuesday)...
时间段:某一时刻-另一时刻
我们来模拟一个实验环境,squid代理服务器两网卡假设外网卡IP:192.168.0.195,内网卡IP:192.168.10.10,内网客户端IP:192.168.10.11,外网有个web服务器IP:192.168.0.197,在18:30-8:30不允许客户机访问外网,但是不下载以.rmvb和.mp3为结尾的文件,使用透明代理的方式,单个文件最大不能超过10M,代理端口为8080,错误提示显示的中文信息,管理员邮箱为root@test.com,内存大小64M,缓存目录1024M,必须有可见主机名好了就以这个信息,下面我们去配置Squid服务器...
[root@station195 ~]# yum -y install squid (我本机配置好yum源,直接就使用yum安装) [root@station195 ~]# cd /etc/squid/ [root@station195 squid]# cp -p squid.conf squid.conf.bak(对文件进行备份) [root@station195 squid]# vim squid.conf cache_mgr root@example.com http_port 192.168.10.10:8080 transparent error_directory /usr/share/squid/errors/Simply_Chinese visible_hostname station195.example.com cache_mem 64 MB reply_body_max_size 1024000000 allow all cache_dir ufs /var/spool/squid 1024 acl mynetwork src 192.168.10.0/24 acl worktime time 18:00-23:59 acl worktime time 00:00-8:30 http_access allow mynetwork !worktime acl nomp3 url_regex -i ^http.*\.mp3$ acl normvb url_regex -i ^http.*\.rmvb$ http_access allow mynetwork !nomp3 http_access allow mynetwork !normvb #squid -z (初始化swqp目录) #squid -k parse (测试配置文件语法信息) #service squid restart (重启动服务) 客户端的网关指向192.168.10.10 squid server要开启路由功能.... #vim /etc/sysctl.conf net.ipv4.ip_forward = 1 (将此项的值改为一,表示上网卡的时候要进行转发) #sysctl -p (单单修改完后不会立即生效,重新读取一下配置文件才生效..) #cat /proc/sys/net/ipv4/ip_forward (返回的值为1,证明我们已经开启路由功能了..) #iptables -t nat -A PREROUTING -i eth1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080 #service iptables save |
测试结果全部成功的,很晚了就不在这抓图了,大家可以模仿着做着试试,有疑问可以给我留言,欢迎共同交流...