Як перенаправляти з’єднання SMTP на різні порти

Nginx

Розуміння переадресації портів SMTP:

Перенаправлення з’єднань SMTP для різних доменів на різні внутрішні порти на одному сервері може бути складним завданням, особливо коли обидва поштові сервери мають використовувати порт 25. Для цього налаштування потрібен метод перенаправлення вхідного трафіку SMTP на відповідний внутрішній порт на основі домену.

У цьому посібнику ми досліджуємо, як отримати цю конфігурацію, і обговорюємо інструменти, які можуть полегшити цей процес. Незалежно від того, чи використовуєте ви Nginx, HAProxy чи інші рішення, мета полягає в тому, щоб ефективно керувати своїми SMTP-з’єднаннями без конфліктів портів.

Команда опис
upstream Визначає групу внутрішніх серверів у Nginx для балансування навантаження.
proxy_pass Визначає внутрішній сервер, на який потрібно надіслати запит у Nginx.
acl Визначає список контролю доступу в HAProxy для умовної маршрутизації.
hdr(host) Перевіряє заголовок хосту HTTP в HAProxy на відповідність певному домену.
use_backend Спрямовує трафік на вказану серверну частину на основі умов у HAProxy.
transport_maps Визначає файл зіставлення для доменних налаштувань транспорту в Postfix.
postmap Генерує двійковий файл хеш-карти зі звичайного текстового файлу для Postfix.

Детальне пояснення рішень пересилання SMTP

Сценарії, наведені в прикладах вище, демонструють, як перенаправляти з’єднання SMTP для різних доменів на певні внутрішні порти за допомогою таких інструментів, як Nginx, HAProxy і Postfix. У першому сценарії ми використовуємо директива в Nginx, щоб визначити внутрішні сервери для кожного домену. The Потім директива вказує, на який внутрішній сервер перенаправляти з’єднання на основі імені домену. Це дозволяє перенаправляти вхідний трафік SMTP на порт 25 на різні внутрішні порти для кожного домену.

Другий сценарій використовує HAProxy для аналогічних функцій. The команда створює список керування доступом для відповідності вхідному домену за допомогою команда. Залежно від домену, команда спрямовує трафік на відповідний внутрішній сервер. У третьому сценарії Postfix налаштовано на використання файлу транспортної карти, визначеного transport_maps параметр. Цей файл відображає кожен домен на певний внутрішній порт і команда компілює транспортну карту у формат, який може використовувати Postfix. Ці рішення гарантують, що SMTP-трафік правильно направляється на призначений поштовий сервер без конфліктів портів.

Перенаправлення з’єднань SMTP на основі домену

Використання Nginx із потоковим модулем

stream {
    upstream mail_backend_abc {
        server 127.0.0.1:26;
    }
    upstream mail_backend_xyz {
        server 127.0.0.1:27;
    }
    server {
        listen 25;
        proxy_pass mail_backend_abc;
        server_name abc.com;
    }
    server {
        listen 25;
        proxy_pass mail_backend_xyz;
        server_name xyz.com;
    }
}

Налаштування HAProxy для переадресації портів SMTP

Використання конфігурації HAProxy

frontend smtp_frontend
    bind *:25
    acl host_abc hdr(host) -i abc.com
    acl host_xyz hdr(host) -i xyz.com
    use_backend smtp_backend_abc if host_abc
    use_backend smtp_backend_xyz if host_xyz

backend smtp_backend_abc
    server smtp_abc 127.0.0.1:26

backend smtp_backend_xyz
    server smtp_xyz 127.0.0.1:27

Керування переадресацією SMTP за допомогою транспортних карт Postfix

Конфігурація Postfix

/etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport

/etc/postfix/transport:
abc.com smtp:[127.0.0.1]:26
xyz.com smtp:[127.0.0.1]:27

Run the following command to update the transport map:
postmap /etc/postfix/transport
Restart Postfix:
systemctl restart postfix

Розширені методи переадресації портів SMTP

Ще один важливий аспект, який слід враховувати під час пересилання з’єднань SMTP, – це використання SSL/TLS для захисту електронної пошти. Впровадження SSL/TLS гарантує, що дані, що передаються між клієнтом і сервером, зашифровані, забезпечуючи додатковий рівень безпеки. Ви можете використовувати такі інструменти, як stunnel або Nginx, із модулем SSL для обробки зашифрованих SMTP-з’єднань. Налаштувавши ці інструменти, ви можете розшифрувати вхідне з’єднання, а потім перенаправити його на відповідний внутрішній порт, таким чином зберігаючи безпеку та досягаючи потрібного перенаправлення порту.

Крім того, моніторинг і ведення журналів необхідні для підтримки надійної та безпечної настройки сервера електронної пошти. Такі інструменти, як Fail2Ban, можна використовувати для моніторингу файлів журналів і заборони IP-адрес, які демонструють зловмисну ​​активність, наприклад повторні невдалі спроби входу. Поєднання цих заходів безпеки з розглянутими раніше рішеннями для переадресації портів забезпечує надійну та безпечну інфраструктуру електронної пошти, здатну ефективно обробляти кілька доменів на одному сервері.

  1. Як я можу пересилати з’єднання SMTP для кількох доменів на одному сервері?
  2. Ви можете використовувати такі інструменти, як з , , або Postfix з для перенаправлення з’єднань SMTP на різні внутрішні порти на основі домену.
  3. Чи може Nginx обробляти зашифровані з’єднання SMTP?
  4. Так, Nginx може обробляти зашифровані з’єднання SMTP за допомогою щоб розшифрувати вхідне з’єднання, а потім переслати його на відповідний внутрішній сервер.
  5. Яка роль директива в Nginx?
  6. The директива визначає групу внутрішніх серверів у Nginx, дозволяючи вам вказати, куди слід пересилати трафік.
  7. Як працює директива працює в Nginx?
  8. The директива вказує внутрішній сервер, на який слід надіслати запит, на основі таких умов, як доменне ім’я.
  9. Яка функція команда в HAProxy?
  10. The Команда в HAProxy створює список керування доступом відповідно до певних умов, наприклад доменних імен, для рішень щодо маршрутизації.
  11. Як працює параметр працює в Postfix?
  12. The Параметр у Postfix визначає файл зіставлення, який визначає, як пошта для різних доменів має спрямовуватися до певних внутрішніх портів.
  13. Яка команда використовується для компіляції файлу транспортної карти в Postfix?
  14. The Команда використовується для компіляції файлу транспортної карти у двійковий формат, який може використовувати Postfix.
  15. Чому моніторинг важливий для серверів SMTP?
  16. Моніторинг має вирішальне значення для виявлення та запобігання зловмисним діям, забезпечення надійності сервера електронної пошти та підтримки безпеки за допомогою таких інструментів, як .

Перенаправлення з’єднань SMTP для різних доменів на певні внутрішні порти на одному сервері є можливим рішенням за допомогою таких інструментів, як Nginx, HAProxy і Postfix. Ці методи дозволяють ефективно керувати трафіком і запобігати конфліктам портів, забезпечуючи безперебійну роботу кількох поштових серверів. Крім того, впровадження заходів безпеки та засобів моніторингу підвищує надійність і безпеку сервера. Дотримуючись цих вказівок, адміністратори можуть ефективно керувати інфраструктурою свого поштового сервера та масштабувати її.