Squid代理服务器 、 ACL访问控制列表
#####################################
-------------------------------
客户主机:192.168.4.100  eth0
-------------------------------
代理主机:192.168.4.5    eth0
         192.168.2.5   eth1
 ------------------------------
Web主机: 192.168.2.100  eth1
--------------------------------
Squid服务端:
软件包:squid-3.1-10-19.el6_4.x86_64
系统服务:squid
主程序:/usr/sbin/squid
主配置文件:/etc/squid/squid.conf
默认监听端口:TCP 3128
默认访问日志:/var/log/squid/access.log

一,Squid代理服务器:(192.168.2.5/192.168.4.5)
1,安装软件包
#yum -y install squid

2,修改配置文件
#vim  /etc/squid/squid.conf
51:http_access deny all访问控制
修改为:http_access allow all  
62:visible_hostname proxy.xxx.con   主机名
64:http_port 3128   端口
修改为:80
65:cache_dir ufs /var/spool/squid 100 16 256
缓存,缓存目录为/var/spool/squid
    缓存大小为100M
    一级目录为16个,二级目录256个
#service squid start        #启动squid服务
#netstat -anptu | grep squid
#ls /var/spool/squid

3,Web主机(192.168.2.100)
#yum -y install httpd
#echo "test" > /var/www/html/index.html
#service httpd start

4,客户端验证(192.168.4.100)
#curl http://192.168.2.100  失败
#curl --proxy1.0 192.168.4.5:3128 http://192.168.2.100/   成功
代理设置:
#firefox-->alt键---编辑--首选项---高级---网络--设置--》代理IP和端口

5,在代理服务器上查看日志
#tail /var/log/squid/access.log

6,在web服务器上查看日志
#tail /var/log/httpd/access_log

++++++++++++++++++++++++++++++++++++++

反向代理

1.代理设置:
#vim /etc/squid/squid.conf
62:http_port 80 vhost
63:cache_peer 192.168.2.100 parent 80 0 originserver

#service squid restart
++++++++++++++++++++++++++++++++++++++++++
客户端验证:
#curl http://192.168.2.100 失败
#curl http://192.168.4.5  成功
#######################################
++++++++++++++++++++++++++++++++++++++
#######################################
Squid访问控制ACL

先定义ACL:
acl 列表名称  列表类型  列表内容...

调用ACL:
http_access allow 列表名称...
http_access deny 列表名称...

常用的ACL列表类型:
src 源地址
dst 目标地址
port 目标端口
dstdomain 目标域
time   访问时间
maxconn 最大并发链接
url_regex 目标URL地址  {支持正则表达式}
urlpath_regex 整个目标URL路径 {支持正则表达式}
################################################
定义:
acl  名称  类型   内容
acl  abc   time  17:00-18:00
acl  qq    src   192.168.4.100
acl  aaa src   0.0.0.0/0.0.0.0
调用:
http_access allow|deny 名称
http_access allow abc
http_access deny qq
http_access deny aaa
++++++++++++++++++++++++++++++++++++

#vim /etc/squid/squid.conf
acl myip  src 192.168.4.254
http_access deny myip

acl mytime time MTWHF 00:00-18:00
http_access deny mytime

#注意写在别的规则上面
#service squid restart


栗子:
acl myip src 192.168.4.5
acl
http_access allow  mynet  mytime
http_access allow myip
http_access deny all


未设置任何规则时,拒绝所有访问请求
已设置规则时,依次进行检查,找到匹配即停止,否则采用与最后一条规则相反的权限ip2  src 192.168.4.10
acl mynet src 192.168.4.0/24
acl mytime time MTWHF 09:00-18:00

http_access allow  mynet  mytime
http_access allow myip
http_access deny all


未设置任何规则时,拒绝所有访问请求
已设置规则时,依次进行检查,找到匹配即停止,否则采用与最后一条规则相反的权限