使用squid定制企业上网行为管理系统

标签: 技术文章 squid | 发表时间:2014-12-21 23:48 | 作者:一天到晚游泳的鱼
出处:http://www.iewb.net

  场景:一台路由带约300台机器上网,内网服务器一台,内网ip192.168.6.172,其实这台机器还有个公网IP,为了避免部分网友逻辑混乱,先不提这个公网IP,如果只有内网IP也一样操作。

   实现目标:

  (1)使用Squid缓存部分常用资源,轻出口带宽压力
  (2)实现部分办公室职员和所有车间职员只允许访问邮箱和几个固定网站,中层领导和有其它需要的职员访问黑名单(淘宝、股票、游戏等)之外的网站,公司高层不受限制。

  操作:

   1、开启路由转发

echo "1" > /proc/sys/net/ipv4/ip_forward

   2、安装Squid

yum -y insall squid

   3.配置/etc/squid/squid.conf

http_port 3128 transparent    #Squid默认端口
acl baimingdansite url_regex -i "/etc/squid/baimingdan.site"    #定义白名单
acl heimingdansite url_regex -i "/etc/squid/heimingdan.site"    #定义黑名单
acl liwai src "/etc/squid/liwai_ip"    #定义例外IP
acl lingdao src "/etc/squid/lingdao_ip"        #定中层领导IP(受控,使用黑名单人员)
acl zhiyuan src "/etc/squid/zhiyuan_ip"        #定义职员IP(受控,使用白名单人员)

http_access allow liwai        #首先允许例外IP
http_access deny heimingdansite        #拒绝黑名单
http_access allow lingdao    #允许中层领导(黑名单用户)上网
http_access deny !baimingdansite    #拒绝不在白名单内的网站
http_access allow zhiyuan    #职员IP(白名单用户)上网

cache_mem 512 MB    #分配内存
maximum_object_size 4 MB    #不存储超过4MB的文件
maximum_object_size_in_memory 4096 KB    #超过4M的文件内存不进行缓存
cache_dir ufs /var/spool/squid 4096 16 256    #缓存文件夹路径和参数,4096表示4G,目录分16组,每组256个目录
cache_effective_user squid    #用户,默认的
cache_effective_group squid    #用户组
access_log /var/log/squid/access.log    #日志
cache_log /var/log/squid/cache.log    #日志
cache_store_log /var/log/squid/store.log    #日志
logfile_rotate 10    #一般LOG文件轮换,用处不大,小型网络可以设置10-20,中型5-10,大型1-2
visible_hostname mail.iewb.nett    #服务器名
cache_mgr jimmy@iewb.net    #你的邮箱
http_access deny all    #拒绝不在ACL控制列表中的所有访问

  以上是我按我的需要进行的配置,当然还可以配置只允许特定端口之类的,这些网友自己去摸索。以上配置squid3.0以上版本适用,2.0需要修改下。

  现在建立黑、白名单和IP列表文件。注意,启动时这几个文件中最少要有一行数据,这几个文件使用touch或vi新建,随便输入几个网站和IP就行,格式一行一个,简单直接。

  完成以上步骤就可以启动Squid,然后将内网电脑Http代理配置成使用192.168.6.172端口3128就可以上网了。可以将内网一台电脑的IP依次配置到liwai_ip,lingdao_ip,zhiyuan_ip查看访问黑白名单中网站的效果。测试时关闭selinux和iptables。

  测试完成后我们打开iptables配置下转向,让其它客户端电脑直接把网关设置成192.168.6.172就可以受控上网了,不用再手动设置Http代理。

  1. iptables -F         #清空原来列表
  2. iptables -t nat -F  #清空原来列表
  3. iptables -I INPUT -p tcp --dport 3128 -j ACCEPT    #开放3128端口
  4. iptables -t nat -A POSTROUTING -s 192.168.6.0/24 -p udp --dport 53 -o eth1 -j MASQUERADE  #开启外网eth1,DNS的NAT网络地址转换功能(我的公网IP配置在eth1上)
  5. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128       #设置端口转发功能,把内网eth0的80端口转发到外网eth1的3128端口

  完成。

  部署中可能用到的命令:

  squid -k reconfigure  #启动完squid后又修改squid.conf可以使用这个命令重新载入配置,比重启服务要快很多。

  备注:写下本文是想以最简化的代码提供一个思路,实际运用过程中还需要解决很多问题,比如普通职员(白名单用户)想要访问腾讯邮箱的话,在baimingdan.site中不仅要加入mail.qq.com这个网址,还要加入其它一些腾讯的网址,不然会有界面比较乱或不能上传附件之类的事情,具体加入什么自己可以应该能搞定。

  另外,如果只使用192.168.6.172网关而不配置浏览器HTTP代理的话,访问加密网站(HTTPS)也会有问题,看实际需要,可以把路由网关只允许服务器上网,用户必须通过Sqdid网关。

 

 

 


欢迎订阅启光博客RSS: http://www.iewb.net/index.php/feed 

相关 [squid 企业 上网] 推荐:

使用squid定制企业上网行为管理系统

- - 启光博客
  场景:一台路由带约300台机器上网,内网服务器一台,内网ip192.168.6.172,其实这台机器还有个公网IP,为了避免部分网友逻辑混乱,先不提这个公网IP,如果只有内网IP也一样操作.   (1)使用Squid缓存部分常用资源,轻出口带宽压力.   (2)实现部分办公室职员和所有车间职员只允许访问邮箱和几个固定网站,中层领导和有其它需要的职员访问黑名单(淘宝、股票、游戏等)之外的网站,公司高层不受限制.

stunnel + squid 过墙

- - 移动开发 - ITeye博客
一台国外的Linux服务器. 软件介绍:  squid 高性能代理服务器  stunnel  TSL加密工具,因为我们的http都是明文传输的,所以必须使用工具对内容进行加密,才能躲过嗅探.  修改 stunnel.conf 默认位置  /etc/stunnel/. 只需修改 cert  位置为刚才 生成  stunnel.pem 的位置.

TCmalloc对squid的性能的提升

- caoxg - 开心平淡对待每一天。热爱生活
           TCmalloc对squid的性能的提升一、简介:. 1、安装tcmalloc所需要的libunwind库 [32位系统不用安装]. *注意:据说加上’–with-large-files’ 选项时编译会出错. 4、配置好squid并启动squid.. squid+tcmalloc: 20 型号:Dell R410 硬盘:2*SAS/146G/15K 内存:16G CPU:16.

自建CDN技术选型: squid varnish nginx

- - 鲁塔弗的博客
CDN的全称是Content Delivery Network,即内容分发网络. 其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定. 优化跨ISP网络访问速度,在国内大联通和大电信之间是世界上最远的距离,在国外,中国和其他地区很平行,用cdn可以优化全球响应速度.

squid,nginx,lighttpd反向代理的区别

- - 企业架构 - ITeye博客
[转载自]http://www.cnblogs.com/yihang/archive/2010/12/19/1910363.html. squid,nginx,lighttpd反向代理的区别. 反向代理从传输上分可以分为2种:. 1:同步模式(apache-mod_proxy和squid). 2:异步模式(lighttpd 和 nginx).

关于squid请求源服务器的响应中带Vary头

- - 淘宝核心系统团队博客
源服务器返回的响应头不带”Vary: Accept-Encoding”. 不管客户端请求头中带不带”Accept-Encoding: gzip,deflate”,squid会只缓存一份对象. 1)如果第一个MISS的请求,客户端请求头中带”Accept-Encoding: gzip,deflate”.

浅谈Squid在图片存储架构中的应用

- - 酷勤网-挖经验 [expanded by feedex.net]
酷勤网 � 程序员的那点事. 上一篇我表明了自己对缓存的立场:缓存一切可以缓存的资源. 并讨论了如何利用IIS自身的缓存功能来轻松满足中小规模的图片缓存需求. 关于IIS的客户端缓存和服务器端缓存的介绍大家可以回顾. 自从上一篇文章发表后,有不少朋友向我反馈:用IIS自身的缓存功能负载有限,建议使用.

电子商务网站基础架构 nginx + memcached + tomcat + squid 集群

- - 企业架构 - ITeye博客
本文中 包含 nginx memcached tomcat 集群 的安装和配置. wget url 为下载所需的资源文件方式,也可以通过 VMware Tools 工具载入,. 如何安装 VMwareTools 参考本博客或者其他资料. 后面最后一章节是安装配置squid 在项目第一期不作要求. 第一章 安装配置nginx.

谈谈varnish,squid,apache,nginx缓存的对比

- - 行业应用 - ITeye博客
群里总是有人在问cache用什么,有varnish,squid,apache,nginx这几种,到底是我们用什么架构cache. varnish和squid是专业的cache服务,而apache,nginx这些都是第三方模块完成. 2、要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid和varnish.

使用Nginx的proxy_cache缓存功能取代Squid

- - 操作系统 - ITeye博客
  Nginx从0.7.48版本开始,支持了类似Squid的缓存功能. 这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302这样的非200状态码. 虽然目前官方的Nginx Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面,但是,通过一个第三方的Nginx模块,可以清除指定URL的缓存.