prefixkit Ask an engineerAsk RU

Port 587 SMTP submission

Mail submission from clients with STARTTLS and authentication.

Protocol
TCP
Service
SMTP submission
Category
Email
Exposing to the internet
Normal to expose

Check if port 587 is open

Is it safe to open

Mail servers must accept connections, but require TLS and authentication for submission, limit login attempts and monitor blacklists.

How to open port 587

Open to everyone

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

Only for your addresses

# allow only one address or network (replace 203.0.113.0/24)
iptables -A INPUT -p tcp --dport 587 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 587 -j DROP
ufw allow from 203.0.113.0/24 to any port 587 proto tcp
/ip firewall filter add chain=input protocol=tcp dst-port=587 src-address=203.0.113.0/24 action=accept
/ip firewall filter add chain=input protocol=tcp dst-port=587 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 ':587 '
netstat -ano | findstr :587   # Windows
lsof -i :587   # macOS
# test from another machine
nc -vz example.com 587

Related ports