Registered · Cross-platform

8009 AJP (Tomcat)

TCP Unofficial
UDP
SCTP
DCCP

What it is

Apache JServ Protocol connector.

When / why

Front-end-to-Tomcat. CVE-2020-1938 (Ghostcat) — never expose externally.

Protocol status detail

TransportStatusMeaning
TCP Unofficial Not assigned by IANA, but 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 8009

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

⚠ High exposure risk — this service should never be reachable from untrusted networks. Scope the rule to a management subnet or VPN.

ufw

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

Allow TCP 8009 (AJP (Tomcat)). 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="8009" protocol="tcp" accept'

Allow TCP 8009 (AJP (Tomcat)) from <source>. Run 'firewall-cmd --reload' afterwards.

nftables

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

Allow TCP 8009 (AJP (Tomcat)). Assumes table 'inet filter' with an 'input' chain.

iptables

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

Allow TCP 8009 (AJP (Tomcat)). Persist with iptables-save/netfilter-persistent.

Azure NSG

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

Inbound rule for 8009 (AJP (Tomcat)). 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=8009,ToPort=8009,IpRanges="[{CidrIp=<source-cidr>}]"

Inbound TCP 8009 (AJP (Tomcat)). Replace <source-cidr> (e.g. 10.0.0.0/16).

GCP firewall

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

Ingress rule for 8009 (AJP (Tomcat)). Scope with --source-ranges and optionally --target-tags.

Windows netsh

netsh advfirewall firewall add rule name="Allow AJP (Tomcat) 8009/TCP" dir=in action=allow protocol=TCP localport=8009 remoteip=<source>

Inbound TCP 8009 (AJP (Tomcat)). Set remoteip to a host/subnet; 'any' is discouraged.

Windows PowerShell

New-NetFirewallRule -DisplayName "Allow AJP (Tomcat) 8009/TCP" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8009 -RemoteAddress <source>

Inbound TCP 8009 (AJP (Tomcat)). 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.