A public IP, port-forwarding rule, or one-to-one NAT entry turns a controller service into an Internet-reachable target. Remove that direct path. Preserve required IIoT and remote-maintenance functions through a controlled boundary with explicit traffic rules, authenticated remote access, and logs.
Remove the quick fixes that leave the PLC exposed
Do not treat a password, application certificate, address translation, or an uncommon port number as the network boundary. A password controls login after traffic reaches the service. A certificate can authenticate an OPC UA connection, but it does not protect unrelated controller services. NAT changes addressing; it does not make an intentionally forwarded service private.
| Quick fix | Why it fails | Production-safe replacement |
|---|---|---|
| Forward a WAN port to the PLC | Internet hosts can scan and interact with the exposed service. | Delete the forwarding rule and place a firewall boundary in front of the control network. |
| Rely on the PLC password | The controller remains reachable, and every exposed service becomes part of the attack surface. | Block unsolicited inbound traffic before it reaches the PLC. |
Rely on OPC UA certificates and passwords |
Application security covers that session, not the rest of the device or network. | Keep application security and add network segmentation and flow restrictions. |
| Install remote-control software on an OT PC | A compromised account or host can provide an interactive path into OT. | Use a managed remote-access gateway and a restricted jump host. |
Call any VPN secure by default |
Weak identities, broad routes, poor patching, or permissive rules can make the tunnel an entry path. | Harden the gateway, restrict routes, and require strong user authentication. |
Pass check: From an external network, no scan or connection attempt reaches a controller service through a public address or forwarded port.
Map required traffic before disconnecting anything
Inventory the flows that keep production, reporting, and support working. Start with the PLC, HMI, engineering workstation, historian, IIoT gateway, remote-access appliance, and every router or firewall between them. For each flow, record the source, destination, direction, protocol, business purpose, and owner.
- Export or capture the current firewall, NAT, and port-forwarding configuration.
- Identify which public rule maps to each internal asset. A rule whose destination is the PLC is the exposure to remove.
- Separate inbound remote-service traffic from outbound telemetry. Many IIoT designs can initiate an outbound session to a broker or cloud service and do not need unsolicited inbound access.
- Record name resolution, time synchronization, update, licensing, and support dependencies used by gateways or workstations.
- Mark unknown flows for packet capture or firewall logging before changing them.
Do not disconnect a shared uplink until you know whether it also carries HMI, historian, alarm, or telemetry traffic. The goal is to remove direct PLC reachability, not to cut every approved data path blindly.
Pass check: Every production-required connection has a named source, destination, direction, purpose, and replacement path.
Build the control-network boundary
Put the PLC on a control segment that has no direct public route. Terminate Internet-facing connections at a firewall or security gateway, not at the controller. Where enterprise or cloud systems exchange data with OT, use an intermediate segment or gateway so neither side opens a broad route into the control network.
- Assign the PLC, HMI, and required local peers to the intended control segment.
- Remove public NAT and port-forwarding entries that terminate on the PLC.
- Set the boundary to deny unsolicited inbound sessions by default.
- Add only the documented source-to-destination rules required for operation.
- Keep controller programming traffic local or restrict it to the designated engineering path.
- Route IIoT data through a gateway that can initiate only the required outbound connections.
Apply rules to actual endpoints, not an entire plant subnet when a single host is sufficient. Limit traffic by direction and service. Broad rules such as any-source, any-destination access defeat the boundary even when the PLC no longer owns a public address.
Pass check: The HMI and approved local peers still communicate with the PLC, while an unapproved host outside the control segment cannot open a session to it.
Configure remote access as a controlled maintenance path
Remote maintenance needs an authenticated path to a managed gateway, followed by narrowly authorized access to OT. A VPN is better than exposing controller ports only when its identities, routes, software, and firewall policy are managed as security controls.
- Terminate the tunnel at a maintained gateway outside the PLC segment.
- Use individual accounts and strong authentication rather than shared credentials.
- Limit each remote role to the required destination and service.
- Send interactive work through a hardened jump host where practical; do not grant the remote device general access to OT.
- Disable standing access when maintenance is complete, or require explicit authorization for each session.
- Log authentication, session start and stop, source identity, and permitted destination.
Keep engineering project files and controller credentials on managed systems. A tunnel that admits an unmanaged laptop directly to the PLC bypasses the controls provided by the gateway and jump host.
Pass check: An approved account reaches only its assigned maintenance destination; a disabled account and an unauthorized destination both fail closed and create log entries.
Constrain IIoT and application traffic
Preserve telemetry without allowing the cloud or enterprise network to initiate arbitrary PLC sessions. Let an IIoT gateway read only the data required for its job, then initiate the outbound application connection. Keep control writes off that path unless the process design explicitly requires them and they receive separate authorization.
- List every tag or data group exchanged through the gateway.
- Classify each exchange as read-only monitoring, command, configuration, or programming.
- Remove unused subscriptions, write permissions, routes, and services.
- Retain
OPC UAcertificates and passwords where that protocol is used, but pair them with endpoint allowlists and restricted network flows. - Send gateway and firewall events to a location operators can review after an outage or access attempt.
If the application requires inbound cloud control, stop treating it as ordinary telemetry. Document command validation, loss-of-communications behavior, operator authority, and the network path before enabling it.
Pass check: Normal telemetry reaches its destination, an unsolicited inbound connection fails, and an unauthorized write cannot reach the control process.
Prove the complete path before releasing production
Test from both sides of the boundary. A successful local HMI test proves only local control communications; it does not prove that the PLC disappeared from the public-facing interface.
- Verify PLC-to-HMI operation and required controller peer traffic.
- Verify historian, alarm, and IIoT data at the receiving application, not only at the gateway.
- Test approved remote access with the intended user role and destination.
- Repeat the test with an unauthorized account, host, and destination; each attempt must fail.
- Test externally against the former public address and forwarded service. No controller response should return.
- Review firewall, gateway, and authentication logs for both successful and rejected tests.
- Save the approved rule set, network diagram, access owner, and rollback record under change control.
Check again after router replacement, firewall restore, remote-support work, or IIoT expansion. Those changes commonly reintroduce permissive routes or forwarding rules.
Pass check: Production functions operate, approved maintenance works, rejected access is logged, and the former Internet path to the PLC remains closed.
FAQ
Can I connect a PLC directly to the Internet if it has a password?
No. A password does not remove public reachability or protect other exposed services. Block unsolicited inbound traffic at a firewall and provide access through a restricted gateway.
Does a VPN make remote PLC access safe?
Only when the gateway is maintained, users have individual strong authentication, routes are narrow, and firewall rules limit each user to required OT destinations. A broadly routed tunnel or unmanaged remote computer can still expose the control network.
Can I keep IIoT running after removing PLC port forwarding?
Yes, when a local gateway initiates the required outbound telemetry session and inbound traffic remains blocked. Stop here if removing the forwarding rule breaks an undocumented control function or if the gateway cannot restrict routes, users, and writes. Restore the last known safe configuration without reopening the PLC to the Internet, then escalate to the equipment manufacturer's official support channel and the site's network-security owner.