implementing-ics-firewall-with-tofino

Configure Tofino industrial firewalls with deep packet inspection rules for OT protocols.

954|172|Updated Mar 13, 2026
One-click install
npx skills add https://github.com/xalgord/xalgorix --skill implementing-ics-firewall-with-tofino
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: implementing-ics-firewall-with-tofino
Source: https://github.com/xalgord/xalgorix/tree/main/internal/tools/skills/data/ot-ics-security/implementing-ics-firewall-with-tofino
Command: npx skills add https://github.com/xalgord/xalgorix --skill implementing-ics-firewall-with-tofino

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Protecting PLCs, RTUs, and SCADA systems requires protocol-aware firewall rules that understand industrial traffic like Modbus function codes and S7comm operations, which generic IT firewalls cannot enforce.

Core Features & Use Cases

  • Zone-Level Deployment Design: Plan inline-bridge Tofino appliance placement in front of critical PLCs and RTUs following IEC 62443 zone and conduit boundaries.
  • DPI Rule Generation: Generate firewall rules with deep packet inspection for Modbus function codes, S7comm operations, and EtherNet/IP CIP services, including default-deny policies.
  • Misconfiguration Detection: Identify common failures such as monitor-only mode, fail-open mismatches, and missing function-code restrictions.
  • Use Case: A plant engineer needs to let the SCADA server read from Modbus RTUs while blocking all write function codes; this Skill produces the read-only DPI rule set and a deployment report.

Quick Start

Ask the assistant to generate Tofino firewall rules that allow read-only Modbus access from the SCADA server at 10.10.2.30 to the RTU subnet 10.10.4.0/24.

Frequently Asked Questions about implementing-ics-firewall-with-tofino

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure a Tofino firewall to protect Modbus devices?

Create DPI rules that allow only specific Modbus function codes per source, such as read-only codes 1-4 from the SCADA server, and block write codes like FC5, FC6, FC15, and FC16. End the rule set with a default-deny rule and enable logging.

How to block S7comm PLC stop and program download commands?

Restrict S7comm rules to read, write, and setup operations for HMI sources, which blocks function 0x29 (PLC Stop) and 0x1A (program download). Reserve download and upload operations for authorized engineering workstations only.

When should I use a Tofino firewall instead of Palo Alto or Fortinet?

Use Tofino for zone-level protection directly in front of PLCs and RTUs where OT protocol deep packet inspection is needed. Use Palo Alto or Fortinet at the IT/OT DMZ perimeter, since Tofino is not designed for enterprise IT or perimeter firewall roles.

What is the difference between fail-open and fail-closed on a Tofino appliance?

Fail-open passes all traffic if the appliance fails, preserving process availability but silently dropping protection. Fail-closed blocks traffic on failure. The choice should be deliberate, documented per zone, and paired with alerting on appliance loss.

Why is my Tofino firewall not blocking unauthorized Modbus writes?

The appliance is likely left in monitor or learning mode, or the allow rule omits function-code restrictions. Verify DPI policies are in enforcement mode, confirm the default-deny rule is last, and check blocked-packet and DPI-violation counters.

Can I test Tofino firewall rules without disrupting a running process?

Validate during a maintenance window by attempting a blocked write from an unauthorized source and confirming it is denied and logged, while legitimate read polling still succeeds. Review counters rather than injecting commands at a running controller.