海运的博客

Iptables下TCP标志tcp-flags匹配模块使用

发布时间:November 12, 2012 // 分类:Iptables // No Comments

Iptables可通过匹配TCP的特定标志而设定更加严谨的防火墙规则,tcp-flags参数使用如下:

-p tcp --tcp-flags
#匹配指定的TCP标记,有两个参数列表,列表内部用逗号为分隔符,两个列表之间用空格分开。
#第一个列表用作参数检查,第二个列表用作参数匹配。
#可用以下标志:
SYN、ACK、FIN、RST 、URG、PSH、ALL、NONE
#ALL是指选定所有的标记,NONE是指未选定任何标记。
--syn
#http://www.haiyun.me
#SYN标志设置为1,其它标志未设置,相当于:
-p tcp --tcp-flags ALL SYN

很多人在使用tcp-flags匹配时遇到以下错误:

iptables v1.4.6: --tcp-flags requires two args.

原因是只定义了参数检查,未设置参数匹配,ROS下使用一组参数就可以了,正确使用tcp-flags应用示例:
防止Xmas扫描:

iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP

防止TCP Null扫描:

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

拒绝TCP标记为SYN/ACK但连接状态为NEW的数据包,防止ACK欺骗。

iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP

标签:iptables, tcp, tcp-flags, tcp标志

评论已关闭

分类
最新文章
最近回复
  • 海运: 正常情况下编译整个内核执行make menuconfig后就不会出现此提示,当单独编译单个模块...
  • oijq: 就是用的armbian的配置文件哈,按你的教程做的,在执行make LOCALVERSION=...
  • 海运: 使用armbian的配置文件,其它添加或修改自己懂的部分,不懂的就不要碰了。
  • oijq: 编译时这些选项全部选Y吗?Actions Semi Platforms (ARCH_ACTIO...
  • 海运: n1编译bbr内核模块参考这个:https://www.haiyun.me/archives/...
  • jiqz: make M=net/ipv4/ CONFIG_TCP_CONG_BBR=m modules编...
  • ruralhunter: 哦,文档里应该是对的,是.config
  • ruralhunter: cp /mnt/boot/config-4.18.7-aml-s9xxx .config这里应...
  • 海运: 你是编译不成功呢?还是编译后不能运行呢?还是运行后不能访问web界面呢?
  • 白墨: 可能不清楚就是编译安装后启动后访问不了web界面