
Ejecuto un pequeño servidor de correo (centOS 7) en casa y me gustaría conectar puertos a un nombre de dominio en lugar de abrirlos para cada conexión entrante de la IP del servidor. Actualmente, cuando abro el puerto 25/993/587 en FirewallD, se abre para todos. Entonces, cuando apunto un nombre de dominio a la IP de mi servidor, se abrirán todos los puertos. Actualmente uso mail.example.com, pero lo que me gustaría lograr es:
smtp.mail.example.com -> 25
imaps.mail.example.com -> 993
... Etcétera. No tengo idea de si esto es posible ni cómo, y sé que no es necesario para el funcionamiento de mi servidor de correo, pero es interesante desde el punto de vista de la cordura y puede ser útil para otras situaciones cuando se combinan alojamiento web y alojamiento de correo en el mismo servidor ya que un servidor de correo no necesita el puerto 80/443 y un servidor web no necesita el 25/993 y así sucesivamente.
Conozco los registros SRV, pero eso aún deja todos los puertos abiertos cuando usas la misma IP.
Respuesta1
Eso no es posible, la máquina que recibe la conexión no tiene conocimiento* de qué nombre de host resolvió la máquina remota en su dirección IP para llegar a ella.
Funciona con HTTP/HTTPS porque el protocolo HTTP incluye el nombre de host como parte de la solicitud. Ni SMTP ni IMAP incluyen esa información en la solicitud.
*La única excepción a esto es si la conexión utiliza TLS y contiene un encabezado SNI que contendrá el nombre de host al que la máquina remota desea conectarse. Entonces puede ser posible queimaps