能够检查Linux内核是否支持字符串匹配扩展的一种简单方式,是尝试创建一个针对根本不存在IP地址的iptables字符串匹配规则,使得她不会影响任何整的网络通信,如下所示
sudo iptables -I INPUT 1 -i lo -d 127.0.0.2 -m string --string "teststring " --algo bm -j ACCEPT
--algo bm : 使用bm字符串搜索算法。
如果上面的命令返回错误iptables: no chain/target/match by that name (iptables: 没有该名字的链/目标/匹配),那么内核不支持该扩展功能。需要在内核配置文件中启动CONFIG_NETFILTER_XT_MATCH_STIRNG选项,重新编译内核,然后启动到新的额内核。如果上面的命令成功了,表示内核支持iptables字符串匹配,可以删除这个测试规则了:
sudo iptables -D INPUT 1