prefixkit Ask an engineerAsk RU

Port 389 LDAP

Directory access (Active Directory, OpenLDAP). UDP 389 (CLDAP) is a DDoS amplifier.

Protocol
TCP/UDP
Service
LDAP
Exposing to the internet
Do not expose

Check if port 389 is open

Is it safe to open

Infrastructure services (DNS, NTP, DHCP, routing) should answer only the networks they serve. Open resolvers and time servers get abused for DDoS amplification.

How to open port 389

Open to everyone

# Linux iptables
iptables -A INPUT -p tcp --dport 389 -j ACCEPT
iptables -A INPUT -p udp --dport 389 -j ACCEPT
# Ubuntu ufw
ufw allow 389/tcp
ufw allow 389/udp
# firewalld
firewall-cmd --permanent --add-port=389/tcp && firewall-cmd --reload
firewall-cmd --permanent --add-port=389/udp && firewall-cmd --reload
# MikroTik
/ip firewall filter add chain=input protocol=tcp dst-port=389 action=accept place-before=0 comment="port 389"
/ip firewall filter add chain=input protocol=udp dst-port=389 action=accept place-before=0 comment="port 389"
# Windows (PowerShell)
New-NetFirewallRule -DisplayName "Port 389 TCP" -Direction Inbound -Protocol TCP -LocalPort 389 -Action Allow
New-NetFirewallRule -DisplayName "Port 389 UDP" -Direction Inbound -Protocol UDP -LocalPort 389 -Action Allow

Only for your addresses

# allow only one address or network (replace 203.0.113.0/24)
iptables -A INPUT -p tcp --dport 389 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p udp --dport 389 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 389 -j DROP
iptables -A INPUT -p udp --dport 389 -j DROP
ufw allow from 203.0.113.0/24 to any port 389 proto tcp
ufw allow from 203.0.113.0/24 to any port 389 proto udp
/ip firewall filter add chain=input protocol=tcp dst-port=389 src-address=203.0.113.0/24 action=accept
/ip firewall filter add chain=input protocol=udp dst-port=389 src-address=203.0.113.0/24 action=accept
/ip firewall filter add chain=input protocol=tcp dst-port=389 action=drop
/ip firewall filter add chain=input protocol=udp dst-port=389 action=drop

If the server is behind a router, you also need a port forward (dst-nat). Behind ISP CGNAT (100.64.0.0/10 on the WAN) forwarding will not help: you need a public IP or a VPN.

What is listening

Check on the server

# what listens on the port
ss -lntup | grep ':389 '
netstat -ano | findstr :389   # Windows
lsof -i :389   # macOS
# test from another machine
nc -vz example.com 389

Related ports