postfix – встановлення й просте налаштування mail-relay

Опис

Для відправки системних повідомлень використовуємо поштові сервіси (postfix, sendmail), які відправляють системні події на пошту. В ідеалі в AWS для цього використовувати AWS SES, але грошики. AWS блокує 25 порт, тому доведеться трішки повозитися. Загалом можна зробити запит на розблокування, дивимося тут, проте це не наш варіант. Підемо іншим шляхом, піднімемо в DigitalOcean mail-relay сервер, встановимо postfix. Налаштуємо роботу postfix на не стандартний порт (2525) і будемо через нього відправляти повідомлення. Своєю чергою, mail-relay буде приймати ці повідомлення і перевідправляти їх по 25 порту.

Що ж, для реалізації нам потрібно:

  • сервер в AWS, буде виконувати роль relay-client, на якому встановлений postfix.
  • сервер в DigitalOcean, який буде виконувати роль mail-relay-server, встановлений postfix, налаштований на роботу через 2525 порт.

Перед процесом налаштування Вам потрібно створити наступні записи в доменному реєстраторі:

  • Record A – mail-relay.example.com
  • Record MX – @

Перейдемо до налаштування.

relay-server

Підключаємось та встановлюємо postfixзазвичай за замовчуванням встановлений sendmail, якщо він встановлений його можна видалити

yum remove sendmail
yum install postfix

далі переходимо в директорію /etc/sendmail і будемо вносити зміни в конфігураційних файлах, для початку змінимо порт, щоб наш postfix працював на 2525 порту, редагуємо master.cf

# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
2525       inet  n       -       n       -       -       smtpd
#smtp      inet  n       -       n       -       1       postscreen
#smtpd     pass  -       -       n       -       -       smtpd
#dnsblog   unix  -       -       n       -       0       dnsblog
#tlsproxy  unix  -       -       n       -       0       tlsproxy
#submission inet n       -       n       -       -       smtpd
.......

знаходимо рядок з smtp, закоментуємо його і зверху або під ним додаємо запис з портом 2525, після чого перезавантажуємо постфікс:

systemctl restart postfix

Тепер переходимо до налаштування в файлі main.cf. Нас будуть цікавити наступні рядки:

  • inet_interfaces адреса яку буде слухати postfix
  • myhostname назва сервера
  • mynetworks список довірених IP адрес які можуть відправляти повідомлення через relay-server, якщо не додавати сюди довірені IP – повідомлення через mail-relay відправлятися не будуть.

переходимо до їх редагування в файлі:

##################################
# INTERNET HOST AND DOMAIN NAMES #
##################################
myhostname = mail-relay.*****.com

##################
# RECEIVING MAIL #
##################
inet_interfaces = localhost, 104.***.**.39

###########################
# TRUST AND RELAY CONTROL #
###########################
mynetworks = 127.0.0.1, 3.**.216.**/32

після чого перезапускаємо постфікс

systemctl restart postfix

Перевіримо на якому порту працює сервер:

netstat -tulpn | grep :2525
(No info could be read for "-p": geteuid()=1005 but you should be root.)
tcp        0      0 104.***.**.39:2525      0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:2525          0.0.0.0:*               LISTEN      -
tcp6       0      0 ::1:2525                :::*                    LISTEN      -

З базовим налаштуванням завершено, переходимо до перевірки.

 

relay-client

В ролі клієнта — сервер в AWS, на якому також встановлений postfix з базовими параметрами. Для початку перевіримо з даного серверу доступність до 2525 порту:

$ telnet mail-relay.****.com 2525
Trying 104.248.137.39...
Connected to mail-relay.****.com.
Escape character is '^]'.

Далі в налаштуваннях конфігураційного файлу /etc/postfix/main.cf потрібно знайти рядок relayhost, розкоментувати й додати посилання на створений mail-relay server:

.....
# If you're connected via UUCP, see also the default_transport parameter.
#
relayhost = [mail-relay.****.com]:2525
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
# REJECTING UNKNOWN RELAY USERS
.....

перезапускаємо постфікс:

systemctl restart postfix

для виправляння повідомлення будемо використовувати утиліту mailx, якщо у вас її немає потрібно встановити пакет або використати sendmail:

$ echo "This is a test email body from AWS " | mail -s "Subject from AWS" v***.t**@***.net

перевіряємо пошту:

Посилання по темі

 

Click to rate this post!
[Total: 1 Average: 5]