Ⅰ 工業防火牆(工業網閘)詳細設計( 七)
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擴展模塊和內核防火牆實現動態和靜態流處理。添加其他工業協議僅需加入相應的協議解析邏輯。