构建透明代理
透明代理:客户不需要指定代理服务器的地址和端口,而是通过网关,由防火墙的重定向策略将用户的请求交给代理服务器处理;域名解析有客户机完成
代理服务器两个网卡vmnet1 vmnet8
1.基本设置
(1)先在客户机浏览器中去掉代理设置
(2)在squid上开启路由功能(默认关闭)
#vim /etc/sysctl.conf
(3)客户机和web服务器都填写好网关
(4)如果是在源拓扑图上改的,注意更改dns中的记录设置,并清除客户机的dns缓存
2.配置squid支持透明代理
[root@centos2 ~]# vim /etc/squid.conf
http_port 3128 ---->http_port 192.168.1.1: 3128 transparent
3.设置iptables的重定向策略,将来自局域网内192.168.1.0/24网段且访问http,https等协议的数据包交给运行在本机3128端口上的squid服务处理
[root@centos2 ~]# iptables -t nat -I PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp -m multiport --dport 80,443 -j REDIRECT --to 3128
4.验证透明代理,同上(传统代理)
(三)、ACL访问控制,加上禁止192.168.1.10访问www.benet.com用于测试
ACL的作用:对代理访问进行访问控制,可以针对源地址、目标地址、访问的url路径、访问的时间等条件进行过滤
ACL配置的步骤:
l 使用acl配置项定义需要控制的条件
l 通过使用http_access配置项对已经定义的列表做"允许"或拒绝访问的控制
ACL访问控制列表的定义方法:
acl 列表名称 列表类型 列表内容(可以为多个内容,以空格分隔,为或的关系
访问权限定义方法
http-access allow或deny 列表名
说明:
l 每一条http_access规则中,可以同时包含多个控制列表,空格分隔,为与的关系
l 取反条件时,用!符号
l http_access必须放在acl之后
关于规则的执行过程:
l 找到一条规则即不再向后搜索
l 没有配置任何规则时,squid服务将拒绝客户端的请求
l 有规则但找不到相匹配的项:squid将采用与最后一条规则相反的权限
1.首先,创建一个存放域名内名单的目录
#mkdir /etc/squid
#vim /etc/squid/dmblock.list
.qq.com
.msn.com.
....
2.修改squid配置文件
[root@centos2 ~]# vim /etc/squid.conf
acl MYLAN src 192.168.1.0/24
acl MEDIAFILE urlpath_regex -i \.3gp$ \.mp4$ \.f4v$ \.mkv$ \.rmvb$ \.avi$
acl DMBLOCK dstdomain "/etc/squid/dmblock.list"
acl deny10 src 192.168.1.10
acl WORKTIME time MWTHF 08:30-17:30
http_access deny deny10
http_access allow MYLAN WORKTIME Safe_ports !MEDIAFILE !DMBLOCK
http_access deny all
[root@centos2 ~]# squid -k reconfigure
3.将客户机ip改为192.168.1.10再访问测试,不能访问了
(1)测试不能访问网页
(2)测试能访问网页,但是不能下载超过10MB的文件
①在web服务器网页根目录下创建一个大于10M的文件
#dd if=/dev/zero of=/var/www/html/dltest.data bs=1M count=15
②在客户机上测试
(四)squid日志分析
1.先在squid本地挂载centos光盘并配置yum
2.安装GD库
3安装sarg软件,挂载sarg光盘
[root@centos2 sarg-2.3.7]# tar zxf /mnt/sarg-2.3.7.tar.gz -C /usr/src
[root@centos2 sarg-2.3.7]# cd /usr/src/sarg
[root@centos2 sarg-2.3.7]# ./configure --prefix=/usr/local/sarg -sysconfdir=/etc/sarg --enable-extraprotection
4.配置 (找到如下行修改就可以)
#vim /etc/sarg/sarg.conf
access_log /usr/local/squid/var/logs/access.log
Especify the title for html page.
title "Squid User Access Reports"
output_dir /var/www/html/sarg
user_ip no
topuser_sort_field connect reverse BYTES reverse
user_sort_field connect reverse
exclude_hosts /usr/local/sarg/noreport
overwrite_report no
mail_utility mailq.postfix
charset UTF-8
weekdays 0-6
The hours to take into account
hours 9-12,14-16,18-20
www_document_root /var/www/html
4.运行
上述配置中,添加了不计入排序的站点,需要存在下面这个文件
# touch /usr/local/sarg/noreport
建议建立符号链接
#ln -s /usr/local/sarg/bin/sarg /usr/local/bin
直接执行sarg
#sarg
5.验证,在客户机访问