Registered · Cross-platform

2404 IEC 60870-5-104

TCP Yes
UDP —
SCTP —
DCCP —

What it is

Telecontrol for electric power systems.

When / why

Power-grid SCADA. No auth — strictly isolate OT.

Protocol status detail

TransportStatusMeaning
TCP Yes Assigned by IANA and standardized, specified, or widely used on this port.
UDP — Not applicable for this transport.
SCTP — Not applicable for this transport.
DCCP — Not applicable for this transport.

Port range

Registered (1024–49151). Assigned by IANA on request; usable without elevated privileges on most systems.

Browse all ports →

Firewall rules for port 2404

Copy-ready inbound rules for the active transports. Replace every <source> placeholder with the specific host, subnet, or CIDR that should reach this port.

⚠ Unencrypted or unauthenticated by default — prefer a TLS variant or tunnel over VPN/SSH rather than exposing this port directly.

ufw

sudo ufw allow proto tcp from <source> to any port 2404

Allow TCP 2404 (IEC 60870-5-104). Replace <source> with the network/host that should reach it.

firewalld

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<source>" port port="2404" protocol="tcp" accept'

Allow TCP 2404 (IEC 60870-5-104) from <source>. Run 'firewall-cmd --reload' afterwards.

nftables

nft add rule inet filter input ip saddr <source> tcp dport 2404 accept

Allow TCP 2404 (IEC 60870-5-104). Assumes table 'inet filter' with an 'input' chain.

iptables

sudo iptables -A INPUT -p tcp -s <source> --dport 2404 -j ACCEPT

Allow TCP 2404 (IEC 60870-5-104). Persist with iptables-save/netfilter-persistent.

Azure NSG

az network nsg rule create -g <resource-group> --nsg-name <nsg> -n Allow-iec608705104-2404 --priority 1000 --access Allow --direction Inbound --protocol TCP --source-address-prefixes <source> --destination-port-ranges 2404

Inbound rule for 2404 (IEC 60870-5-104). Set <source> to a CIDR; lower priority number = higher precedence.

AWS Security Group

aws ec2 authorize-security-group-ingress --group-id <sg-id> --ip-permissions IpProtocol=tcp,FromPort=2404,ToPort=2404,IpRanges="[{CidrIp=<source-cidr>}]"

Inbound TCP 2404 (IEC 60870-5-104). Replace <source-cidr> (e.g. 10.0.0.0/16).

GCP firewall

gcloud compute firewall-rules create allow-iec608705104-2404 --direction=INGRESS --action=ALLOW --rules=tcp:2404 --source-ranges=<source-cidr> --network=<network>

Ingress rule for 2404 (IEC 60870-5-104). Scope with --source-ranges and optionally --target-tags.

Windows netsh

netsh advfirewall firewall add rule name="Allow IEC 60870-5-104 2404/TCP" dir=in action=allow protocol=TCP localport=2404 remoteip=<source>

Inbound TCP 2404 (IEC 60870-5-104). Set remoteip to a host/subnet; 'any' is discouraged.

Windows PowerShell

New-NetFirewallRule -DisplayName "Allow IEC 60870-5-104 2404/TCP" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2404 -RemoteAddress <source>

Inbound TCP 2404 (IEC 60870-5-104). Replace <source> with a host or subnet.

Rules are generated only for transports marked active for this port. They default to an inbound allow with an explicit source placeholder — never any. Review direction, scope, and rule precedence before applying in production.