企业中squid+iptables多模块的综合应用案例
案例配置要求:
公司有三个部门:工程部门(2..10--2.20)、软件部门 ( 2.21--2.30)、经理办 (2.31--2.40)、
以及DMZ 区域(192.168.3.100)web服务器
上班时间 (周一---周五 08:00--18:00)
工程部门 上班时间仅能登录ftp,不能qq聊天,不允许http ,不能使用迅雷,下班后无限制
软件部门 可以使用http,不允许站点sina ,不允许使用迅雷 ,连接数 最多3个,,不允许看图片,不允许qq聊天,不允许使用pplive ,下班后无限制
经理办公室 http 、qq聊天都可以,下班后无限制
dmz区域:实现对www服务器的发布
周六、日任何部门都可以正常上网。
案例拓扑
案例分析:
1、针对工程部门,通过iptables+l7等模块实现控制;
2、软件部门、经理办公室,根据要求要通过squid与iptables+L7等模块结合实现;
3、周一到周五上班时间通过squid透明代理实现上网,下班后,通过nat实现上网;
4、周六、周日也通过squid透明代理实现上网,并不做任何限制。
注:squid透明代理实现过程:
当我们在客户端浏览器中打开一个web请求,比如“http://liuyuan51.blog.51cto.com”,这时将陆续发生以下事件:
1.客户端向DNS请求“liuyuan51.blog.51cto.com”,得到相应的IP地址2.3.4.5。然后,客户端使用某一端口(比如1066)向该IP地址的80端口发起web连接请求,请求web页面。
2.当该请求包通过透明代理服务器时,被squid防火墙将该数据包重定向到代理服务器的绑定端口3128。于是,透明代理服务器用某一端口(比如1088)向2.3.4.5的80端口发起web连接请求,请求web页面。
3.收到响应的web页面后,代理服务器把该数据传送给客户端。
4.客户端浏览器显示该页面。
从liuyuan51.blog.51cto.com的角度看来,连接是在192.168.101.111地1088端口和2.3.4.5的80端口之间建立的。从client的角度看来,连接是在192.168.1.100的1066端口和2.3.4.5的80端口之间建立的。
案例配置过程:
1、地址规划:
防火墙:eth0: 192.168.101.111/24
eth1:192.168.2.1/24
eth2:192.168.3.1/24
工程部门 192.168.2.10--192.168.2.20
软件部门 192.168.2.21--192.168.2.30
经理办 192.168.2.31--192.168.2.40
DMZ 192.168.3.100 web服务器
2、首先开启路由功能
# vim /etc/sysctl.conf
7 net.ipv4.ip_forward = 1
#sysctl -p /etc/sysctl.conf //加载配置文件使更改生效
3、配置一条规则SNAT规则,实现可以正常访问外网
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
#--设置filter表的默认规则,拒绝所有---
iptables -P INPUT DROP
iptables -P OUTPUT DROR
iptables -P FORWARD DROP
工程部门
#仅允许访问外网ftp
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --timestart 08:00 --timestop 18:00 --weekdays Mon,Tue,Web,Thu,Fri -p tcp --dport 21 -j ACCEPT
#针对状态,允许ftp数据包返回----
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#----工作时间拒绝qq聊天-------
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --timestart 08:00 --timestop 18:00 --weekdays Mon,Tue,Web,Thu,Fri -m layer7 --l7proto qq -j DROP
#---下班后,因为都是无限制,直接写一个网段---
iptables -t filter -A FORWARD -s 192.168.2.0/24 -m time --timestart 18:01 --timestop 07:59 --weekdays Mon,Tue,Web,Thu,Fri -j ACCEPT
软件部门、经理办
#上班时间通过squid来整体控制192.168.2.21-40网段
#周一到周五
iptables -t nat -A PREROUTING -m iprange --src-range 192.168.2.21-192.168.2.40 -m time --timestart 08:00 --timestop 18:00 -p tcp --dport 80 -j REDIRECT --to-port 3128
#周六、日
iptables -t nat -A PREROUTING -m iprange --src-range 192.168.2.10-192.168.2.40 -m time --weekdays Sun,Sat -p tcp --dport 80 -j REDIRECT --to-port 3128
#周一到周五允许客户端dns查询通过
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.21-192.168.2.40 -m time --timestart 08:00 --timestop 18:00 --weekdays Mon,Tue,Wed,Thu,Fri -p udp --dport 53 -j ACCEPT
#周六、日允许客户端dns查询通过
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.10-192.168.2.40 -m time --weekdays Sat,Sun -p udp --dport 53 -j ACCEPT
#针对squid,iptables配置
#iptables -t filter -A INPUT -p tcp --dport 3128 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 80 -s 192.168.101.111 -j ACCEPT
#iptables -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT
#iptables -t filter -A OUTUT -p udp --dport 53 -j ACCEPT //dns查询
#-----squid的透明代理配置,
# vim /etc/squid/squid.conf
929 http_port 3128 transparent
3004 visible_hostname 192.168.2.1
4138 dns_nameservers 222.88.88.88 222.85.85.85 //指明dns_nameserver
#------squid的控制部分
590 acl soft src 192.168.2.21-192.168.2.30
591 acl worktime time MTWHF 08:00-18:00
592 acl p_w_picpaths urlpath_regex -i \.jpg$
593 acl sina url_regex -i sina
594 acl connumber maxconn 3
595 acl jingli src 192.168.2.31-192.168.2.40
596 http_access allow soft worktime !p_w_picpaths !sina !connumber //软件部门
597 http_access allow jingli //经理办
598 acl suoyou src 192.168.2.10-192.168.2.40
599 http_access allow suoyou
# service squid start 启动squid服务
#-----允许经理办上班时间qq聊天
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.31-192.168.2.40 -m time --timestart 08:00 --timestop 18:00 --weekdays Mon,Tue,Web,Thu,Fri -m layer7 --l7proto qq -j ACCEPT
DMZ区域web服务器发布
#---Web服务器发布-----
#iptables -t nat -A PREROUTING -d 192.168.101.111 -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.3.100
#iptables -t filter -A FORWARD -d 192.168.3.100 -p tcp --dport 80 -i eth0 -j ACCEPT
案例结束。
转载于:https://blog.51cto.com/colynn/1098217
企业中squid+iptables多模块的综合应用案例相关推荐
- Squid在企业中的应用
Squid在企业中的应用 Squid是一个很好的代理软件,与NAT是不同的技术,具有很强的控制力度,是应用层的,能基于应用层参数[协议].网络层参数[地址].传输层参数[协议 端口号等]进行控制,唯一 ...
- Linux高级运维(十)-搭建企业中最常用缓存代理服务器Squid , Varnish
搭建varnish 缓存代理服务器 需求: 使用Varnish加速后端Web服务,代理服务器可以将远程的Web服务器页面缓存在本地,远程Web服务器对客户端用户是透明的,利用缓存机制提高网站的响应速度 ...
- 企业防火墙之iptables
1.1 企业中安全优化配置原则 尽可能不给服务器配置外网ip ,可以通过代理转发或者通过防火墙映射.并发不是特别大情况有外网ip,可以开启防火墙服务. 大并发的情况,不能开iptables,影响性能, ...
- 企业软件防火墙iptables
企业中安全优化配置原则 推荐:尽可能不给内部服务器配置外网ip ,可以通过代理转发或者通过防火墙映射.并发不是特别大情况有外网ip,可以开启防火墙服务. 使用场景: 大并发的情况,不能开iptable ...
- 10个关于linux中Squid代理服务器的实用面试问答
10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到"代理服务器"这个词,我们也经常听到.代理服务器已经成为一种企业常态,而且经常会接 ...
- 【能源管理]安科瑞工厂能源管理系统在某水泥企业中的应用分析
安科瑞 李亚俊 摘要:由于传统系统未能考虑水泥企业的能耗标准及绩效指标问题,导致水泥企业资源利用率降低.能量消耗大.为此,本研究结合物联网技术设计了新的水泥企业能耗对标系统.首先设计水泥企业能耗对标体 ...
- ERP在企业中的应用
面向21世纪,从全球范围看,一个更加激烈的竞争环境正在形成.在未来消费者导向的时代,如何对市场环境的急剧变化和顾客需求的瞬息万变作出灵活快速响应,有效地地生产和提供令顾客满意的产品和服务,并不断开辟消 ...
- 浅析能耗管理系统在企业中的应用
李茫茫 安科瑞电气股份有限公司 上海嘉定201801 摘要:能耗管理系统是对能源消耗的一种监控管理系统,它可以实时监测各类型能源使用的情况,自动分析各设备的能耗.能效情况并给出合理建议,从而进一步对设 ...
- squid+iptables实现透明代理
NAT 网络地址转换(网络地址映射) 就是把数据包的源IP或者目标IP进行修改. 作用: 修改源IP,叫源地址映射,一般为了实现让私有网络的机器能够访问互联网 修改目标IP,叫目标地址映射,一般为了实 ...
最新文章
- 22张精炼图笔记,深度学习专项学习必备
- Python 这么火,如何快速掌握?
- android双进程守护耗电,Android实现双进程守护
- 科大星云诗社动态20210215
- grep 正则匹配
- ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)
- 实战:Redis 性能测试
- 谈谈地址转换协议ARP的概念及特点
- Pandas to_string
- No project is easy, am I right?
- zsh: command not found: 解决方法
- 递归典型——汉诺塔问题
- 我的框架——MyBean
- 光盘显示0字节可用_多么愚蠢的想法:用光盘来代替U盘
- [转贴]民国记者有多牛:揭黑损人骂街是常事
- 合泰HT1632C点阵LED芯片 的emuSPI驱动(即软件GPIO模拟方式)
- 有哪些适合放在程序员办公桌上的高逼格物件?
- 如何设置app字体跟随系统_Android 应用全局字体调节或禁止随系统字体大小更改...
- 龟虽寿 [魏晋] 曹操
- 四川大学华西医院“大数据集成及应用平台”项目 市场调研
热门文章
- 手机网页(WAP)页面上的输入框默认键盘类型
- opencv,用摄像头识别贴片元件的定位和元件的角度(转载)
- 偶尔用得上的MySQL操作
- Python: Convert rst to html
- animation of android (1)
- 论坛一大早白屏,无法访问
- return true Java方法_java - 如何检查方法是否返回true或false?_java_酷徒编程知识库...
- 崛起吧,亲爱的,该背单词了!!!
- 微信小程序 app.js 操作 页面js方法
- mysql流式查询mybatis_流式查询:MyBatis千万级数据查询解决方案,避免OOM