基于Linux系统的包过滤防火墙

基于linux的嵌入IPv4协议栈的内容过滤防火墙系统(4)-包过滤模块和内容过滤模块 二。包过滤模块和内容过滤模块2。1 技术背景采用技术  2。1。1 模块编程  2。1。2 netfilter              Netfilter是linux2.4内核实现数据包过滤/数据包处理/NAT等的功能框架。它在网络上设置了五个钩(hook),我们可以在我们所需要的一个钩对数据进行过滤,在本程序中,我们对所有进入服务器的数据包进行过滤。  2。1。3 TCP/IP协议       阅读详情
基于Linux系统的包过滤防火墙

?

第1 章、基于路由器的包过滤防火墙
1.1 包过滤防火墙的一般概念
1.1.1 什么是包过滤防火墙
包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃(DROP)这个包,可能会接受(ACCEPT)这个包(让这个包通过),也可能执行其它更复杂的动作。
在Linux系统下,包过滤功能是内建于核心的(作为一个核心模块,或者直接内建),同时还有一些可以运用于数据包之上的技巧,不过最常用的依然是查看包头以决定包的命运。
1.1.2 包过滤防火墙的工作层次
包过滤是一种内置于Linux内核路由功能之上的防火墙类型,其防火墙工作在网络层。
1.1.3 包过滤防火墙的工作原理
(1)使用过滤器。数据包过滤用在内部主机和外部主机之间,? ? ? ? 过滤系统是一台路由器或是一台主机。过滤系统根据过滤规则来决定是否让数据包通过。用于过滤数据包的路由器被称为过滤路由器。
数据包过滤是通过对数据包的IP头和TCP头或UDP头的检查来实现的,主要信息有:
* IP源地址
* IP目标地址
* 协议(TCP包、UDP包和ICMP包)
* TCP或UDP包的源端口
* TCP或UDP包的目标端口
* ICMP消息类型
* TCP包头中的ACK位
* 数据包到达的端口
* 数据包出去的端口
在TCP/IP中,存在着一些标准的服务端口号,例如,HTTP的端口号为80。通过屏蔽特定的端口可以禁止特定的服务。包过滤系统可以阻塞内部主机和外部主机或另外一个网络之间的连接,例如,可以阻塞一些被视为是有敌意的或不可信的主机或网络连接到内部网络中。
(2)过滤器的实现。数据包过滤一般使用过滤路由器来实现,这种路由器与普通的路由器有所不同。
普通的路由器只检查数据包的目标地址,并选择一个达到目的地址的最佳路径。它处理数据包是以目标地址为基础的,存在着两种可能性:若路由器可以找到一个路径到达目标地址则发送出去;若路由器不知道如何发送数据包则通知数据包的发送者“数据包不可达”。
过滤路由器会更加仔细地检查数据包,除了决定是否有到达目标地址的路径外,还要决定是否应该发送数据包。“应该与否”是由路由器的过滤策略决定并强行执行的。
路由器的过滤策略主要有:
* 拒绝来自某主机或某网段的所有连接。
* 允许来自某主机或某网段的所有连接。
* 拒绝来自某主机或某网段的指定端口的连接。
* 允许来自某主机或某网段的指定端口的连接。
* 拒绝本地主机或本地网络与其它主机或其它网络的所有连接。
* 允许本地主机或本地网络与其它主机或其它网络的所有连接。
* 拒绝本地主机或本地网络与其它主机或其它网络的指定端口的连接。
* 允许本地主机或本地网络与其它主机或其它网络的指定端口的连接。
1.1.4 包过滤器操作的基本过程
下面做个简单的叙述:
(1)包过滤规则必须被包过滤设备端口存储起来。
(2)当包到达端口时,对包报头进行语法分析。大多数包过滤设备只检查IP、TCP、或UDP报头中的字段。
(3)包过滤规则以特殊的方式存储。应用于包的规则的顺序与包过滤器规则存储顺序必须相同。
(4)若一条规则阻止包传输或接收,则此包便不被允许。
(5)若一条规则允许包传输或接收,则此包便可以被继续处理。
(6)若包不满足任何一条规则,则此包便被阻塞。
1.1.5 包过滤技术的优缺点
(1)优点:
→对于一个小型的、不太复杂的站点,包过滤比较容易实现。
→因为过滤路由器工作在IP层和TCP层,所以处理包的速度比代理服务器快。
→过滤路由器为用户提供了一种透明的服务,用户不需要改变客户端的任何应用程序,也不需要用户学习任何新的东西。因为过滤路由器工作在IP层和TCP层,而IP层和TCP层与应用层的问题毫不相关。所以,过滤路由器有时也被称为“包过滤网关”或“透明网关”,之所被称为网关,是因为包过滤路由器和传统路由器不同,它涉及到了传输层。
→过滤路由器在价格上一般比代理服务器便宜。
(2)缺点:
→一些包过滤网关不支持有效的用户认证。
→规则表很快会变得很大而且复杂,规则很难测试。随着表的增大和复杂性的增加,规则结构出现漏洞的可能??性也会增加。
→这种防火墙最大的缺陷是它依赖一个单一的部件来保护系统。如果这个部件出现了问题,会使得网络大门敞开,而用户其至可能还不知道。
→在一般情况下,如果外部用户被允许访问内部主机,则它就可以访问内部网上的任何主机。
→包过滤防火墙只能阻止一种类型的IP欺骗,即外部主机伪装内部主机的IP,对于外部主机伪装外部主机的IP欺骗却不可能阻止,而且它不能防止DNS欺骗。
虽然,包过滤防火墙有如上所述的缺点,但是在管理良好的小规模网络上,它能够正常的发挥其作用。一般情况下,人们不单独使用包过滤网关,而是将它和其他设备(如堡垒主机等)联合使用。
1.2 Netfilter/iptables架构
1.2.1 Linux下的包过滤防火墙管理工具
从1.1内核开始,Linux系统就已经具有包过滤功能了,随着Linux内核版本的不断升级,Linux下的包过滤系统经历了如下3个阶段:
→ 在2.0的内核中,采用ipfwadm来操作内核包过滤规则。
→ 在2.2的内核中,采用ipchains来控制内核包过滤规则。
→??在2.4内核中,采用一个全新的内核包过滤管理工具—iptables.
Linux因其健壮性、可靠性、灵活性以及几乎无限范围的可定制性而在IT界变得非常受欢迎。Linux具有许多内置的能力,使开发人员可以根据自己的需要定制其工具、行为和外观,而无需昂贵的第三方工具。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,所要用到的一种内置能力就是针对网络上Linux系统的防火墙配置。可以在Netfilter/iptables IP信息包过滤系统(它集成在2.4.x版本的Linux内核中)的帮助下运用这种能力。Netfilter/iptables是与最新的2.4.x版本Linux内核集成的IP信息包过滤系统。
与ipfwadm和ipchains这样的Linux信息包过滤方案相比,Netfilter/iptables信息包过滤系统是最新的解决方案,使用户更易于理解其工作原理,也具有更为强大的功能。对于Linux系统管理员、网络管理员以及家庭用户(他们想要根据自己特定的需求来配置防火墙、在防火墙解决方案上节省费用和对IP信息包过滤具有完全控制权)来说,Netfilter/iptables系统十分理想,且更容易被使用。
1.2.2 新一代的Netfilter网络底层架构
Netfilter是一种内核中用于扩展各种网络服务的结构化底层构架。Netfilter的设计思想是生成一个模块结构使之能够比较容易的扩展。新的特性加入到内核中并不需要重新启动内核。这样,可以通过简单的构造一个内核模块来实现网络新特性的扩展。为底层的网络特性扩展带来了极大的便利,使更多从事网络底层研发的人员能够集中精力实现新的网络特性。
事实上,我们可以将Netfilter视为网络协议堆栈中可以让其它模块操作网络数据包的一系列“钩子”,在数据包通过协议堆栈的某些特定的点上,Netfilter框架允许一个模块转发或丢弃数据包、通过某种方式改变数据包、在用户空间(非内核模式)对包进行排队,当然也可以根本不去干涉它。
(1)Netfilter/iptables系统的含义。Linux 2.4内核中Netfilter是新的用来实现防火墙的过滤器。 iptables是用来指定Netfilter规则的用户工具。
Iptables只是一个管理内核包过滤的工具,它为用户配置防火墙规则提供了方便。
Iptables可以加入、插入或删除核心包过滤表格(链)中的规则。实际上真正来执行这些规则的netfilter及其相关模块(如iptables模块和nat模块等)。
因此,要使用Netfilter/iptables系统,必须首先有2.4版本内核的相关支持,同时必须安装iptables软件包。在Red Hat 9.0发行版中,此系统是默认的配置。
(2)使用Netfilter/iptables替代ipchains的原因:
→连接跟踪
→自动碎片重装
→改良的匹配规则
→增强的日志功能
→允许撕裂包中的任何信息
→用户队列允许用户空间对包进行编程
→支持内置包转发而舍弃了IPMASQANDM
(3)Netfilter/iptables系统的主要功能
→状态包过滤(连接跟踪)
→各种网络地址翻译
→灵活、易扩展的急智机制
→大量的增强型补丁包
(4)Netfilter/iptables的用途
→建立Internet防火墙和基于状态的包过滤
→用NAT和伪装(masquerading)共享上网
→用NAT实现透明代理
→用修改IP包头的ToS字段来实现更复杂的功能
→和tc+iprouter2配合使用可以实现QoS路由
(5)Netfilter/iptables系统的优点。Netfilter/iptables的最大优点是它可以配置有状态的防火墙,这是ipfwadm和ipchains等以前的工具都无法提供的一种重要功能。有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。有4种有效状态,名称分别为ESTABLISHED、INVALID、NEW和RELATED。其中:
→状态ESTABLISHED指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效。
→状态INVALID指出该信息包与任何已知的流或连接都不相关联,它可能包含错误的数据或头。
→状态NEW意味着该项信息包已经或将启动新的连接,或者它与尚味用于发送和接收信息包的连接相关联。
→状态RELATED表示该信息包正在启动新连接,以及它与已建立的连接相关联。
Netfilter/iptables的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。您可以定制自己的规则来懑足您的特定需求,从而只允许您想要的网络流量进入系统。
此外,Netfilter/iptables是免费的,这对于那些想要节省费用的人来说十分理想,它可以代替昂贵的防火墙解决方案。
总之,最新的Linux内核2.4.x具有Netfilter/iptables系统这种内置的IP信息包过滤工具,它使配置防火墙和信息包过滤变得便宜且方便。Netfilter/iptables系统使其用户可以完全控制防火墙配置和信息包过滤。它允许为防火墙建立可定制化的规则来控制信息包过滤。它还允许配置有状态的防火墙。
1.2.3 Netfilter/iptables的内核空间和用户空间
虽然netfilter/iptables IP信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter和iptables组成。
(1)内核空间。Netfilter组件也称为内核空间(KernelSpace),是内核的一部分,由一些“表”(table)组成,每个表由若干“链”组成,而每条链中可以有一条或数条规则(rule)。
(2)用户空间。Iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
1.2.4 Netfilter/iptables过滤系统是如何工作的
Netfilter/iptables IP信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做包过滤决定时所遵循的依据。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组在链(chain)中。
(1)用户使用iptables命令在用户空间设置过滤规则。通过使用用户空间可以构建用户自己的定制过滤规则,这些规则存储在内核空间的信息包过滤表中。这些规则具有目标,它们告诉内核对来自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。如果某个信息包与规则匹配,那么使用目标ACCEPT允许该信息包通过。还可以使用目标DROP或REJECT来阻塞并杀死信息包。对于可对信息包执行的其它操作,还有许多其它目标。
根据规则所处理的信息包的类型,可以将规则分组在链中。
→处理入站信息包的规则被添加到INPUT链中。
→处理出站信息包的规则被添加到OUTPUT链中。
→处理正在转发的信息包的规则被添加到FORWARD链中。
这3个链是系统默认的表(filter)中内置的3个默认主链。每个链都有一个策略,它定义默认目标,也就是要执行的默认操作,当信息包与链中的任何规则都不匹配时,执行此操作。
(2)内核空间接管过滤工作。当规则建立并将链放在filter表之后,? ? ? ? 就可以开始进行真正的信息包过滤工作了。这时内核空间从用户空间接管工作。
包过滤工作要经过如下的步骤:
1)路由。当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地。我们将这个过程称为路由。
2)根据情况将数据包送往包过滤表(filter)的不同的链。
→如果信息包源自外界并且数据包的目的地址是本机,而且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表的INPUT链。
→如果信息包源自系统本机,并且此信息包要前往另一个系统,那么信息包被传递到OUTPUT链。
→信息包源自广域网前往局域网或相反方向的信息包被传递到FORWARD链。
3)规则检查。将信息包的头信息与它所传递到的链中的每条规则进行比较,看它是否与某条规则完全匹配。
→如果信息包与某条规则匹配,那么内核就对该信息包执行由该项规则的目标指定的操作。
&如果目标为ACCEPT,则允许该信息包通过,并将该包发给相应的本地进程处理。
&如果目标为DROP或REJECT,则不允许该信息包通过,并将该包阻塞并杀死。
→如果信息包与这条规则不匹配,那么它将与链中的下一条规则进行比较。
→最后,如果信息包与链中的任何规则都不匹配,那么内核将参考该链的策略来决定如何处理该信息包。理想的策略应该告诉内核DROP该信息包。
1.2.5 Red Hat linux 9中的Netfilter/iptables
Red Hat linux 9使用2.4版本的内核,并且内核的编译选项中包含对Netfilter的支持,同时iptables软件包是被默认安装的,所以可以直接使用。
另外,为了完成转发功能,必须打开系统内核的IP转发功能。使Linux变成路由器。
在Red Hat中有两种方法:
(1)修改内核变量ip_forward
#echo “1”>;/proc/sys/net/ipv4/ip_forward
(2)修改脚本/etc/sysconfig/network。
将FORWARD_IPV4=false
改为FORWARD_IPV4=true
第2章、用用户空间命令iptables实现包过滤
2.1 相关的TCP/IP知识
2.1.1建立TCP连接(通过3次握手实现)
假如服务器A和客户机B通信。
(1)B->;A。当B要和A通信时,B首先向A发一个SYN标记的包,告诉A请求建立连接。只有当A收到B发来的SYN包,才可以建立连接,除此之外别无它法。因此,如果你的防火墙丢弃所有的发往外网接口的SYN包,那么你将不能让外部任何主机主动建立连接。
(2)B<-A。接着,A收到后会发一个对SYN包的确认包(SYN/ACK)回去,表示对第一个SYN包的确认,并继续握手操作。
(3)B->;A。B收到SYN/ACK包后,B发一个确认包(ACK),通知A连接已建立。至此,3次握手完成,一个TCP连接完成。
需要注意的是,当3次握手完成、连接建立以后,TCP连接的每个包都会设置ACK位。这就是为何连接跟踪很重要的原因了,没有连接跟踪,防火墙将无法判断收到的ACK包是否属于一个已经建立的连接。
2.1.2 结束TCP连接(通过4次握手实现)
假如服务器A和客户机B通信。注意,由于TCP连接是双向连接,因此关闭连接需要在两个方向上做。
(1)B->;A。当B要与A结束通信时,B首先向A发一个FIN标记的包,告诉A请求结束连接。由于连接还没有关闭,FIN包总是打上ACK标记。没有ACK标记而仅有FIN标记的包不是合法的包,并且通常被认为是恶意的。
(2)B<-A。A送出ACK包给B,表示成功地中止B->;A传输通道。不过A->;B可能还有数据包需要传送,所以A->;B传输通道仍旧继续畅通,直到传输完毕才会进入下一步。
(3)B<-A。当A完成B<-A的传输后,便送出ACK/FIN包。
(4)B->;A。B送出ACK包给A进行确认。
2.1.3 发送连接复位包结束TCP连接
4次握手不是结束TCP连接的唯一方法。有时,如果主机需要尽快关闭连接(或连接超时,端口或主机不可达),RST包将被发送。注意,由于RST包不是TCP连接中的必须部分,可以只发送RST包(即不带ACK标记)。但在正常的TCP连接中RST包可以带ACK确认标记。注意,RST包是可以不要收方进行确认的。
2.1.4 无效的TCP标记
至此,已经看到了SYN、ACK、FIN、和RST标记。另外,还有PSH和URG标记。
最常见的非法组合是SYN/FIN包。注意,由于SYN包是用来初始化连接的,它不可能和FIN以及RST标记一起出现,这也是一个恶意攻击。
当网络中出现别的一些组合(如SYN/FIN/PSH、SYN/FIN/RST、SYN/FIN/RST/PSH),很明显网络肯定受到了攻击。
另外,已知的非法包还有FIN(无ACK标记)和“NULL”包。如同早先讨论的,由于ACK/FIN包的出现是为了结束一个TCP连接,那么正常的FIN包总是带有ACK标记的。“NULL”包就是没有任何TCP标记的包(URG、ACK、PSH、RST、SYN、FIN都为0)。
在正常的网络活动下,到目前为止TCP协议栈不可能产生带有上面提到的任何一个标记组合的TCP包。当你发现这些不正常的包时,肯定有人对你的网络不怀好意。
2.1.5 ICMP类型
ICMP是网间控制消息协议,用来在主机/路由器之间传递控制信息的协议。ICMP包可以包含诊断信息(ping 、 tracerouter)、错误信息(网络/主机/端口不可达),信息(时间戳timestamp,地址掩码address mask等)、或控制信息(source quench、redirect等)。
使用包过滤可以拒绝指定的ICMP类型。
此外,下面类型的ICMP信息建议丢弃。
Redirect(5)、Alternate Host Address(6)、Router Advertisement(9)能用来转发通信。? ? ? ?
Echo(8)、Timestamp(13)、Address Mask Request(17)能用来分别判断主机是否启动、本地时间和地址掩码。它们是和返回的信息类别有关的。其本身是不能被利用的,但它们泄漏出的信息对攻击者是有用的,所以建议丢弃这些类型的ICMP。
关于ICMP类型的更详细的表述参见RFC792。
2.2 iptables语法
2.2.1 Iptables的优点
→ iptables允许建立状态(stateful)防火墙,就是在内存中保存穿过防火墙的每条连接。这种模式对于有效地配置FTP和DNS以及其它网络服务是必要的。
→iptables能够过滤TCP标志任意组合报文,还能够过滤MAC地址。
→系统日志比ipchains更容易配置,扩展性也更好。
→对于网络地址转换(Network Address Translation)和透明代理的支持,Netfilter更为强大和易于使用。
→iptables能够阻止某些DoS攻击,例如SYS洪泛攻击。
2.2.2 Iptables的规则要素
一条iptables规则基本上应该包含5个要素:
→指定表(table)
→指定操作命令(command)
→指定链(chains)
→指定规则匹配器(matcher)
→指定目标动作(target)
(1)表。Iptables从其使用的3个表而得名,分别是filter、nat、mangle。对于包过滤防火墙只使用filter表。表filter是默认的表,无需显示说明。
(2)操作命令。包括添加、删除、更新等。
(3)链。对于包过滤防火墙可操作filter表中的INPUT链、OUTPUT链和FORWARD链。也可以操作由用户自己定义的自定义链。
(4)规则匹配器。可以指定各种规则匹配,如IP地址、端口、包类型等。
目标动作。当规则匹配一个包时,真正要执行的任务用目标标识。最常用的内置目标分别是:
→ACCEPT表示允许包通过
→DROP表示被丢弃
此外,包过滤防火墙还可以使用扩展的目标:
→REJECT表示拒绝包,丢弃包的同时给发送者发送没有接受的通知。
→LOG表示包的有关信息被记录日志。
→TOS表示改写包的ToS的值。
要使用上述的扩展目标,必须在内核中激活相应选项或者装载了相应的内核模块。
2.2.3 Iptables工具的调用语法
Iptables的语法非常复杂,要查看该工具的完整语法,应该查看其手册页。
Iptables的语法通常可以简化为下面的形式:
Iptables[-t table]CMD[chain][rule-matcher][-j target]
其中:tables为表名,CMD为操作命令,chain为链名,rule-matcher为规则匹配器,target为目标动作。
2.2.4 制定永久性规则
??iptables软件包提供了两个命令分别用于保存和恢复规则集。可以使用下在的命令转储在内存中的内核规则集。其中/etc/sysconfig/iptables是iptables守护进程调用的默认规则集文件:
#/sbin/iptables-save >; /etc/sysconfig/iptables
要恢复原来的规则库,需使用命令:
#/sbin/iptables-restore < /etc/sysconfig/iptables
为了使得用iptables命令配置的规则在下次启动机器时还能被使用,有两种主法。
(1)使用iptables的启动脚本实现。Iptables的启动脚本/etc/rc.d/init.d/iptables每次启动时都使用/etc/sysconfig/iptables所提供的规则进行规则恢复,并可以使用如下的命令保存规则:
#service iptables save
(2) 在自定义脚本中用iptables命令直接创建规则集。可以直接用iptables命令编写一个规则脚本,并在启动时执行这个脚本。
例如:若规则脚本的文件名为/etc/fw/rules,则可以在启动脚本/etc/rd.d/init.d/rc.local中加入下面的代码:
if[-x /etc/fw/rules];then /etc/fw/rules;fi;
这样,机器每次启动时即可执行该规则脚本。
如果使用此种方式,建议使用ntsysv命令关闭系统的iptables守护进程。
2.3 iptables命令使用举例
2.3.1 链的基本操作
(1)清除所有的规则。通常在开始配置包过滤防火墙之初清除所有的规则,重新开始配置,以免原有的规则影响新的设定。使用如下命令进行:
1)? ? ? ? 清除预设表filter中所有规则链中的规则。
#iptables -F
2)清除预设表filter中使用者自定义链中的规则。
#iptables -X
3)将指定链所有规则的包字节记数器清零。
#iptables -Z
(2)设置链的默认策略。一般地,配置链的默认策略有两种方法。
1)? ? ? ? 首先允许所有的包,然后再禁止有危险的包通过防火墙。即“没有被拒绝的都允许”。这种方法对于用户而言比较灵活方便,但对系统而言,容易引起严重的安全问题。
为此,应该使用如下的初始化命令:
#iptables -P INPUT ACCEPT
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD ACCEPT
2)? ? ? ? 首先禁止所有的包,然后再根据需要的服务允许特定的包通过防火墙。即“没有明确允许的都被拒绝”。这种方法最安全,但不太方便。为了使得系统有足够的安全性,一般采用此种策略进行iptables防火墙的配置。
为此,应该使用如下的初始化命令:
#iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#iptables -P FORWAED DROP
3)列出表/链中的所有规则。包过滤防火墙只使用filter表,此表为默认的表,因此可以使用下面的命令列出filter表中所有规则:
#iptables -L
使用上面的命令时,iptables将逆向解析IP地址,这将发费很多时间,从而造成信息出来的非常慢。为了解决这个问题,可以使用下面的带有-n参数的命令(-n参数用于显示数字化的地址和端口):
#iptables -L -n
4)向链中添加规则。下面的语句用于开放网络接口:
#iptables -A INPUT -i lo -j ACCEPT
#iptables -A OUTPUT -o lo -j ACCEPT
#iptables -A??INPUT -i??eth0 -j ACCEPT??
#iptables -A OUTPUT -o eth0 -j ACCEPT
#iptables -A FORWARD -i eth0 -j ACCEPT
#iptables -A FPRWAED -o eth0 -j ACCEPT
5)使用用户自定义链。下面是一个用户自定义链的创建、修改和调用的简单命令序列:
#iptables -N custom
#iptables -A custom -s 0/0 -d 0/0 -p icmp -j DROP
#iptables -A INPUT -s 0/0 -d 0/0 -j custom
首先使用带-N参数的iptables命令新建了一个名为custom的用户逢定义链。然后使用带-A参数的命令添加了一条用户自定义的堵截规则,该规则丢弃全部的ICMP包。最后向默认的INPUT链加入一条规则,使所有的包都由custom自定义链处理。结果全部的ICMP包都将被丢弃。
2.3.2 设置基本的规则匹配
下面举例说明iptables的基本规则匹配(忽略目标动作):
(1)指定协议匹配
1)匹配指定的协议
#iptables -A INPUT -p tcp
2)匹配指定协议之外的所有协议
#iptables -A INPUT -p !tcp
(2)指定地址匹配
1)指定匹配的主机
#iptables -A INPUT -s 192.168.1.1
2)指定匹配的网络
#iptables -A INPUT -s 192.168.1.0/24
3)匹配指定主机之外的地址。
#iptables -A FORWARD -s ! 192.168.0.1
4)匹配指定网络之外的网络
#iptables -A FORWARD -s ! 192.168.0.0/24
(3)指定网络接口匹配。
1)指定单一的网络接口匹配。
#iptables -A INPUT -i eth0
#iptables -A FORWARD -o eth0
2)指定同类型的网络接口匹配
#iptables -A FORWARD -o ppp+
(4)指定端口匹配
1)指定单一的端口匹配。
#iptables -A INPUT -p tcp-sport www
#iptables -A INPUT -p tcp-sport 80
#iptables -A INPUT -p tcp-sport 53
#iptables -A INPUT -p udp-dport 53
2)匹配指定端口之外的端口。
#iptables -A INPUT -p tcp-dport ! 22
3)匹配指定端口的范围。
#iptables -A INPUT -p tcp-soprt 22:80
4)匹配ICMP端口和ICMP类型。
#iptables -A INPUT -p icmp --icmp-type 8
5)指定ip碎片
在TCP/IP通信过程中,每一个网络接口都有一个最大的传输单元(MTU),这个参数定义了可以通过的数据包的最大尺寸。如果一个数据包大于这个参数值时,系统会将其划分成更小的数个数据包(称之为ip碎片)来传输,而接收方则对这些ip碎片再进行重组以还原整个包。
但是在进行包过滤的时候,ip碎片会导致这样一个问题:当系统将大数据包划分成ip碎片传送时,第一个碎片含有完整的包头信息(IP+TCP、UDP和ICMP),但是后续的碎片只有包头的部分信息(如源地址、目的地址)。因此,检查后面的ip碎片的头部(就像有TCP、UDP和ICMP一样)是不可能的。假如有这样一条规则:
#iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.2.100 --dport 80 -j ACCEPT
并且这时的FORWARD的策略(policy)为DROP时,系统只会让第一个ip碎片通过,而丢掉其余的ip碎片,因为第一个碎片含有完整的包头信息,可以满足该规则的条件,而余下的碎片因为包头信息不完整而无法满足规则定义的条件,因而无法通过。
可以通过-fragment/-f选项来指定第二个及其以后的ip碎片,以上面的例子为例,我们可以再加上这样一条规则来解决这个问题:
#iptables -A FORWARD -f -s 192.168.1.0/24 -d 192.168.2.100 -j ACCEPT
但是需要注意的是,现在已经有许多进行ip碎片攻击的实例(例如向Win98 NT4SP5,6 Win2K发送大量的ip碎片进行DoS攻击),因此允许ip碎片通过是有安全隐患的,对于这一点可以采用iptables的匹配扩展来进行限制。
2.3.3 设置扩展的规则匹配
要获得匹配的简要说明,可以使用如下的命令:
#iptables -m name_of_match -help
下面举例说明iptables的扩展规则匹配(忽略目标动作):
(1)多端口匹配扩展。
1)匹配多个源端口。
#iptables -A INPUT -p tcp -m multiport-source-port 22,53,80,110
2)匹配多个目的端口
#iptables -A INPUT -p tcp -m multiport-destionation-port 22,53,80,110
3)匹配多个端口(无论源源端口还是目的端口)。
#iptables -A INPUT -p tcp -m multiport -port 22,53,80,110
(2)指定TCP匹配扩展
通过使用-tcp-flags选项可以根据tcp包的标志位进行过滤,该选项后接两个参数:第一个参数为要检查的标志位,可以是SYN、ACK、FIN、URG、PSH的组合,可以用ALL指定所有标志位:第二个参数是标志位值为1的标志。
#iptables -A INPUT -p tcp-tcp-flags SYN,FIN,ACK SYN
表示SYN、ACK、FIN的标志都要被检查,但是只有设置了SYN的才匹配。
#iptables -A INPUT -p tcp-tcp-flags ALL SYN,ACK
表示ALL(SYN,ACK,FIN,RST,URG,PSH)的标志都要被检查,但是只有设置了SYN和ACK的才匹配。
选项-syn是以上的一种特殊情况,相当于“--tcp-flags SYN,RST,ACK SYN“的简写。
#iptables -p tc-syn
(3)limit速率匹配扩展。
1)指定单位时间内允许通过的数据包的个数。
单位时间可以是/second、/minute、/hour、/day或使用第一个字母。例如:
#iptables -A INPUT -m limit-limit 300/hour
表示限制每小时允许通过300个数据包。
2)指定触发事件的阀值。
使用-limit-burst指定触发事件的阀值(默认是5),用来比对瞬间大量数据包的数量。
#iptables -A INPUT -m limit-limit-burst 10
上面的例子是用来比对一次同时涌入的封包是否超过10个,超过此上限的包将被直接丢弃。
3)同时指定速率限制和触发阀值。
#iptables -A INPUT -p icmp -m limit-limit 3/m-limit-burst 3
假设均匀通过,平均每分钟3个,那么触发阀值burst保持为3个,如果每分钟通过的包的数目小于3,那么触发阀值burst将在每个周期(若每分钟允许通过3个,则周期数为20秒)后加1,但最大值为3。每分钟要通过的包的数量如果超过3,那么触发阀值burst将减掉超出的数值,例如第二分钟有4个包,那么触发阀值burst变成2,同时4个包都可以通过,第三分钟有6个包,则只能通过5个,触发阀值burst将变成0。之后,每分钟如果包数小于等于3,则触发阀值burst将加1,如果每分钟包数大于3,触发阀值burst将逐渐减小最终维持为0。
即每分钟所允许的最大包数量为限制速率(本例为3)加上当前的触发阀值burst数。在任何情况下,都可以保证3个包通过,触发阀值burst相当于是允许额外的包数量。
(4)基于状态的匹配扩展(连接跟踪)。??
每个网络连接包括以下信息:源地址、目的地址、源端口、目的湍口,称为套接字对(socket pairs);协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些信息称为状态(stateful),能够检测每个连接状态的防火墙叫作状态包过滤防火墙。它除了能够完成简单包过滤防火墙的包过滤工作外,还在自己的内存中维护一个跟踪连接状态的表,比简单包过滤防火墙具有更大的安全性。iptables与ipchains的不同之处在于iptables可以使用连接状态信息,创建基于包的状态的规则匹配。
基于状态匹配创建规则的命令格式如下:
iptables -m state-state [!]state [,state,state,state]
其中,state表是一个用逗号分割的列表,用来指定的连接状态可以是如下的4种:
→NEW:该包想要开始一个连接(重新连接或将连接重定向)。
→RELATED:该包是属于某个已经建立连接所建立的新连接。例如:FTP的数据传输连接和控制连接之间就是RELATED关系。
→ESTABLISHED:该包属于某个已经建立的连接。
→INVALID:该包不匹配于任何连接,通常这些包会被DROP。
例如:
1)在INPUT链添加一条规则,匹配已经建立的连接或由已经建立的连接所建立的新连接。即匹配所有的TCP回应包。
#iptables -A INPUT -m state-state RELATED,ESTABLISHED
2)在INPUTP链添加一条规则,匹配所有从非eth0接口来的连接请求包。
#iptables -A INPUT -m state-state NEW -i ! eth0
又如,对于ftp连接可以使用下面的连接跟踪:1)被动ftp连接模式。
#iptables -A INPUT -p tcp-sport 1024: --dport 1024: -m state-state ESTABLES -j ACCEPT
#iptables -A OUTPUT -p tcp-sport 1024: --dport 1024: -m state-state ESTABLISHED,RELATED -j ACCEPT
2)主动ftp连接模式。
#iptables -A INPUT -p tcp-sport 20 -m state-state ESTABLISHED,RELATED -j ACCEPT -m state-state ESTABLISHED -j ACCEPT
(5)TOS匹配扩展。
所有数据包的首部都有一个称为服务类型的专用字段。该字段用于当数据包经过路由器时区分优先顺序。
使用ToS字段,可以使用某种类型的数据包优先于其它的数据包。有标记的数据包在路由器中进行不同的处理。设置ToS字段的工作是在网络层进行的。有关ToS的具体工作过程请参专考RFC1349。
在数据包中设置ToS字段的主要原因是:对不同类型的数据包加以区分,从而在流量较高的网络上减少网络拥塞。
数据包的ToS字段用一个字节表示。此字节的高3位舍弃不用,最低位使用固定值0,因此,有效位共有4个。有效位分别用来控制数据包的最小延时,最大吞吐量,最大可靠度和最小成本。其中,
→最小延时:用于减少数据包从路由到达主机的时间。
→最大吞吐量:用于提高数据传输量。适用于FTP数据端口,HTTP大文件传输和大量的POP3传输。
→最大可靠度:用来试图减少数据重传。
→最小成本:通常只在商业产品中使用。
要创建与ToS字段匹配的规则,可以使用下面的语法:
iptables [-t table]CMD[chain]-m tos tos_value [-j target]
其中tos_value可以是0x02、0x04、0x06、0x08、0x10。
例如:
#iptables -A INPUT -p tcp -m tos 0x08
表示匹配在ToS字段中设置了最大吞吐量的包。
2.3.4 设置目标扩展
要获得目标的简要说明,可以使用如下的命令:
#iptables -j name_of_TARGET-help
目标扩展由内核模块组成,而且iptables的一个可选扩展提供了新的命令行选项。在几个扩展是包含在默认netfilter发布中的。
(1)设置包的ToS值。为了设置数据包的ToS值,需要使用ToS目标扩展。设置ToS的值,只能对FORWARD、OUTPUT和PREROUTING链进行。语法如下:
iptables [-t table]CMD[chain][rule-matcher]-j TOS-set-tos tos_value
其中tos_value可以是0x02、0x04、0x06、0x08、0x10。
下面是使用ToS目标扩展设置ToS值的一些例子:
#iptables -A OUTPUT -p tcp -m tcp-dport 21 -j TOS-set-tos 0x10
#iptables -A OUTPUT -p tcp -m tcp-dport 22 -j TOS-set-tos 0x10
#iptables -A OUTPUT -p tcp -m tcp-dport 110 -j TOS-set-tos 0x08
(2)日志记录。iptables使用新的目标扩展LOG来实现日志记录。LOG目标用syslogd记录此包并继续传播。LOG目标扩展还可以使用如下的一些参数:
→ --log-level
跟踪一个级别名称或数字。合适的名字是'debug'、'info'、'notice'、'warning'、'err'、'crit'、'alert'和'emerg',相当于数字7到0。参考syslog.conf的手册可获取这些级别的说明。默认是'warning'。
→ --log-prefix
跟踪一个最多29个字符的字符串,它被写入到log信息的开始处,这样可以方便地使用grep对日志进行过滤。
另外,在使用LOG目标扩展的同时,还可以使用limit match,这样可以使记录有用日志的同时确保日志记录不会变得冗长。
下面是使用LOG目标扩展的一些例子:
#iptables -A FORWARD -m tcp -p tcp -j LOG
#iptables -A FORWARD -m icmp -p icmp-sport echo-reply -j LOG
#iptables -A INPUT -m limit-limit 3/m-limit-burst 3 -j LOG-log-prefix "INPUT packet died:"
第3章、包过滤防火墙配置举例
3.1 建立包过滤防火墙
3.1.1网络结构
本节为一个的网络结构建立一个包过滤防火墙。
这个网络结构假设内部网有有效的Internet地址。为了将内部网段198.168.80.0/24与Internet隔离,在内部网络和Internet之间使用了包过滤防火墙。防火墙的网接口是eth1(198.168.80.254),防火墙的Internet接口是eth0(198.199.37.254)。加外,内网中有3台服务器对外提供服务。分别为:
→ WWW服务器:IP地址为198.168.80.251
→ FTP服务器:IP地址为198.168.80.252
→ E-mail服务器:IP地址为198.168.80.253
3.1.2 防火墙的建立过程
本例主要是对内部的各种服务器提供保护。下面采用编辑并执行可执行脚本的方法建立此防火墙。具本过程如下:
#!/sbin/bash
#在屏幕上显示信息
echo "Starting iptables rules..."
#开启内核转发功能
echo "1">;/proc/sys/net/ipv4/ip_forward
#定义变量
IPT=/sbin/iptables
WWW-SERVER=198.168.80.251
FTP-SERVER=198.168.80.252
EMAIL-SERVER=198.168.80.253
IP_RANGE="198.168.80.0/24"
#刷新所有的链的规则
$IPT -F
#首先禁止转发任何包,然后再一步步设置允许通过的包
#所以首先设置防火墙FORWARD链的策略为DROP
$IPT -P FORWARD DROP
#下面设置关于服务器的包过滤规则
#由于服务器/客户机交互是双向的,所以不仅仅要设置数据包
#出去的规则,还要设置数据包返回的规则
#
#(1)WWW服务
#服务端口为80,采用tcp或udp协议
#规则为eth0=>;允许目的为内部网WWW服务器的包
$IPT -A FORWARD -p tcp -d $WWW-SERVER-dport www -i eth0 -j ACCEPT
#
#(2)FTP服务
#服务端口为21,数据端口20
#FTP的传输模式有主动和被动之分,FTP服务采用tcp协议
#规则为:eth0=>;仅允许目的为内部网ftp服务器的包
$IPT -A FORWARD -p tcp -d $FTP-SERVER -dport ftp -i eth0 -j ACCEPT
#
# (3)EMAIL服务
#包含两个协议,一个是smtp,另一个是pop3
#出于安全性考虑,通常只提供对内的pop3服务
#所以在这里我们只考虑对smtp的安全性问题
#smtp端口为25,采用tcp协议
#规则为etho=>;仅允许目的为E-mail服务器的smtp请求
$IPT -A FORWARD -p tcp -d $EMAIL-SERVER-dport smtp -i eth0 -j ACCEPT
#
# 2.下面设置针对Internet客户的过滤规则
#本例中防火墙位于网关的位置,所以主要是防止来自Internet的攻击
#不能防止来自Intranet的攻击
#假如网络中的服务器都是基于Linux的,也可以在每一部服务器上设置
#相关的过滤规则来防止来自Internet的攻击
#对于Internet对Intranet客户的返回包,定义如下规则
#
#(1)允许Intranet客户采用被动模式访问Internet的FTP服务器
$IPT -A FORWARD -p tcp -s 0/0 --sport ftp-data -d $IP_RANGE -i eth0 -j ACCEPT
#
#(2)接收来自Internet的非连接请求tcp包
$IPT -A FORWARD -p tcp -d 198.168.80.0/24 ! --syn -i eth0 -j ACCEPT
#
#(3)接收所有udp包,主要是针对oicq等使用udp的服务
$IPT -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT
#
#3.然后接受来自整个Intranet的数据包过滤,我们定义如下规则
$IPT -A FORWARD -s 198.168.80.0/24 -i eth1 -j ACCEPT
#
#处理ip碎片
#接受所有的ip碎片,但采用limit匹配扩展对其单位时间可以通过的
#ip碎片数量进行限制,以防止ip碎片攻击
$IPT -A FORWARD -f -m limit-limit 100/s-limit-burst 100 -j ACCEPT
#说明:对不管来自哪里的ip碎片都进行限制,允许每秒通过100个ip碎片
#该限制触发的条件是100个ip碎片
#
#设置icmp包过滤
#ipmp包通常用于网络测试等,故允许所有的icmp包通过
#但是黑客常常采用icmp进行攻击,如ping of death等
#所以我们采用limit匹配扩展加以限制
$IPT -A FORWARD -p icmp -m limit-limit 1/s-limit-burst 10 -j ACCEPT
#说明:对不管来自哪里的icmp包都进行限制,允许每秒通过一个包
#该限制触发的条件是10个包
###################END######################

 
65、Linux系统安全防护:从SELinux到防火墙的全方位指南 本文全面介绍了Linux系统安全防护的相关技术和工具,包括SELinux的强制访问控制、各种加密安全工具(如Kerberos、PGP、SSH、Stunnel)的使用,以及防火墙(包过滤、服务代理和状态检测)的工作原理与应用场景。通过这些方法,可以帮助用户提升Linux系统的安全性,有效防范网络威胁和攻击。 阅读详情

相关推荐

基于linux的嵌入IPv4协议栈的内容过滤防火墙系统(5)-包过滤模块和内容过滤模块所采用的各种技术详述

三。包过滤模块和内容过滤模块所采用的各种技术详述3。1 module编程    module可以说是 Linux 的一大革新。有了 module 之后,写 device driver 不再是一项恶梦,修改 kernel 也不再是一件痛苦的事了。因为你不需要每次要测试 driver 就重新 compile kernel 一次。那简直是会累死人。Module 可以允许我们动态的改变 kernel,加载

sunlen的专栏(编程技术探讨) 3155

Linux -- 防火墙

Linux-防火墙

末日温度的博客 416

一文了解ECU软件刷写的2种方法:Bootloader刷写和调试器刷写

分为刷写前、刷写中和刷写后三个阶段,如下示意:下面我们来详细了解一下Bootloader收到外部请求后开始刷写的三个阶段1)刷写前进行刷写的准备,一是确保刷写阶段总线通信的稳定性,二是避免刷写阶段出现非预期的故障,三是读取车辆数据供刷写前的一些检查等,如下所示:首先进行会话控制,通过功能寻址方式进入扩展会话模式,为后面的信息访问及其他指令做准备;然后检查刷写的前提条件,通过物理寻址方式发送历程控制请求。比如车确实处于静止状态,供电电压稳定等条件下才允许刷写;

menghuyouyou的博客 5787

基于Linux系统的包过滤防火墙(1)(转)

基于Linux系统的包过滤防火墙(1)(转)[@more@]   第1 章、基于路由器的包过滤防火墙   1.1 包过滤防火墙的一般概念   1.1.1 什么是包过滤防火墙   包过滤防火墙是用一个软件查看所流经的数据包...

ciya3282的博客 413

LeRobot SO100仿真操控避坑指南:从MuJoCo模型调试到实机同步(附参数修正模板)

本文详细解析了LeRobot SO100机械臂在MuJoCo仿真操控中的常见问题与解决方案,包括关节转向符号调试、偏移值校准及实机同步技术。通过实战案例和参数修正模板,帮助开发者高效解决仿真与实机差异,提升机器人开发效率。

weixin_29064009的博客 246

拆解博世、大陆的EMB方案:自增力机构如何省下83%的能耗?

本文深度解析了博世和大陆的电子机械制动(EMB)技术,重点探讨了自增力机构如何实现83%的能耗节省。通过对比电机直驱型和自增力型EMB的技术参数,揭示了自增力机构在能量优化和系统集成方面的创新优势,为汽车电动化和智能化提供了关键技术支持。

weixin_42665725的博客 395

基于Linux系统的包过滤防火墙(3)(转)

基于Linux系统的包过滤防火墙(3)(转)[@more@]   第3章、包过滤防火墙配置举例   3.1 建立包过滤防火墙   3.1.1网络结构   本节为一个的网络结构建立一个包过滤防火墙。   这个网络结构假设...

ciya3282的博客 206

在abaqus中利用point-based 来快捷定义螺栓连接

abaqus中可以通过point-based方式定义连接点的位置,并对连接方式进行定义,可以进行螺栓连接的模拟。 可以通过逐点输入坐标或导入外部的坐标位置 也可以通过阵列的方式定义点 定义完点后就利用create fasteners,选择point-based,选取刚才创建好的点阵列,然后定义连接的属性,如下图 定义connector section时,类型选择translator,相当于只有1方向可以动,定义弹性模量以及破坏准则。 案例操作 假如有两个板,通过...

fiber_tape的博客 7343

基于Linux系统的包过滤防火墙(2)(转)

基于Linux系统的包过滤防火墙(2)(转)[@more@]   第2章、用用户空间命令iptables实现包过滤   2.1 相关的TCP/IP知识   2.1.1建立TCP连接(通过3次握手实现)   假如服务器A和...

ciya3282的博客 284

LLVM实战:如何用Clang+LLVM打造你的第一个C++编译器(附完整配置步骤)

本文详细介绍了如何使用Clang+LLVM构建C++编译器的完整配置步骤,从环境准备到编译流程剖析,再到调试与优化技巧。通过实战指南,帮助开发者深入理解LLVM编译器框架的工作原理,并掌握交叉编译与性能分析等高级功能。

sprite的博客 748

CAN总线介绍及硬件设计

1. CAN是什么 CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO*1 国际标准化的串行通信协议。 在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统 被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很 多,线束的数量也随之增加。为适应“减少线束的数量”、“......

sinat_15677011的博客 9992

Linux系统安全:安全技术和防火墙

传输层端口防火墙网络层IP路由器三层数据链路层MAC交换机按保护范围划分:主机防火墙: 服务范围为当前一台主机网络防火墙: 服务范围为防火墙一侧的局域网。按实现方式划分:硬件防火墙: 在专用硬件级别实现部分功能的防火墙:另一个部分功能基于软件实现,如: 华为,山石hillstone,天融信,启明星辰,绿盟,深信服,PaloAlto,(Juniper2004年40亿美元收购) 等fortinet.。

Riky12的博客 3663

WordPress插件depicter存在SQL注入漏洞(CVE-2025-2011)

Depicter 是一款功能强大的 WordPress 幻灯片插件,允许用户通过直观的拖放编辑器轻松创建响应式滑块、轮播和动态内容展示。该插件提供丰富的模板库、动画效果和图层控制,支持多媒体内容嵌入(如图片、视频、HTML),并优化了移动端显示和SEO性能。其无代码操作界面适合非技术用户,同时提供高级自定义选项,适用于产品展示、营销推广和视觉叙事等多种场景,是提升网站视觉吸引力的高效工具。

m0_50125527的博客 555

iptables防火墙

入侵检测系统:特点是不阻断任何网络访问,量化,定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的的指导措施和安全决策依据,类似于监控系统一般采用旁路部署(默默看着你)方式入侵防御系统:以透明模式工作,分析数据包的内容如:溢出攻击,拒绝服务攻击,木马,蠕虫,系统漏洞等进行准确的分析判断,在判定喂攻击行为后立即予以,阻断,主动而有效的保护网络的安全,一般采用在线部署方式。.........

m0_54594153的博客 491

2026年经纬恒润嵌入式笔试试卷带答案

2026年经纬恒润嵌入式笔试试卷涵盖车规MCU选型(如TriCore)、Cortex-M启动流程、指针数组区别、AUTOSAR OS任务调度(静态优先级抢占)、CAN总线特性(终端电阻必要性)、PID控制原理、SOME/IP协议应用等核心知识点。试题聚焦汽车电子系统设计,强调功能安全与实时性要求,涵盖中断处理、Bootloader升级机制、内存布局及可靠性设计(如看门狗、ECC校验)。多选题考察通信协议分层应用,填空题强化基础概念(如MSP初始值、SOME/IP、积分项作用)。整体体现车载嵌入式开发对底层原

Open 76

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux防火墙的基本知识

一、防火墙的分类 1 、包过滤防火墙。 数据包过滤(packet Filtering)技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,称为访问控制表(access control lable,ACL)。通过检查数据流中每个数据包的源地址和目的地址,所用的端口号和协议状态等因素,或他们的组合来确定是否允许该数据包通过。 包过滤防火墙的优点是它对用户来说是透明的,处理速度快且易于维护...

zt_96123的博客 712

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Centos 防火墙设置

iptables防火墙 iptables 很强大 Netfileter/iptables (以下简称iptables)是nuix/linux 系统自带的优秀且完全免费的基于包过滤的防火墙工具、它的功能十分强大、使用非常灵活、可以对流入、流出及流经服务器的数据包进行精细的控制。特别是它可以在一台非常低配置下跑的非常好。提供400台机器的办公上网共享服务丝毫不逊色数万RMB企业级专业路由器防火墙 Iptables 是linux2.4及2.6内核中集成的服务、其功能与安全性比老一辈ipvfwadm、ipch

夜深丶人静 - 软件开发之路 401

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

网安技术与应用(3)——Linux防火墙iptables的使用

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

wangluo12138的博客 1273

中小企业自建Linux防火墙

防火墙(Firewall)是在一个可信的网络和不可信的网络之间建立安全屏障的软件或硬件产品。Linux操作系统内核具有包过滤能力,系统管理员通过管理工具设置一组规则即可建立一个基于Linux的防火墙,用这组规则过滤被主机接收、发送的包或主机从一个网卡转发到另一个网卡的包,无须花费额外资金购买专门的防火墙产品,比较适用于某些中小企业或部门级用户。 一、防火墙的类型和设计策略...

weixin_34060299的博客 137

Linux运维之(十五)Netfilter/ iptables简介

Netfilter/ iptables简介 Linux的防火墙系统 Linux内核2.4版本之后的防火墙解决方案 netfilter是内核空间中实现防火墙的内部架构 iptables是用户空间中配置防火墙的命令工具 Netfilter/iptables的主要功能 包过滤( Packet filtering) 连接跟踪( Connection tracking) 网络地址转换( Net...

qq_39682037的博客 2266

安全技术和防火墙

入侵防御系统:透明模式工作,数据包,网络监控,服务攻击,木马,蠕虫,系统漏洞等等进行准确的分析和判断。filter表:也是iptables的默认表,不做声明,默认就是filter表,过滤数据包,控制数据包的进出,以及接收和拒绝数据包。output链:处理本机发出的数据包的规则,或者是数据包离开本机的规则(filter表,一般不做设置)数据包进入防火墙,先匹配raw表的规则–mangle规则–nat表的规则–filter表的规则。内核态:涉及到软件的底层代码或者的系统的基层逻辑,以及一些硬件的编码。

gjw01的博客 998

Linux防火墙机制

一、防火墙的分类 (一)、包过滤防火墙。 数据包过滤(packet Filtering)技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,称为访问控制表(access control lable,ACL)。通过检查数据流中每个数据包的源地址和目的地址,所用的端口号和协议状态等因素,或他们的组合来确定是否允许该数据包通过。 包过滤防火墙的优点是它对用户来说是透明的,处理速度

博客 小站 2817

Linux防火墙

firewalld 的作用是为包过滤机制提供匹配规则(或称为策略),通过各种不同的规则,告诉netfilter 对来自指定源、前往指定目的或具有某些协议特征的数据包采取何种处理方式.为了更加方便地组 织和管理防火墙,firewalld 提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙 管理工具.它支持Pv4、IPv6防火墙设置以及以太网桥,并且拥有两种配置模式:运行时配置与永 久配置.它还支持服务或应用程序直接添加防火墙规则接口.

m0_73258133的博客 493
上一篇: RedHat linux AS 4+apm+freeradius-1.1.3+mac地址绑定
下一篇: EBTABLES
zhoujunyi
博客等级 码龄22年 147粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值