嵌入式防火墙的实现(几年前的毕业设计之五)

6.1 Linux防火墙的发展
防火墙(firewall)实际上是一种访问控制技术,主要作用是通过限制网络或某一特定区域的通信,阻止对信息资源的非法访问和防止保密信息从受保护网络上非法输出。它是提供信息安全服务,实现网络和信息安全的基础设施。目前实现防火墙的主要技术有:数据包过滤和应用代理。
(1) 包过滤
包过滤(packet,filter)技术是在网络层中对数据包实施有选择的通过。依据系统内预先设定的过滤规则,检查数据流中每个数据包,根据数据包的源地址、目的地址、TCP/UDP源端口号、TCP/UDP目的端口号及数据包头中的各种标志位等因素采确定是否允许数据包通过,其核心是安全策略即过滤规则的设计。
(2)应用代理   

应用代理(application proxy)作用在应用层。其特点是完全“阻隔”了网络通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用.内部网络只接受代理提出的服务请求,拒绝外部网络其它接点的直接请求. 在实际应用当中,构筑防火墙的“真正的解决方案”很少采用单一的技术,通常是多种解决不同问题的技术的有机组合.大多数防火墙将数据包过滤和应用代理服务器结合起来使用.

一、 Nefilter简介

从1.1内核开始,Linux开始具有包过滤功能了,2.0的内核中则采用iPfwadm来操作内核包过滤规则。1998年在2.2的内核中,以ipchains取代了ipfwadm。 ipchains是以内核级运行的C及C++代码,没有很好地提供从用户空间访问ipchains的接口,导致防火墙应用程序不能使用许多常用的语言编写,如Perl,Tcl或Java.这就限制Ipchains的可扩展性。认识到以上问题。Rusty Russell在l 998年启动了Netfilter计划创建一个通用的框架结构用于包的修改和处理.

 
二、  Netfilter的特点
Netfilter是Linux2.4.x内核中用于包处理的抽象、通用化的框架,它为每种网络协议(IPv4、IPv6等)定义一套钩子函数(hook),其中IPv4定义了5个钩子函数。内核的模块可以对每种协议注册多个钩子,这样当某个数据包通过Netfilter框架时。Netfilter检测是否有任何模块对该协议和钩子函数进行了注册。若有,则将该数据包传结这些模块处理。Netfilter提供了数据包过滤(filter表),网络地址转换(NAT表)及数据包处理(mangle表)三种数据包处理能力。
6.2 iptables的配置方法

(1) 对链的操作
建立一个新链 (-N)。
删除一个空链 (-X)。
改变一个内建链的原则 (-P)。
列出一个链中的规则 (-L)。
清除一个链中的所有规则 (-F)。

归零(zero) 一个链中所有规则的封包字节(byte) 记数器 (-Z)。
 

(2) 对规则的操作
加入(append) 一个新规则到一个链 (-A)的最后。
在链内某个位置插入(insert) 一个新规则(-I),通常是插在最前面。
在链内某个位置替换(replace) 一条规则 (-R)。
在链内某个位置删除(delete) 一条规则 (-D)。
删除(delete) 链内第一条规则 (-D)。

 

(3) 指定源地址和目的地址

通过--source/--s

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Xfilter 源代码完整的文件列表 ------------------------------------------------------ .\Common .\Lib .\Property .\Release .\TcpIpDog .\Xfilter.dsw .\readme.txt .\filelist.txt .\Common\XLogFile.h .\Common\XLogFile.cpp .\Common\XInstall.cpp .\Common\XFile.h .\Common\XInstall.h .\Common\XFile.cpp .\Common\Debug.h .\Common\XFileRes.h .\Lib\htmlhelp.h .\Lib\htmlhelp.lib .\Property\Property.opt .\Property\Property.aps .\Property\Property.dsp .\Property\Property.rc .\Property\Property.clw .\Property\ReadMe.txt .\Property\resource.h .\Property\NetIPAria.h .\Property\GuiRes.h .\Property\AclSet.cpp .\Property\SetTime.h .\Property\Acl.cpp .\Property\SetNet.h .\Property\MainSheet.h .\Property\AclSet.h .\Property\Register.h .\Property\SystemSet.cpp .\Property\Splash.h .\Property\Property.dsw .\Property\Acl.h .\Property\Property.ncb .\Property\Splash.cpp .\Property\Property.h .\Property\LogQuery.h .\Property\SetTime.cpp .\Property\MainSheet.cpp .\Property\SetNet.cpp .\Property\NetIPAria.cpp .\Property\About.cpp .\Property\StdAfx.h .\Property\StdAfx.cpp .\Property\SystemSet.h .\Property\Register.cpp .\Property\About.h .\Property\LogQuery.cpp .\Property\Property.cpp .\Property\NetTimeSheet.h .\Property\PacketMonitor.h .\Property\Property.plg .\Property\NetTimeSheet.cpp .\Property\PacketMonitor.cpp .\Property\Internet .\Property\MainFrame .\Property\SystemTray .\Property\res .\Property\HyperLink .\Property\Internet\Internet.cpp .\Property\Internet\Internet.h .\Property\MainFrame\MainFrame.cpp .\Property\MainFrame\mainframe.h .\Property\SystemTray\SystemTray.cpp .\Property\SystemTray\SystemTray.h .\Property\res\Property.rc2 .\Property\res\NULL.ico .\Property\res\Property.ico .\Property\res\about.bmp .\Property\res\Alert.ico .\Property\res\DenyEx1.ico .\Property\res\PassEx1.ico .\Property\res\QueryEx1.ico .\Property\res\splash.bmp .\Property\res\MEMO.ICO .\Property\res\ALERTSET.ICO .\Property\res\APPSET.ICO .\Property\res\BASESET.ICO .\Property\res\COMMONSET.ICO .\Property\res\Monitor.ico .\Property\res\NETSET.ICO .\Property\res\SUPERSET.ICO .\Property\res\TIMESET.ICO .\Property\res\Xfilter.ico .\Property\res\IPSET.ICO .\Property\res\Email.ico .\Property\res\QueryResult.ico .\Property\res\QuerySet.ICO .\Property\res\UserInfo.ico .\Property\res\ACLSET.ICO .\Property\res\Message.ico .\Property\HyperLink\HyperLink.cpp .\Property\HyperLink\HyperLink.h .\Release\xacl.cfg .\Release\Xfilter.chm .\Release\Xfilter.exe .\Release\Xfilter.dll .\Release\xlog.dat .\TcpIpDog\StdAfx.cpp .\TcpIpDog\TcpIpDog.dsp .\TcpIpDog\LspServ.def .\TcpIpDog\ReadMe.txt .\TcpIpDog\CheckAcl.cpp .\TcpIpDog\TcpIpdog.cpp .\TcpIpDog\Codes.h .\TcpIpDog\TcpIpDog.h .\TcpIpDog\ProtocolInfo.h .\TcpIpDog\CheckAcl.h .\TcpIpDog\StdAfx.h .\TcpIpDog\ProtocolInfo.cpp .\TcpIpDog\TcpIpDog.plg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值