
Я использую небольшой почтовый сервер (CentOS 7) дома и хотел бы прикрепить порты к доменному имени вместо того, чтобы открывать их для каждого входящего соединения IP-адреса сервера. В настоящее время, когда я открываю порт 25/993/587 в FirewallD, он открывается для всех. Поэтому, когда я указываю доменное имя на IP-адрес моего сервера, все порты будут открыты. В настоящее время я использую mail.example.com, но я хотел бы добиться следующего:
smtp.mail.example.com -> 25
imaps.mail.example.com -> 993
... и так далее. Я понятия не имею, возможно ли это и как это сделать, и я знаю, что это не обязательно для функционирования моего почтового сервера, но это интересно с точки зрения здравого смысла и может быть полезно в других ситуациях, когда вы объединяете веб-хостинг и почтовый хостинг на одном сервере, поскольку почтовому серверу не нужен порт 80/443, а веб-серверу не нужен порт 25/993 и так далее.
Я знаю о записях SRV, но они все равно оставляют все порты открытыми при использовании одного и того же IP-адреса.
решение1
Это невозможно, так как машина, принимающая соединение, не знает*, какое имя хоста удаленная машина преобразовала в свой IP-адрес, чтобы связаться с ней.
Он работает с HTTP/HTTPS, поскольку протокол HTTP включает имя хоста как часть запроса. Ни SMTP, ни IMAP не включают эту информацию в запрос.
*единственное исключение из этого — если соединение использует TLS и содержит заголовок SNI, который будет содержать имя хоста, к которому удаленная машина хочет подключиться. Так что может быть возможнымimaps