Iptables+l7+squid的应用


Iptables+l7+squid的应用Iptables是网络层防火墙,主要用于网络层、传输层的过滤,对应用层的过滤较少,但是支持的应用比较多,如NAT转换

Layer7能使iptables基于应用层过滤

Squid是一个应用层代理服务器,不仅可以过滤网络层、还可以过滤应用层,就是支持的应用比较少。

所以iptables+l7+squid不愧是一个完美组合。下面就通过一个小案例来说明一下

一个公司有两个部门和一个经理部,要求对他们在上班时间(周一到周六08:00–20:00)做如下的上网限制:

技术部:可以使用ftp来上传和下载资料,不允许使用QQ聊天,不允许浏览网页,不允许使用迅雷下载东西。

市场部:可以浏览网页,但不允许访问一些非法站点,如sina,也不允许使用迅雷,和QQ聊天,不允许使用pplive,不允许浏览图片,每个用户的最大连接数为5

经理办httpqq都可以使用

下班后,没用任何限制。

公司还要发布自己的www服务器

Linux防火墙的eth0网卡连接内网,eth2网卡连接外网,eth3网卡连接DMZ

Eth0192.168.101.166

Eth2192.168.免费云主机域名2.253

Eth3192.168.3.253

技术部ip范围192.168.2.1—-192.168.2.100

市场部ip范围192.168.2.101—–192.168.2.200

经理办ip范围192.168.2.201—192.168.2.210

www服务器ip地址为192.168.3.66

拓扑图就不画了

分析:

ftp的控制我们使用iptables,对于QQ的聊天、迅雷下载控制我们用L7控制,对于网页浏览、禁止浏览非法站点,图片信息我们用squid控制。

1、首先开启数据包转发功能
vim/etc/sysctl.conf

net.ipv4.ip_forward=1修改为1即开启转发

sysctl-p立即生效

2、设置默认拒绝所用

iptables-PINPUTDROP

iptables-POUTPUTDROP

iptables-PFORWARDDROP

3、配置SNAT,使内网用户可以上网

iptables-tnat-APOSTROUTING-s192.168.2.0/24-oeth2-jMASQUERADE

4、控制

(1)允许ftp

iptables-tfilter-AFORWARD-miprange–src-range192.168.2.1-192.168.2.100-mtime–timestart08:00–timestop20:00–weekdaysMon,Tue,Wed,Thu,Fri-ptcp–dport21-jACCEPT

iptables-tfilter-AFORWARD-mstate–stateESTABLISHED,RELATED,NEW-jACCEPT

允许转发的通过

(2)禁用QQ、迅雷(不写规则也是可以的,默认是拒绝的,加强一下)

iptables-tfilter-AFORWARD-miprange–src-range192.168.2.1-192.168.2.200-mtime–timestart08:00–timestop20:00–weekdaysMon,Tue,Wed,Thu,Fri-mlayer7–l7protoqq-jDROP

iptables-tfilter-AFORWARD-miprange–src-range192.168.2.1-192.168.2.200-mtime–timestart08:00–timestop20:00–weekdaysMon,Tue,Wed,Thu,Fri-mlayer7–l7protoxunlei-jDROP

(3)squid的控制

Vim/etc/squid/squid.conf修改和添加如下几行如下:

919http_port3128transparent

2994visible_hostname192.168.2.253

4134dns_nameservers222.88.88.88222.85.85.85

重启squid,以上是squid的基本配置,下面的是控制配置

(4)iptables控制

iptables-tnat-APREROUTING-mtime–timestart08:00–timestop20:00–weekdaysMon,Tue,Wed,Thu,Fri-mconnlimit–connlimit-above5–connlimit-mask32-ptcp–dport80-jREDIRECT–to-port3128

80端口重定上到3128,来实现透明代理

iptables-tfilter-AOUTPUT-mstate–stateEASTABLISHED-jACCEPT

iptables-tnat-APOSTROUTING-miprange–src-range192.168.2.101-192.168.2.210-mtime–timestart08:00–timestop20:00–weekdaysMon,Tue,Wed,Thu,Fri-pudp–dport53-jMASQUERADEDNS解析进行NAT(这一条规则好像没用流量匹配)

iptables-tfilter-AFORWARD-miprange–src-range192.168.2.101-192.168.2.210-mtime–timestart08:00–timestop20:00–weekdaysMon,Tue,Wed,Thu,Fri-pudp–dport53-jACCEPT

iptables-tfilter-AOUTPUT-ptcp–dport80-s192.168.101.166-jACCEPT

iptables-AINPUT-mstate–stateESTABLISHED-jACCEPT

iptables-tfilter-AOUTPUT-pudp–dport53-jACCEPT–允许squid代理的查询

iptables-tfilter-AFORWARD-miprange–src-range192.168.2.101-192.168.2.200-mlayer7–l7protopplive-jDROP

市场部的squid控制

重启squid

iptables-tfilter-RFORWARD8-miprange–src-range192.168.2.201-192.168.2.210-oeth2-jACCEPT

服务器发布

iptables-tnat-APOSTROUTING-s192.168.3.66/32-oeth2-jSNAT–to192.168.101.166

5)下班后无限制

iptables-tfilter-AFORWARD-miprange–src-range192.168.2.201-192.168.2.210-oeth2-jACCEPT

(星期六、日不允许的是。)功能以实现!!!!

相关推荐: linux中la文件指的是什么

这篇文章主要讲解了“linux中la文件指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中la文件指的是什么”吧! 在linux中,la是使用libtool编译出的库文件,是记录同名动态库和静…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/27 10:17
下一篇 01/27 10:17