Поднять smtp сервер linux

Как установить почтовый сервер в Ubuntu или Debian

Этот урок расскажет как настроить работающий почтовый сервер в Ubuntu или Debian. Как мы знаем, два главных протокола используются в почтовом сервере — это SMTP и POP/IMAP. В этом уроке postfix будет использован для SMTP, в то время как dovecot будет использоваться для POP/IMAP. Они оба с открытым исходным кодом, стабильные и имеют множество настроек.

Пожалуйста, обратите внимание, что вопросы безопасности почтового сервера за сферой данного урока, и они освещены в статье «Как установить Clam Antivirus, SpamAssassin и MailScanner на почтовом сервере под Ubuntu».

Предварительные требования

Каждый домен должен иметь запись на DNS сервере. Рекомендуется НЕ использовать живые домены для целей тестирования. В этом уроке тестовый домен example.tst будет использован в лабораторных условиях. DNS сервер для этого гипотетического домена имел бы, по крайней мере, следующие записи.

  • Прямая зона для example.tst:
  • Обратная зона для example.tst:

Когда настраивается живой почтовый сервер, эти записи могут быть изменены, в соответствии с системными требованиями.

Настройка имени хоста (hostname)

Во-первых, hostname почтового сервера должно быть определено в /etc/hostname и /etc/hosts. Причём в первом файле следует размещать только имя хоста.

Добавление пользователей

Каждый пользователь Linux, по умолчанию, имеет автоматически созданный почтовый ящик. Эти пользователи и почтовые ящики будут использоваться как почтовые учётные записи и соответствующие им адреса почтовых ящиков. Создание пользователя очень простое.

Установка и настройка SMTP

Профиль службы: postfix
Каталог с конфигурационными файлами /etc/postfix/
Скрипт /etc/init.d/postfix
Лог-файл /var/log/mail.log
Номер порта TCP/25

SMTP: Установка postfix

postfix это один из наиболее используемых SMTP серверов, поскольку он стабильный, лёгкий, масштабируемый и высоко настраиваемый. Установка postfix может быть выполнена использованием apt-get.

Во время установки задаются тип почтового сервера и доменное имя.

Так как почтовый сервер будет отправлять письма напрямую к месту назначения, то нужно использовать «Интернет-сайт».

Также задаём доменное имя почтового сервера. Эта настройка определяет, что все письма, приходящие с этого почтового сервера, будут иметь @example.tst в качестве домена отправителя.

Конфигурационные файлы postfix размещены в /etc/postfix. Важны следующие конфигурационные файлы. Некоторые из них могут отсутствовать и их нужно создать вручную.

  • transport: В первую очередь используется для определения, как почта должна быть направлена в направлении конкретного домена назначения. Это тот случай, когда кому-то может быть потребуется отправлять почту, предназначенную для домена XYZ.com, напрямую на IP адрес X.Y.Y.X независимо от каких-либо результатов запросов DNS.
  • access: Может быть использован в целях безопасности, например для блокирования отправителей/получателей и их доменов.
  • aliases: Используется для задания пользовательских псевдонимов. Например, почта отправленная пользователю userA должна быть принята пользователем userB, а также пользователем userC.
  • main.cf: Это конфигурационный файл для postfix.

SMTP: Настройка конфигурационных файлов

Время приготовить конфигурационные файлы. Файлы transport и aliases не поставляются при установке, их нужно создать вручную.

Сделайте резервную копию main.cf а затем модифицируйте. Следующие строки добавлены/изменены в конфигурационном файле. Для дальнейших подробностей о параметрах обратитесь к официальному README и документу по настройки.

Письмам, предназначенным для домена example.tst, определено быть доставлено локально без каких-либо DNS запросов.

Предполагаем, что все письма, отправленные пользователю userA, должны быть доставлены также пользователю userB, для этого файл aliases изменён как показано ниже:

Обратите внимание: Синтекс ‘userA: userB’ определяет, что почта должна быть направлена только пользователю userB. Пользователь userA не будет получать копию письма.

SMTP: Запуск и обслуживание

postfix может быть запущен командой.

Лог-файл в /var/log/mail.log должен предоставить полезную информацию, если что-то пойдёт не так. Прослушивает ли почтовый сервер TCP порт 25 можно также проверить используя netstat.

Читайте также:  Windows iso image tool

Как видно из вывода, сервер прослушивает TCP порт 25 для входящих запросов соединений.

Установка и настройка POP/IMAP

Профиль службы: dovecot
Директория конфигурационных файлов /etc/dovecot
Скрипт /etc/init.d/dovecot
Файл журнала /var/log/mail.log
Номер порта TCP: 110 (POP3), 143 (IMAP), 993 (IMAPS), 995 (POP3S)

POP/IMAP: Установка dovecot

dovecot — это, без сомнений, лидирующее IMAP и POP серверное программное обеспечения в сообществе опен сорс. Очень просто установить и настроить dovecot. Для установки dovecot мы опять будем использовать apt-get .

Прямо из коробки dovecot может поддерживать POP3 и IMAP (обычный текст), а также зашифрованный POP3S и IMAPS (безопасный). По умолчанию dovecot создаёт и использует самоподписанный сертификат для SSL шифрования. Сертификаты могут быть созданы вручную или ипортированы позже, в зависимости от требований. В этом уроке будет использован сапомодписанный сертификат, сгенерированный dovecot.

На последних версиях больше не создаёт. Сертификаты нужно создавать вручную и вручную подключать их. Как это сделать, описано в этой инструкции.

POP/IMAP: Подготовка конфигурационных файлов

Следующие параметры изменяются как нужно.

Этого должно быть достаточно для запуска службы POP/IMAP в почтовом сервере.

POP/IMAP: Установка службы

Сейчас, когда dovecot установлен и настроен, он может быть запущен, используя следующую команду.

Вновь лог-файл (/var/log/mail.log) может предоставить важные зацепки, если что-то пойдёт не так. Узнать, запущен ли dovecot, можно при использовании netstat следующим образом.

Использование почтового сервера с пользовательской почтовой программой

Почтовый сервер теперь готов к использованию. Почтовая учётная запись может быть настроена с использованием вашего любимого почтового клиента на настольном компьютере, ноутбуке, планшете или телефоне. Можно настроить и webmail (почту с веб-интерфейсом) на сервере, но инструкция по webmail будет в следующих уроках. На данном этапе, почтовая программа Mozilla Thunderbird определила следующие настройки для моего сервера:

Крайне рекомендуется перейти и продолжить по этой инструкции для включения SSL шифрования.

Решение проблем с почтовым сервером

  • Лучший ваш друг — это лог-файл /var/log/mail.log. Любые зацепки, почему почта не работает, могут быть найдены здесь.
  • Убедитесь, что файервол должным образом настроен.
  • Убедитесь, что DNS сервер имеет должные записи.

Подытоживая, демонстрация в этом уроке, как уже было упомянуто, проходила в лабораторных условиях. Может быть развёрнут тестовый DNS сервер со всеми необходимыми записями, и пользователи будут между собой обмениваться письмами на одном и том же сервере, например, том же домене. Чтобы сделать ещё интереснее, можно развернуть множество почтовых серверов с различными доменами, для проверки работы связи между доменами, для этого должны присутствовать необходимые DNS записи.

Валидные DNS записи необходимы для живых почтовых серверов. Можно сделать тюнинг настроек postfix и dovecot в соответствии с потребностями.

Внимание: Для тех, кто хочет развернуть живой почтовый сервер, или любой почтовый сервер, который имеет доступ в Интернет, убедитесь, что ваш SMTP обезопасен. Обычно атаки на SMTP происходят из Интернета, так и от зловредных программ внутри локальной сети.

Надеюсь это поможет.

Эти программы нельзя установить на виртуальный хостинг. Полностью автономный почтовый сервер можно сделать только на виртуальном частном (выделенном) сервере, т. е. На VDS (VPS). Самые дешёвые облачные VDS (VPS) сервера! За 180 рублей/мес — эта статья, как следует из заголовка, расскажет вам о качественном и при этом самом дешёвом варианте виртуального частного сервера, которые при этом ещё и используют облачные технологии.

Источник

Установка и настройка SMTP-сервера Postfix в Ubuntu 20.04

Postfix – это агент пересылки сообщений (Mail Transfer Agent, или MTA), приложение для обмена электронной почтой. Это руководство поможет вам установить и настроить Postfix только для отправки сообщений локальных приложений. Такая настройка полезна в ситуациях, когда вам нужно регулярно отправлять уведомления ваших приложений по электронной почте или просто обрабатывать большой исходящий трафик, который не поддерживают сторонние провайдеры электронной почты. Кроме того, это позволяет получить легкую альтернативу полноценному SMTP-серверу с сохранением требуемой функциональности.

В этом руководстве мы установим и настроим Postfix как SMTP-сервер исходящей почты. Также мы расскажем, как запрашивать бесплатные сертификаты TLS от Let’s Encrypt и шифровать исходящие электронные письма с их помощью.

Читайте также:  Универсальный прошивальщик recovery под windows

Требования

  • Сервер Ubuntu 20.04, настроенный по этому мануалу (включая пользователя с доступом к sudo).
  • Валидный домен (в мануале используется условный домен your_domain).
  • DNS- запись А для домена your_domain, указывающая на IP-адрес вашего сервера.

Примечание: Имя хоста сервера должно соответствовать этому домену или поддомену. Чтобы проверить имя хоста своего сервера, введите команду hostname. Вывод должен совпадать с именем сервера, которое он получил при создании.

1: Установка Postfix

Чтобы установить Postfix, а вместе с ним и ряд вспомогательных программ, необходимых для настройки почты, просто установите пакет mailutils.

Обновите индекс пакетов:

sudo apt update

А затем установите mailtuils:

sudo apt install mailutils

В конце установки будет предложено выбрать тип настройки.

Please select the mail configuration type that best meets your needs.
[…] General type of mail configuration:
No configuration
Internet site
Internet with smarthost
Satellite system
Local only

Рекомендуется выбрать стандартную опцию Internet site. Для этого нажмите Tab и Enter. Если вы видите только описательный текст, нажмите Tab, чтобы выбрать OK, а затем нажмите Enter.

Если диалоговое окно не запустилось автоматически, откройте его вручную:

sudo dpkg-reconfigure postfix

После этого программа предложит выбрать имя почты, которое определяется параметром System mail name.

The ‘mail name’ is the domain name used to ‘qualify’ _ALL_ mail addresses without a domain name.
[…] System mail name:

Поле System mail name должно совпадать с именем сервера, которое вы выбрали при его создании. Укажите имя, а затем нажмите Tab и Enter.

2: Настройка Postfix

Теперь нужно настроить Postfix для отправки и получения сообщений с localhost – то есть с локального хоста, на котором установлен почтовый сервер.

Для этого Postfix должен прослушивать интерфейс loopback – это виртуальный сетевой интерфейс, который используется сервером для внутреннего взаимодействия. Откройте конфигурационный файл Postfix в текстовом редакторе:

sudo nano /etc/postfix/main.cf

Найдите там эти строки:

. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
. . .

Измените значение строки inet_interfaces на loopback-only.

. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
. . .

После этого нужно отредактировать директиву mydestination. Она определяет список доменов, почта которых должна быть доставлена через локальный агент доставки почты local_transport. По умолчанию список выглядит так:

. . .
mydestination = $myhostname, your_domain, localhost.com, , localhost
. . .

Вместо стандартного списка нужно использовать этот:

. . .
mydestination = localhost.$mydomain, localhost, $myhostname
. . .

Если вместо домена вы используете поддомен и хотите, чтобы почта выглядела так, будто она была отправлена с главного домена, добавьте в конец файла main.cf такую строку:

Дополнительный параметр masquerade_domains указывает, для каких доменов нужно удалять часть поддомена в адресе электронной почты.

Сохраните и закройте файл.

Примечание: Если вы разместили несколько доменов в рамках одного сервера, остальные домены можно добавить в настройки Postfix с помощью директивы mydestination.

sudo systemctl restart postfix

3: Тестирование SMTP-сервера

Теперь нужно проверить, может ли Postfix отправлять сообщения на внешний электронный адрес. Для этого используется команда mail, которая также входит в пакет mailutils.

Чтобы отправить тестовое сообщение, введите команду:

echo «This is the body of the email» | mail -s «This is the subject line» your_email_address

Примечание: Вы можете указать другую тему и тело сообщения. Вместо your_email_address используйте валидный адрес электронной почты.

Проверьте почтовый ящик, на который было отправлено сообщение. Если сообщение не появилось, проверьте спам. На данный момент все письма отправляются в незашифрованном виде, потому многие провайдеры будут помечать их как спам. Позже мы настроим шифрование, чтобы устранить эту проблему.

Если вы получили сообщение об ошибке от команды mail или не получили тестовое сообщение на указанный адрес, хотя прошло много времени, убедитесь, что не допустили ошибок в конфигурациях Postfix и что имя вашего сервера и имя хоста направлены на ваш домен.

Обратите внимание, в этой конфигурации адрес в поле From для отправляемых вами тестовых электронных писем будет иметь вид your_user_name@your_domain, где your_user_name – это пользователь сервера, от имени которого вы запускали команду.

4: Пересылка почты

Теперь нам нужно настроить пересылку почты (или форвардинг), чтобы сервер мог предавать сообщения, отправленные пользователю root, на ваш персональный внешний адрес.

Чтобы Postfix отправлял сообщения, сгенерированные системой, на ваш почтовый адрес, отредактируйте файл /etc/aliases.

Читайте также:  Как поменять антивирус windows 10

sudo nano /etc/aliases

Стандартный файл выглядит так:

# See man 5 aliases for format
postmaster: root

Пока что тут есть всего одна директива, которая пересылает все системные письма на root. Чтобы сообщения перенаправлялись на ваш адрес электронной почты, добавьте в конец файла эту строку:

Замените your_email_address своим адресом электронной почты. Сохраните и закройте файл. Чтобы изменения вступили в силу, введите команду:

Эта команда составит базу алиасов, которые использует команда mail.

Теперь проверьте работу пересылки, отправив сообщение пользователю root:

echo «This is the body of the email» | mail -s «This is the subject line» root

Это сообщение должно появиться в вашем почтовом ящике (если его нет, проверьте спам).

Итак, вы настроили перенаправление сообщений на ваш адрес. Теперь давайте настроим шифрование, чтобы защитить ваши сообщения от несанкционированного доступа при их передаче.

5: Настройка SMTP-шифрования

Теперь вы можете включить шифрование SMTP, запросив бесплатный TLS сертификат для вашего домена у сервиса Let’s Encrypt (используя клиент Certbot) и настроив Postfix для его поддержки при отправке сообщений.

Ubuntu включает Certbot в стандартный репозиторий пакетов. Чтобы установить его, введите следующую команду:

sudo apt install certbot

Чтобы подтвердить установку, нажмите Y и Enter.

При начальной настройке сервера вы установили брандмауэр UFW. Вам нужно открыть в нем HTTP-порт 80, чтобы можно было выполнить проверку домена. Запустите следующую команду, чтобы открыть этот порт:

sudo ufw allow 80

Вывод будет выглядеть так:

Rule added
Rule added (v6)

Теперь, когда порт открыт, запустите Certbot, чтобы получить сертификат:

sudo certbot certonly —standalone —rsa-key-size 4096 —agree-tos —preferred-challenges http -d your_domain

Эта команда запросит сертификаты с размером ключа RSA 4096 бит, запустит временный автономный веб-сервер (–standalone) для их проверки и выполнит проверку через порт 80 (–preferred-challenge http). Не забудьте заменить your_domain своим доменом перед запуском команды и введите свой адрес электронной почты при появлении запроса.

Вы получите такой вывод:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for `your_domain`
Waiting for verification.
Cleaning up challenges
IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_domain/privkey.pem
Your cert will expire on 2020-07-11. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
«certbot renew»
— If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Как написано в примечаниях в выводе, ваш сертификат и файл закрытого ключа были сохранены в /etc/letsencrypt/live/your_domain.

Теперь, когда у вас есть сертификат, откройте файл main.cf в редакторе:

sudo nano /etc/postfix/main.cf

Найдите такой раздел:

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:$/smtp_scache

Обновите в нем параметры TLS для Postfix (вместо your_domain укажите ваш домен).

# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/your_domain/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/your_domain/privkey.pem
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:$/smtp_scache

Сохраните и закройте файл.

Чтоб применить новые настройки, перезапустите Postfix.

sudo systemctl restart postfix

Попробуйте снова отправить письмо:

echo «This is the body of an encrypted email» | mail -s «This is the subject line» your_email_address

Затем проверьте почтовый ящик, на который вы отправили свое тестовое сообщение. Вероятнее всего, оно появится там сразу же, поскольку оно зашифровано (незашифрованные сообщения гораздо чаще помечаются как спам).

Вы можете проверить техническую информацию о сообщении электронной почты на вашем клиенте, чтобы увидеть, что оно действительно зашифровано.

Заключение

Теперь у вас есть сервер исходящей почты Postfix. Шифрование всех исходящих сообщений – это хороший способ сделать ваши сообщения непохожими на спам. Для среды разработки этой меры должно быть достаточно.

Однако если вы собираетесь отправлять электронные письма потенциальным пользователям сайта (например, письма с подтверждением регистрации), вам следует настроить записи SPF, чтобы повысить вероятность того, что сообщения, отправленные с вашего сервера, будут нормально восприняты.

Источник

Оцените статью