免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5585 | 回复: 11
打印 上一主题 下一主题

iptables规则心得 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-18 12:16 |只看该作者 |倒序浏览
一、关于IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP 规则\r\n此规则是对于这样的包进行过滤:外部网络主机已经与防火墙内部或者其自身建立了链接,而此规则后来生效的那些此连接的数据包\r\n具体实施:\r\n防火墙之外的主机A:10.1.1.2/24 \r\n放火墙F:10.1.1.1/24 与 10.1.2.1/24 \r\n受防火墙保护的网段:10.1.2.0/24 \r\n受防火墙保护的网段内的一台主机X:10.1.2.10/24(开启telnet服务) \r\n具体实施: \r\n1、主机A telnet 到 主机X,并保持连接状态. \r\n2、开启防火墙F上的iptables服务,并使规则: \r\nIPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP \r\n生效。 \r\n3、使用刚才的telnet客户端执行随便一个命令,如:ls \r\n上面的ls命令应该是执行不成功的。 \r\n如果有黑客先链接到我的内部网络,而iptable规则后生效,那么黑客就可以用我这台机器做跳板来执行一些命令。 \r\n基与这一点,我想iptables虽然是工作在网络层的防火墙,但是它会查看TCP包头的,所以严格的说,iptables是一个传输层与网络层的放火墙。但就象手机可以录音一样,我们还是称之为手机,所以,iptables还是网络层的防火墙。\r\n \r\n二、关于iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset 规则\r\n此规则是对这样的包进行过滤,并发出错误报告:tcp包头中的syn=1并且ack=1的段进行过滤,并向此链接的发起端发出tcp-reset(也就是RST=1)的数据包,通知关闭其链接。\r\n具体实施:\r\n攻击者A:10.1.1.2\r\n放火墙F:10.1.1.1/24 与 10.1.2.1/24 \r\n受防火墙保护的网段:10.1.2.0/24 \r\n受防火墙保护的网段内的一台主机O(无辜者):10.1.2.10/24\r\n受害者V:10.1.2.20/24(在应用层,仅准许ip为10.1.2.10的机器登陆)\r\n1、[A]以[O]的IP为源地址向[V]发SYN。\r\n\r\n2、[V]向[O]回应SYN/ACK。(这也是为什么要三次握手才可以确定链接与否的原因,而不是两次。)\r\n\r\n3、现在,若[O]以RST回应这个未知的SYN/ACK,攻击就失败了,但如果[O]已经没有这个能力了呢?比如它早已被另外的攻击(如SYN flood)降服,或者被关闭,或者它的RST包被防火墙拒绝。\r\n\r\n4、如果[O]没能破坏这条连接,而且[A]猜对了序列号,那它就能以[O]的身份发出第三次握手并与V通信了。\r\n这条规则的存在还产生了另外一问题,就是有几个portscan(端口扫描器)会看到我们的防火墙。因为RST=1的链接复位包是由防火墙发起的。\r\n所以,在应用此规则后,可以使我们不成为无辜者O,也不能让攻击者A得逞。\r\n注意:这条规则并不能防止你成为受害者。\r\n三、关于两个规则的功能的相互替换。\r\n1、可以用此规则:IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP 防止syn欺骗么?\r\n不可以。因为在第2次握手(ack=1,syn=1),如果iptables检测到这个包是第一次到来,那么状态是NEW。这样就与规则ack=1(! --syn用来匹配那些 RST或ACK被置位的包)匹配。规则生效。但是这样做只是把包drop掉了,并没有发出RST以通知连结的发起者。\r\n2、可以用此规则:iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset来防止外网先链接到本地机器,而规则后生效,并且阻止此链接的后续包进入么?\r\n不可以。因为在此规则生效后,链接的后续包的状态标志位并不是syn=1。\r\n多谢论坛里的兄弟和我探讨,让我有了更进一步的了解。如果有任何错误,请回帖。

论坛徽章:
0
2 [报告]
发表于 2005-09-18 12:38 |只看该作者

iptables规则心得

写的很好,使我对 TCP 的各个状态也有了更深的领悟

论坛徽章:
0
3 [报告]
发表于 2005-09-18 15:30 |只看该作者

iptables规则心得

哪里,请兄弟指出~~~谢谢!!!\r\nb.2和b.3我也阅读了,快把不对的地方告诉我

论坛徽章:
0
4 [报告]
发表于 2005-09-19 11:40 |只看该作者

iptables规则心得

\r\n此规则是对于这样的包进行过滤:外部网络主机已经与防火墙内部或者其自身建立了链接,而此规则后来生效的那些此连接的数据包\r\n如果有黑客先链接到我的内部网络,而iptable规则后生效,那么黑客就可以用我这台机器做跳板来执行一些命令。\r\n
\r\n这两句不妥

论坛徽章:
0
5 [报告]
发表于 2005-09-19 13:27 |只看该作者

iptables规则心得

你看这样说可以么?\r\n此规则是对于这样的包进行过滤:外部网络主机已经与防火墙内部或者其自身建立了链接,而此规则后来生效的那些此连接的数据包。\r\n有这样一种情况:\r\n1、防火墙之外的一台主机A先连到了我们的内部网络主机N\r\n2、防火墙的规则发生了改变,禁止A发送SYN段链接进入N,规则不生效\r\n所以我们不的不应用!--syn规则,让其重新链接。

论坛徽章:
0
6 [报告]
发表于 2005-09-19 13:30 |只看该作者

iptables规则心得

和此规则先生效还是后生效无关\r\n如果你在系统里面写了这个策略,并且你的系统用于 NAT,那么你会发现生效后仍会匹配到很多包,都是非法包

论坛徽章:
0
7 [报告]
发表于 2005-09-19 13:34 |只看该作者

iptables规则心得

如何解释下面的话?\r\n先准备一个telnet连接,再运行连接跟踪模块,然后装入上面的规则,最后,试着用telnet client发送一些数据。连接跟踪代码会认为这个连接是非法的,因为在此之前,它没有看到任何方向有包发出,更为严重的是现在连接上有了未设置SYN的包,因为刚才由telnet client发出的包肯定不是这个连接的第一个包。因此,上面的规则就起作用了,也就是说,这个包被无情地扔掉,从而连接就会中断。

论坛徽章:
0
8 [报告]
发表于 2005-09-19 13:52 |只看该作者

iptables规则心得

怎么说呢,这主要和 conntrack 机制有关\r\n我明白他的意思,但是我说不出来

论坛徽章:
0
9 [报告]
发表于 2005-09-19 13:53 |只看该作者

iptables规则心得

原帖由 \"platinum\" 发表:\n和此规则先生效还是后生效无关\r\n如果你在系统里面写了这个策略,并且你的系统用于 NAT,那么你会发现生效后仍会匹配到很多包,都是非法包
\r\n我想这是两个问题,这个问题也可以使规则匹配,我不知道下面模拟的环境对不对\r\n1、内网的一台机器telnet到防火墙\r\n2、启动防火墙的ppp时起用规则\r\n是不是上面的telnet会中断\r\n如果把conntrack和nat直接编译进iptables,就不会出现上面的情况。\r\n不知道理解的对不对\r\niptables B.2 是分别对内网连接到防火墙,和外网连接到防火墙做的阐述

论坛徽章:
0
10 [报告]
发表于 2005-09-19 14:29 |只看该作者

iptables规则心得

iptables 只不过是一个 userspace,而 conntrack 和 nat 是做为 kernel 里面的一个 module 或就在 kernel 里面的,是 kernelspace 部分\r\n如果编译进内核,你可理解为“启动以后我就 modprobe 了一些东西,而且一直没再 rmmod 过”
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP