linux iptables layer7 模块 中文howto(1)(3)
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
评论暂时关闭