iptables一直有个问题没怎么搞得太清楚。
--syn:
[!] --syn
Only match TCP packets with the SYN bit set and the ACK,RST and
FIN bits cleared. Such packets are used to request TCP connec-
tion initiation; for example, blocking such packets coming in an
interface will prevent incoming TCP connections, but outgoing
TCP connections will be unaffected. It is equivalent to --tcp-
flags SYN,RST,ACK,FIN SYN. If the "!" flag precedes the
"--syn", the sense of the option is inverted.
请问一下,具体哪些场合会将[!]--syn加入到匹配条件中去呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
嗯。 多谢kenduest。 其实大概的知道,就是写的规则比较少,所以没有太清楚具体的事情。谢谢。
还是用-m state算了。
其实你提到的 manpage 的英文描述已经很清楚了,若是还不清楚建议去阅读一下 tcp/ip 网路协定内,位于传输层的 tcp and udp 这两个协定沟通流程就可以瞭解。当然,syn flag 一般是说 tcp,不是 udp。
复制代码
这是说禁止 192.168.1.1 不可以连结到你的主机,但是由于 tcp/ip 是双向沟通的,这样写其实也表示你也连不到该主机。你连线到对方主机,该主机封包要回应时刚好就会被该规则阻挡。所以一般搭配方式:
复制代码
这是说当 tcp 封包旗标带有 SYN 项目,但是不包含 ACK,RST 旗标时,该封包就是主动连线的项目,所以这时候才禁止连结。
另外 --syn 这个已经很少用了,目前都会用 -m state --state NEW 方式来进行比对判断。
复制代码
==