当前位置:首页 >时尚 >新概念运维之REJECT和DROP的区别 新概ACCEPT很容易理解

新概念运维之REJECT和DROP的区别 新概ACCEPT很容易理解

2024-07-01 02:56:11 [百科] 来源:避面尹邢网

新概念运维之REJECT和DROP的新概区别

原创 作者:51CTO系统频道整理 运维 系统运维 大家都知道iptables对于进来的信息包有三种处理方法,那就是念运ACCEPT、DROP、区别REJECT。新概ACCEPT很容易理解,念运而REJECT和DROP的区别区别是什么?REJECT比DROP多返回一个ICMP错误信息包,这到底是新概什么意思呢?本期新概念运维,你将看到一个非常容易理解的念运解读。

【有关新概念运维】在日常的区别系统管理运维工作中,每个人对于系统、新概工具、念运应用、区别命令、新概架构等方面都会有自己的念运理解。理解方式的区别不同也意味着不同的认知,因此,这种理解方式的交流,也可能碰撞出更多思维的火花,让每个人从另一个角度了解自己每天从事的工作。51CTO系统频道从日常和运维人员的交流中收集这些理解方式,组合成短文集,名为《新概念运维》。

iptables这个防火墙工具,相信运维朋友们几乎都在使用。大家都知道iptables对于进来的信息包有三种处理方法,那就是ACCEPT、DROP、REJECT。ACCEPT很容易理解,而REJECT和DROP的区别是什么?某天听到Sery的解释,感觉说的很容易理解:

新概念运维之REJECT和DROP的区别 新概ACCEPT很容易理解

“就好象骗子给你打电话,drop就是直接拒收。reject的话,相当于你还给骗子回个电话。”

新概念运维之REJECT和DROP的区别 新概ACCEPT很容易理解

[[31593]]

新概念运维之REJECT和DROP的区别 新概ACCEPT很容易理解

其实对于到底是使用DROP还是REJECT,从很久以前开始就非常多的人提出这方面的疑问。REJECT其实就比DROP多返回一个ICMP错误信息包,两个策略各有优劣,简单总结如下:

DROP比REJECT好在节省资源,而且延缓黑客攻击的进度(因为不会给黑客返回任何有关服务器的信息);坏在容易让企业的网络问题难以排查,而且在DDoS攻击的情况容易耗尽所有的带宽。

REJECT比DROP的好处在于容易诊断和调试网络设备或防火墙造成的问题;坏处上面也说了,你给骗子回个电话,相当于暴露了自己的服务器信息。

所以一般的建议是在上游防火墙中使用REJECT,在比较危险的面向外网的基础防火墙上,使用DROP要相对安全一些。

再说个跟这事儿有点关系的故事。话说某IT运维群中制定了这样一条群规:

工作时间 闲聊 drop非工作时间 闲聊 accept违反规定 Any kill

可能因为IT运维是男性居多的缘故,隔了几天,发现群规被修改成了:

露点图片 any accept工作时间 闲聊 drop非工作时间 闲聊 accept违反规定 Any kill

执行了几天之后,群主被迫踢出了很多成员,甚至很多老成员也被波及。于是商讨之后,现在的群规是:

anytime anytalk accept

经笔者跟群主商讨,群主表示欢迎感兴趣的ITers加入该群一起讨论技术、讨论人生。群号是158144617,能遵守初始版群规的人员优先录取~

更新:由于第一个群已满,群主正在协调部分人员转移到新群,群号为 154743972。

《新概念运维》栏目接受投稿,有意者请联系 yangsai@51cto.com 。

#p#

【相关资料】netfilter/iptables的工作原理

netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的 链(chain)中。

虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件 netfilter和 iptables 组成。

netfilter 组件也称为 内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为 用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

通过使用用户空间,可以构建自己的定制规则,这些规则存储在内核空间的信息包过滤表中。这些规则具有 目标,它们告诉内核对来自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。如果某个信息包与规则匹配,那么使用目标 ACCEPT 允许该信息包通过。还可以使用目标 DROP 或 REJECT 来阻塞并杀死信息包。对于可对信息包执行的其它操作,还有许多其它目标。

根据规则所处理的信息包的类型,可以将规则分组在链中。处理入站信息包的规则被添加到 INPUT 链中。处理出站信息包的规则被添加到 OUTPUT 链中。处理正在转发的信息包的规则被添加到 FORWARD 链中。这三个链是基本信息包过滤表中内置的缺省主链。另外,还有其它许多可用的链的类型(如 PREROUTING 和 POSTROUTING ),以及提供用户定义的链。每个链都可以有一个 策略,它定义“缺省目标”,也就是要执行的缺省操作,当信息包与链中的任何规则都不匹配时,执行此操作。

建立规则并将链放在适当的位置之后,就可以开始进行真正的信息包过滤工作了。这时内核空间从用户空间接管工作。当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地。我们将这个过程称为 路由。

如果信息包源自外界并前往系统,而且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表的 INPUT 链。如果信息包源自系统内部或系统所连接的内部网上的其它源,并且此信息包要前往另一个外部系统,那么信息包被传递到 OUTPUT 链。类似的,源自外部系统并前往外部系统的信息包被传递到 FORWARD 链。

接下来,将信息包的头信息与它所传递到的链中的每条规则进行比较,看它是否与某条规则完全匹配。如果信息包与某条规则匹配,那么内核就对该信息包执行由该规则的目标指定的操作。但是,如果信息包与这条规则不匹配,那么它将与链中的下一条规则进行比较。最后,如果信息包与链中的任何规则都不匹配,那么内核将参考该链的策略来决定如何处理该信息包。理想的策略应该告诉内核 DROP 该信息包。

图 1. 信息包过滤过程
netfilter/iptables信息包过滤流程(来源)

【编辑推荐】

  1. IT运维 那些不为人知的辛苦工作
  2. 51CTO电子杂志《Linux运维趋势》第8期发布
  3. 新概念运维之强迫症会害死系统管理员
  4. 新概念运维之No news is good news
责任编辑:yangsai 来源: 51CTO.com 新概念运维REJECTDROP

(责任编辑:时尚)

    推荐文章
    热点阅读