Ⅰ 工业防火墙(工业网闸)详细设计( 七)
7.7工业协议西门子S7
详细设计内容涉及S7协议报文格式、连接过程和过滤规则。
S7协议报文格式实现ISO七层模式,包含TCP、TPKT、COTP等关键要素。TPKT报文包含头部和TPDU,其中头部固定格式包括版本号、报文长度等。COTP作为TPDU格式,包含协议ID、TPDU类型、冗余ID、TPDU引用值等。
S7连接过程分为三步:连接到TCP端口、ISO层连接、S7层参数协商。
S7过滤规则采用白名单方式,允许用户定义规则以筛选合法数据包。通过S7 WEB页面实现添加、编辑、删除和查看规则功能。添加规则时需填写源ip、目的ip、协议、端口和功能组等信息。提交后,规则信息将转换为后台数据结构,调用动态库函数进行内核处理。
S7主函数负责检测报文格式,通过一系列条件验证报文有效性,如TPKT和COTP头部长度、版本号、功能码等。对于有效的数据包,进行规则匹配,采用白名单方式判断操作合法性。
总结,该详细设计覆盖了西门子S7协议的过滤规则,通过iptables扩展模块和内核防火墙实现动态和静态流处理。添加其他工业协议仅需加入相应的协议解析逻辑。