5、定义协议(模版文件)

那些文件告诉iptables 和内核如何把协议名称对应到正则表达式,例如FTP表示为"^220[\09-\x0d -~*ftp|331[\x09-\xod -~]*password"

解压"Protocol Definitions"并创建目的目录/etc/17-protocols

现在你可以使用如下命令匹配应用层数据了

iptables -t mangle -A POSTROUTING -m layer7 --17proto http -j MARK --set-mark 1

(例子中我们使用mangle表的POSTROUTING链因为这是一个任何包都会通过的链,参阅包通路图)

注:给不愿意循规蹈矩的人

你也可以把模版安装到自定义的路径中,如果你这样做,必须定义--l7dir:参数

例如:iptables [...] -m layer7 --l7dir /home/bob/patterns --l7proto http [...]

--l7dir参数必须在l7proto参数前指定!

注:给模版文件的编写者

编写您自己的模版文件相当容易,并且这对我们的项目也相当有建设性,更多的信息请参阅The Pattern Writing HOWTO

iptables会在目录 /etc/l7-protols 或者指定目录中查找模版文件,于是,他会找到/etc/l7-protocols/http.pat 和/etc/l7-protocols/protocols/http.pat,但不会找到/etc/l7-protocols/foo/bar/http.pat


相关内容