squid代理与acl控制

      squid代理与acl控制

1:squid服务的作用

1.加快对http访问的速度

2.提高安全性

3.能够进行访问控制

代理的基本类型

l 传统代理:需要在客户机的浏览器、相关的工具上手动设置代理服务器的地址和端口,访问的网页域名也是由代理服务器进行解析的

l 透明代理:客户不需要指定代理服务器的地址和端口,而是通过网关,由防火墙的重定向策略将用户的请求交给代理服务器处理;域名解析有客户机完成

2:首先进行传统配置:如图

 

一、安装squid

1.解压

[[email protected] ~]# tar -zxf  squid-3.4.6.tar.gz -C /usr/src

2.配置、编译、安装

[[email protected] squid-3.4.6]# ./configure --prefix=/usr/local/squid --sysconfdir=/etc  -enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy  --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnuregex

[[email protected] squid-3.4.6]# make&&make install

3.创建连接文件、创建用户和组如下图:

[[email protected] squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin

[[email protected] squid-3.4.6]# useradd -M -s /sbin/nologin squid

[[email protected] squid-3.4.6]# chown -R squid:squid /usr/local/squid/var

4:修改squid的配置文件:[[email protected] squid-3.4.6]#vim /etc/squid.conf

5. squid的运行控制

1)检查配置文件语法是否正确

[[email protected] squid-3.4.6]# squid -k parse

2)启动、停止squid

#squid  -z  //-z选项用来初始化缓存目录

[[email protected] squid-3.4.6]# cd /usr/local/squid/var/cache/squid/

[[email protected] squid]# ls

00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F

#squid  //启动squid服务

[[email protected] 00]# netstat -anpt|grep "squid"

tcp        0      0 :::3128                     :::*                        LISTEN      38412/(squid-1)    #确认squid服务处于正常监听状态

验证效果:达到查看网页默认效果

 

 

(2)代理服务的验证方法

①查看squid访问日志的新增记录

[[email protected] ~]# tail /usr/local/squid/var/logs/access.log

1490524324.184      3 192.168.1.1 TCP_CLIENT_REFRESH_MISS/200 2667 GET http://www.benet.com/icons/apache_pb.gif - HIER_DIRECT/192.168.1.2 image/gif

1490524324.186      4 192.168.1.1 TCP_CLIENT_REFRESH_MISS/200 4296 GET http://www.benet.com/icons/poweredby.png - HIER_DIRECT/192.168.1.2 image/png

②查看web访问日志的新增记录

 

 

 

二、构建代理服务器

(一)透明代理

 

 

1.基本设置

(1)先在客户机浏览器中去掉代理设置

(2)在squid上开启路由功能

vim /etc/sysctl.conf

 

sysctl -p 重启生效

(3)客户机和web服务器都填写好网关

3.设置iptables的重定向策略,将来自局域网内192.168.1.0/24网段且访问http,https等协议的数据包交给运行在本机3128端口上的squid服务处理

[[email protected] ~]# 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.123访问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配置文件

[[email protected] ~]# 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

[[email protected] ~]# 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光盘

[[email protected] sarg-2.3.7]# tar zxf /mnt/sarg-2.3.7.tar.gz -C /usr/src

[[email protected] sarg-2.3.7]# cd  /usr/src/sarg

[[email protected] 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.验证,在客户机访问

 

时间: 2024-10-10 07:18:38

squid代理与acl控制的相关文章

Squid代理--经典缓存代理服务器(实现正向代理配置、ACL各种访问控制、日志分析)

Squid是Linux系统中常用的一款开源代理服务软件官方网站http://www.squid-cache.org , 可以很好的实现http.ftp.dns查询,以及ssl等应用的缓存代理. 一.Squid服务概述 缓存代理概述 1.代理的工作机制 当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面反馈给请求的客户端.如果缓存中没有,则由代理服务器向web服务器发起访问请求,当获得返回的web页面后,缓存服务器首先

squid之------ACL控制

一.ACL概念 Squid提供了强大的代理控制机制,通过合理设置ACL(Access Control List,访问控制列表)并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等各种条件进行过滤. ACL访问控制的步骤: 1.使用acl配置项定义需要控制的条件 2.通过http_access配置项对已定义的列表做“允许”或“拒绝”访问的控制 二.ACL用法概述 (1)定义ACL访问列表 定义格式:acl  列表名称  列表类型  列表内容 ... 例:控制源IP网段 vim et

squid 透明代理,反向代理,acl访问控制

squid 的三种代理方式:1普通代理:2透明代理  3反向代理: cleint(192.168.1.20)----> eth0(192.168.1.10)|  squid   |eth1(1.1.1.254)  ---->server(1.1.1.1) 1.普通代理:squid是代替内网 访问外网:  缓存:加快内网的访问速度: 服务器端配置:ip 1.1.1.1 关闭防火墙和selinux [[email protected] ~]# /etc/init.d/iptables stop i

squid代理服务器配置 linux

squid 配置 linux squid是linux下的一款代理服务器软件,他可以共享网络 ,加快访问速度,节约通信带宽,同时防止内部主机受到攻击,限制用户访问,完善网络管理 rpm -qa|grep squid yum install squid squid-2.6.STABLE21-3.el5 cd /etc/squid/ [[email protected] squid]# lscachemgr.conf  mib.txt            msntauth.conf         

【树莓派】Squid代理以及白名单配置

Squid安装: sudo apt-get install squid3 -y 首先,建议备份一下这个配置文件,以免配错之后,无法恢复,又得重新安装: sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.default.bak squid log查看: sudo tial -f /var/log/squid3/access.log 服务启动停止与查看状态: sudo service squid3 start sudo service squ

squid 代理和缓存

于2017.04.21 从新浪博客搬迁过来 ---------------------------------------------------------------- 在现在的企业中squid 作为代理服务器和缓存服务器使用,在小型的环境中squid可以作为代理服务器来供单位用户上网使用:在大型的环境中squid又作为缓存服务器来对web进行加速.常见的有正向代理.透明代理.反向代理: 安装squid 安装可以使用yum安装,也可以使用源码包编译安装:无论何种安装方式都是非常简单的,下面使

squid代理(传统代理)

squid代理服务器 Squid是linux系统中常用的一款开源代理服务软件,可以很好地实现HTTP和FTP ,以及DNS查询,SSL等应用的缓存代理,功能十分强大 作为应用层的代理服务器软件,Squid主要提供缓存加速,应用层过滤控制的功能 1 代理的工作机制 {1}当客户机通过代理来请求Web页面时, {2}指定的代理服务器会检查自己的缓存, {3}如果缓存中已经有客户机需要的页面, {4}则直接将缓存中的内容反馈给客户机, {5}如果缓存中没有客户机要访问的页面, {6}则由代理服务器向l

squid代理服务器的ACL访问控制及日志分析

配置传统代理及部署squid服务参考博文:https://blog.51cto.com/14154700/2406060配置squid透明代理参考博文:https://blog.51cto.com/14154700/2406121 squid服务的ACL访问控制:squid提供了强大的代理控制机制,通过合理设置ACL并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等各种条件进行过滤. 在配置文件squid.conf中,ACL访问控制通过两个步骤来实现:1.使用ACL配置项定义需

squid 代理

目录 squid代理 课程目标 一.squid基本概述 二.squid代理类型 三.squid代理服务器和SNAT|DNAT的区别 四.了解squid代理软件相关信息 五.squid端正向代理配置 六.squid的透明代理配置 七.squid实现访问控制 八.反向代理(扩展) squid代理 课程目标 了解squid的应用场景 理解squid的工作原理和作用 理squid的代理类型(重点) 掌握squid的正向和透明代理的配置(重点) 能够根据需求对squid服务器做简单的访问控制 一.squi