手机版
你好,游客 登录 注册
背景:
阅读新闻

Iptables+L7+Squid实现完善的软件防火墙

[日期:2013-05-24] 来源:Linux社区  作者:xuet118 [字体: ]

Iptables是用linux操作系统作为一个软件防火墙做到宏观上的保护,数据包要经过防火墙首先来到tcp/ip协议栈,防火墙通过内核的一些机制来做到对数据的过滤,内核里有这样五个函数INPUTOUTPUTFORWARDPOSTROUTINGPREROUTING,内核没办法直接修改我们通过使用iptables用户空间工具来对这五个函数下发规则,从而达到对流量的过滤,五个函数的架构称为netfilter,根据函数的功能可以分为下面三类:

natpostrouting路由判断之后也就是snatprerouting路由判断之前也就是dnat

filter:实现流量过滤,input流量目标位防火墙,output流量从防火墙出,forward流量经过防火墙

mangleTOSQOS

下面是五个函数对流量过滤的方式:

Input过滤进入防火墙的流量

OUTput过滤来自防火墙的流量

Forward过滤从防火墙经过的流量

Postrouting过滤从某接口出去的流量

Prerouting过滤从某接口进去的流量

为增加iptables防火墙(网络层过滤)的功能可以增加L7(七层协议模块化)补丁来加强对流量的过滤,另外增加squid(应用层过滤)可以使防火墙更加灵活,这样结合起来可以使防火墙更加完善

案例:

要求:

公司有三个部门:

工程部门192.168.20.10—192.168.20.20

软件部门192.168.20.21-192.168.20.30

经理办192.168.20.31-192.168.20.40

上班时间(周一---周五 082000

工程部门:上班时间只能访问192.168.102.10ftp,不允许登录qq不允许上网,下班后无限制。

软件部门:通过squid可以上网,但不允许访问非法站点sina ,连接数最多3个,不允许看图片,下班后无限制。

经理办公室:可以上网可以登录qq,下班后无限制

dmz区域:开启远程控制用于外部人员控制访问。

配置步骤:

iptables增加layer7补丁,实现应用层过滤

重新编译内核

1、合并kernellayer7补丁

tar jxvf linux-2.6.25.19.tar.gz2 -C /usr/src/

tar zxvf netfilter-layer7-v2.20.tar.gz -C /usr/src/

cd /usr/src/linux-2.6.25.19/

patch -p1 < /usr/src/netfilter-layer7-v2.20/kernel-2.6.25-layer7-2.20.patch

2、配置新内核

cp /boot/config-2.6.18-8.el5 .config//沿用旧的内核配置

make menuconfig

//配置内核时,在“Networking ---> Networking Options ---> Network Packet filtering framework (Netfilter) ”处主要注意两个地方:---> Core Netfilter Configuration将“Netfilter connection tracking suport (NEW)”选择编译为模块(M),需选取此项才能看到layer7支持的配置。

//layer7stringstatetimeIPseciprangeconnlimit……等编译成模块,根据需要看着办。---> IP: Netfilter Configuration将“IPv4 connection tracking support (require for NAT)”编译成模块。将“Full NAT”下的“MASQUERADE target support”和“REDIRECT target support”编译成模块。

3、编译及安装模块、新内核

make && make modules_install && make install

编译安装成后后,重启选择使用新的内核(2.6.25.19)引导系统

重新编译iptables

1、卸载现有iptables

rpm -e iptables iptstat --nodeps

2、合并iptableslayer7补丁

tar jxvf iptables-1.4.2.tar.bz2 -C /usr/src/

cd /usr/src/netfilter-layer7-v2.20/iptables-1.4.1.1-for-kernel-2.6.20forward/

cp libxt_layer7.c libxt_layer7.man /usr/src/iptables-1.4.2/extensions/

3、编译安装

cd /usr/src/iptables-1.4.2/

./configure --prefix=/ --with-ksource=/usr/src/linux-2.6.25.19

make && make install

4、安装l7-protocols模式包

tar zxvf l7-protocols-2008-10-04.tar.gz -C /etc/

mv /etc/l7-protocols-2008-10-04 /etc/l7-protocols

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款