191145685 发表于 2018-12-26 13:54:41

squid的acl设置

  RedHat linux 系统默认已经安装了squid
  1.squid代理服务的配置
  有以下最基本的设置squid就可以启动使用了
  http_port 192.168.0.110:8080
  cache_mem 64 MB
  cache_dir ufs /var/spool/squid 4096 16 256
  cache_effective_user squid
  cache_effective_group squid
  dns_nameservers 192.168.0.1
  cache_access_log /var/log/squid/access.log
  cache_log /var/log/squid/cache.log
  cache_store_log /var/log/squid/store.log
  visible_hostname 192.168.0.110
  cache_mgr qubaoquan@ccpower.com.cn
  acl all src 0.0.0.0/0.0.0.0
  http_access allow all
  1.1 指定squid服务器监听的ip和端口
  http_port 192.168.0.110:8080
  1.2 设置内存缓冲的大小(仅仅用于共享上网设为物理内存的1/2,如果还有其他服务责不应超过物理内存的1/3)
  cache_mem 64 MB
  1.3 设置内存盘缓冲的大小
  cache_dir ufs /var/spool/squid 4096 16 256
  Ufs 是指缓冲的存贮类型,/var/spool/squid是存贮目录,4096代表最大存贮空间,16代表一级存贮目录,256代表二级存贮目录
  1.4 设置使用存贮的有效用户和组
  cache_effective_user squid
  cache_effective_group squid
  1.5 定义DNS服务器地址
  \ dns_nameservers 192.168.0.1
  1.6 设置访问日志文件
  cache_access_log /var/log/squid/access.log
  1.7 设置缓存日志文件
  cache_log /var/log/squid/cache.log
  1.8 设置网页缓冲日志文件
  cache_store_log /var/log/squid/store.log
  1.9 设置运行squid主机的名称
  visible_hostname 192.168.0.110
  1.10 设置管理员邮件地址
  cache_mgr qubaoquan@ccpower.com.cn
  1.11 设置默认的访问控制列表
  acl all src 0.0.0.0/0.0.0.0
  http_access allow all
  2.初始化squid /usr/sbin/squid –z(创建squid在硬盘缓冲区的目录结构)
  3.访问控制列表
  类型选项
  命令
  说明
  src
  源IP地址(客户机IP地址)
  dst
  目标IP地址(服务器IP地址)
  srcdomain
  源名称(客户机所属的域)
  dstdomain
  目标名称(服务器所属的域)
  time
  一天中的时刻和一周内的一天
  url_regex
  URL规则表达式匹配
  urlpath_regex:url-path
  略去协议和主机名的URL规则表达式匹配
  proxy_auth
  通过外部程序进行用户认证
  maxconn
  单一IP的最大连接数
  time
  语法为:时间时间段星期可用首字母大写表示,时间段可表示为:11:00-20:00
  列表语法:acl 列表名称列表类型 –i 列表值
  http_access allow/deny 列表名称
  实际应用举例
  (1) 禁止IP地址为192.168.16.200的客户机上网
  acl test src 192.168.16.200
  http_access deny test
  (2) 禁止192.168.1.0这个网段里的所有客户机上网
  acl test src 192.168.1.0/255.255.255.0
  http_access deny test
  http_access deny test
  (3) 禁止用户访问IP为210.21.118.68的网站
  acl test dst 210.21,118.68
  http_access deny test
  (4) 禁止用户访问域名为www.163.com的网站
  acl test dstdomain –i www.163.com
  http_access deny test
  (5) 禁止用户访问域名包含有163.com的网站
  acl test url_regex –i 163.com
  http_access deny test
  (6) 禁止用户访问包含有sex关键字的URL
  acl test url_regex –i sex
  http_access deny test
  (7) 限制IP地址为192.168.16.200的客户机并发的最大连接数为5
  acl test src 192.168.16.200
  acl test2 maxconn 5
  http_access deny test test2
  (8) 禁止192.168.2.0这个子网里所以客户机在周一至周五的9点到18点上网
  acl test src 192.168.2.0 /255.255.255.0
  acl test2 time MTWHF 9:00-18:00
  http_access deny test test2
  (9) 禁止用户下载*.mp3,*.exe,*.zip,*.rar
  acl test urlpath_regex –i \.mp3$\.exe$\.zip$\.rar$
  http_access deny test
  (10) 禁止QQ通过squid上网
  acl test url_regex –i tencent.com
  http_access deny test
  注:启动squid:/etc/init.d/squid start
  停止squid /etc/init.d/squid stop
  重启squid /etc/init.d/squid restart
  重新导入配置文件 /etc/init.d/squid>
  4.透明代理的实现
  (1)实现透明代理的语句(vi /etc/squid/squid.conf)
  http_accel_host virtual
  http_accel_port 80
  http_accel_with_proxy 0n
  httpd_accel_uses_host_header 0n
  http_accel_host和http_accel_port来定义squid的加速模式,virtual是虚拟主机模式,80为请求的端口
  http_accel_with_proxy选项定义为on后,squid既是web请求的加速器又是缓存代理服务器
  httpd_accel_uses_host_header定义为on后,在透明代理模式下代理服务器的缓存功能才能工作
  (2)设置端口重定向
  iptables –t nat –A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080
  (3) 重新导入配置文件 /etc/init.d/squid>
  配置用户身份验证
  1. 配置/etc/squid/squid.conf(NCSA认证)
  auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
  auth_param basic children 5
  auth_param basic credentialsttl 2 hours
  auth_param basic realm Example.com's Squid proxy-caching
  acl auth_user proxy_auth REQUIRED
  http_access allow auth_user
  auth_param basic program选项定义了认证方式为basic,/usr/lib/squid/ncsa_auth /etc/squid/passwd定义了认证程序的路径和读取的账户文件
  auth_param basic children定义了认证程序的进程数
  auth_param basic credentialsttl定义了经过认证后的有效时间
  auth_param basic realm 定义了WEB 浏览器显示输入用户/密码对话框的领域内容
  acl auth_user proxy_auth REQUIRED;http_access allow auth_user设置合法用户的访问控制列表
  2. 建立账户文件
  htpasswd -c /etc/squid/passswd test(建第一个用户时要用-c选项)
  htpasswd /etc/squid/passswd test2
  htpasswd /etc/squid/passswd test3
  3. 重新启动squid服务

页: [1]
查看完整版本: squid的acl设置