Настройка почтового сервера Linux
Обновлено: 21.11.2024
Установите, настройте, защитите и разверните в рабочей среде всего за 10 минут. Единый программный пакет, предварительно настроенный и готовый к работе с выбранной вами почтовой платформой Linux.
В этой статье описаны этапы установки, базовой настройки и защиты почтового сервера Linux на собственном физическом или виртуальном сервере. Необходим единственный программный пакет — полнофункциональная универсальная платформа электронной почты Axigen для Linux.
В конце статьи у вас будет полностью работающая установка Axigen, которую вы сможете использовать для оценки продукта. Если вы решите развернуть его в рабочей среде, мы также включили ссылки на некоторые статьи и страницы документации с рекомендациями о том, как реализовать передовые методы самостоятельного размещения ваших доменов электронной почты.
Обзор экосистемы почтового сервера Linux
Проблема: слишком много компонентов с открытым исходным кодом
Экосистема почтового сервера Linux предоставляет бесплатные компоненты с открытым исходным кодом почти для всех модулей, необходимых для полноценного почтового сервера Linux (серверы MTA, IMAP и POP3, WebMail, WebAdmin, CalDAV и CardDAV). Интернет также изобилует руководствами о том, как смешивать и сочетать эти компоненты.
Например, в этом руководстве представлен план установки и интеграции Postfix (для SMTP), SpamAssassin и Dovecot (для IMAP и POP3). В нем также рассказывается, как развернуть сертификаты Let's Encrypt на вашем SMTP-агенте передачи сообщений Postfix. Это останавливается здесь все же. Если вы хотите также установить интерфейс веб-почты (например, RoundCube или SquirrelMail), вам придется продолжить поиск в Интернете.
Есть также несколько уже готовых пакетов, которые предварительно интегрируют определенные компоненты (например, mailu, mailinabox и т. д.). Это явно связано с удобством более короткого времени установки и уже доступных инструментов управления клиентами и доступа (WebAdmin и WebMail). Однако вам все равно придется найти все компоненты, необходимые для вашей почтовой службы Linux.
Решение: Axigen как почтовый сервер Linux премиум-класса
Axigen не смешивает компоненты с открытым исходным кодом. Все услуги и функции создаются и разрабатываются Axigen и интегрируются в единый процесс. Это имеет следующие преимущества:
- 1 Тесная интеграция значительно упрощает установку, а также увеличивает плотность почтовых ящиков, поддерживаемых на определенном "аппаратном блоке".
- 2 Поддержка от одного поставщика. Круглосуточная поддержка 7 дней в неделю и 365 дней в году. Клиенты и партнеры могут напрямую обращаться в службу технической поддержки по электронной почте в любое время.
- 3 Axigen прост в настройке и использовании, и мы предоставляем всю необходимую информацию в одном месте.
Axigen также представляет собой платформу электронной почты, ориентированную на WebMail, и представляет собой одностраничный динамический веб-интерфейс для доступа к вашей электронной почте, календарям, контактам, задачам, заметкам, общим папкам, общим календарям, общим контактам или общим заметкам.
Настройка почтового сервера Linux и SMTP (простой протокол передачи почты) необходима, если вы хотите использовать электронную почту, поэтому мы рассмотрим, как мы можем установить и настроить почтовый сервер вместе с некоторыми другими протоколами, связанными с электронной почтой, таких как протокол почтового отделения (POP3) и протокол доступа к сообщениям в Интернете (IMAP).
Компоненты почтового сервера Linux
Почтовая служба на почтовом сервере Linux состоит из трех компонентов:
- Почтовый агент пользователя (MUA) — это графический интерфейс, который позволяет писать и отправлять электронные письма, например Thunderbird или Outlook.
- Агент переноса почты (MTA) — это элемент, который перемещает почту (как следует из названия). MTA, такие как Sendmail и Postfix, являются частями, которые передают ваши сообщения с места на место по эфиру.
- Агент доставки почты (MDA) — это компонент, который рассылает сообщения, отправленные вам на ваш локальный компьютер, чтобы они попадали в соответствующий почтовый ящик пользователя. Примерами являются Postfix-maildrop и Procmail.
Настройка почтового сервера Linux
Чтобы настроить почтовый сервер Linux, сначала необходимо проверить, установлен ли уже Postfix. В наши дни это почтовый сервер по умолчанию в львиной доле дистрибутивов Linux, и это хорошо, потому что он очень нравится администраторам серверов.
Вот как проверить, есть ли он уже в системе:
$ об/мин -qa | постфикс grep
Если нет, установите его в дистрибутивах Red Hat следующим образом:
$ dnf -y установить постфикс
Затем запустите его и активируйте при запуске системы:
$ systemctl запускает постфикс
$ systemctl активировать постфикс
Для дистрибутивов, основанных на Debian, таких как Ubuntu, вы должны установить их следующим образом:
$ apt-get -y установить постфикс
При настройке почтового сервера Linux вам будет предложено выбрать способ настройки почтового сервера Postfix.
Вам будут представлены следующие варианты:
- Нет конфигурации
- Интернет-сайт
- Интернет через смартхост
- Только спутниковая и локальная системы
Давайте перейдем к параметру «Нет конфигурации» для нашего почтового сервера Linux.
Настройка почтового сервера Linux
После установки почтового сервера Postfix вам нужно будет его настроить, и большинство необходимых для этого файлов можно найти в каталоге /etc/postfix/.
Основную конфигурацию почтового сервера Postfix Linux можно найти в файле /etc/postfix/main.cf.
Этот файл содержит множество параметров, таких как:
имя хоста
Используйте этот параметр, чтобы указать имя хоста почтового сервера, откуда postfix будет получать электронные письма.
Вы включаете имя хоста следующим образом:
Синтаксис выглядит следующим образом:
мое происхождение
моя цель
Этот параметр показывает, какие домены сервер Postfix использует для входящих писем на ваш почтовый сервер Linux.
Вы можете назначать значения следующим образом:
Почтовый сервер Postfix Linux может использовать два режима доставки:
- прямо в чей-то почтовый ящик.
- в центральный каталог спула, что означает, что почта будет находиться в /var/spool/mail с файлом для каждого пользователя.
мои сети
Это позволит вам определить, какие серверы могут ретранслировать через ваш сервер Postfix.
Он должен принимать только локальные адреса, такие как локальные почтовые скрипты на вашем сервере.
Если это не так, спамеры могут использовать ваш почтовый сервер Linux. Это означает, что ваш прекрасный блестящий сервер будет делать тяжелую работу для некоторых плохих парней, и в конечном итоге он будет заблокирован.
Вот синтаксис этой опции:
mynetworks = 127.0.0.0/8, 192.168.1.0/24
Определяет, какое сообщение отправляется после успешного подключения клиента.
Рассмотрите возможность изменения баннера, чтобы он не раскрывал никакой потенциально компрометирующей информации о вашем сервере.
Этот параметр указывает, какая версия IP-протокола используется для подключения к серверу.
Когда вы изменяете любой из файлов, используемых для настройки почтового сервера Linux для Postfix, вы должны перезагрузить службу с помощью этой директивы:
$ systemctl перезагрузить постфикс
Конечно, мы все отвлекаемся, и ввод текста может часто приводить к ошибкам, но вы можете отследить любые опечатки, которые могут поставить под угрозу ваш почтовый сервер Linux, с помощью этой команды:
Проверка почтовой очереди
Сбои в сети (и многие другие причины) могут привести к тому, что почтовая очередь на вашем почтовом сервере Linux может переполниться, но вы можете проверить почтовую очередь Postfix с помощью этой команды:
Если это показывает, что очередь заполнена, вы можете очистить очередь с помощью этой команды:
Посмотрите еще раз, и вы должны увидеть, что очередь вашего почтового сервера Linux свободна.
Тестирование почтового сервера Linux
После завершения настройки вам необходимо протестировать почтовый сервер Linux.
Первое, что нужно сделать, это использовать локальный почтовый пользовательский агент, такой как mailx или mail, который является символической ссылкой на mailx.
Отправьте свой первый тест кому-нибудь на почтовом сервере Linux, и если это сработает, отправьте следующий куда-нибудь во внешний сервер.
$ echo "Это тело сообщения" | mailx -s "Здесь у нас есть тема" -r "например" -a /path/to/attachment [e-mail защищен]
Затем проверьте, может ли ваш почтовый сервер Linux принимать внешнюю почту.
Если вы столкнетесь с какими-либо трудностями, загляните в журналы. Файл журнала Red Hat можно найти в /var/log/maillog, а для версий Debian — в /var/log/mail.log или в любом другом месте, указанном в конфигурации rsyslogd.
Я бы посоветовал вам ознакомиться с сервером системных журналов Linux для получения подробных сведений о журналах и о том, как настроить rsyslogd.
Если у вас возникнут дополнительные трудности, проверьте настройки DNS и используйте сетевые команды Linux для проверки записей MX.
Борьба со спамом с помощью SpamAssassin
Никто не любит спам, и SpamAssassin, вероятно, является лучшим бесплатным ниндзя по борьбе со спамом с открытым исходным кодом, который вы могли бы надеяться иметь в своем уголке.
Установить его так же просто, как сделать это:
$ dnf -y установить spamassassin
Затем вы просто запускаете службу и активируете ее при запуске:
$ systemctl запустить spamassassin
$ systemctl активировать spamassassin
После того, как вы это сделаете, вы сможете увидеть, как это настроено, в файле /etc/mail/spamassassin/local.cf.
SpamAssassin запускает ряд сценариев, чтобы проверить, насколько письмо является спамом. Чем выше оценка скриптов, тем больше шансов, что это спам.
Если в файле конфигурации параметр required_hits равен 6, это означает, что SpamAssassin будет считать электронное письмо спамом, если оно наберет 6 или более баллов.
Команда report_safe будет иметь значения 0, 1 или 2. Значение 0 означает, что электронное письмо, помеченное как спам, отправляется без изменений, и только заголовки будут помечать его как спам.
1 или 2 означает, что новое отчетное сообщение будет создано SpamAssassin и доставлено получателю.
Значение 1 указывает, что спам-сообщение закодировано как сообщение с содержимым/rfc822, а значение 2 означает, что сообщение было закодировано как текст или простое содержимое.
Текст или обычный текст менее опасны, поскольку некоторые почтовые клиенты выполняют message/rfc822, что нехорошо, если они содержат какие-либо вредоносные программы.
Следующее, что нужно сделать, это интегрировать его в Postfix, и проще всего это сделать с помощью procmail.
Мы создадим файл с именем /etc/procmailrc и добавим в него это:
:0 hbfw | /usr/bin/spamc
Затем мы отредактируем файл конфигурации Postfix /etc/postfix/main.cf и изменим команду mailbox_command следующим образом:
И последнее, но не менее важное: перезапустите службы Postfix и SpamAssassin:
$ systemctl перезапустить постфикс
$ systemctl перезапустить spamassassin
К сожалению, SpamAssassin не может уловить все, и спам все еще может проникать в почтовые ящики на вашем почтовом сервере Linux.
Но не бойтесь, потому что вы можете фильтровать сообщения еще до того, как они попадут на сервер Postfix, с помощью списков Blackhole List (RBL) в реальном времени.
Зачем запускать собственный почтовый сервер? Возможно, у вас есть веб-сайт, которому необходимо отправлять электронные письма пользователям, или, может быть, вы хотите хранить свои электронные письма на своем собственном сервере, чтобы защитить свою конфиденциальность. Тем не менее, создание собственного почтового сервера может быть непростой задачей, потому что вам нужно правильно установить и настроить так много программных компонентов. Чтобы облегчить вам это путешествие, я создаю серию руководств о том, как создать собственный почтовый сервер в Ubuntu.
Я уверен, что это лучшая и наиболее полная серия руководств по созданию почтового сервера с нуля в Интернете. У вас будет не только работающий почтовый сервер, но и гораздо лучшее понимание того, как работает электронная почта. Эта серия руководств разделена на 12 частей.
- Настройка базового SMTP-сервера Postfix
- Создание виртуальных почтовых ящиков с помощью PostfixAdmin (Ubuntu 18.04, Ubuntu 20.04)
- (необязательно) Включите и настройте Postscreen в Postfix для блокировки спам-ботов
Я знаю, что это кажется очень сложной задачей. Однако, в зависимости от того, чего вы хотите достичь, вам может не понадобиться следовать им всем. Мои статьи легко читать, поэтому, если вы посвятите этому немного времени, у вас будет работающий почтовый сервер.
Совет: если вы не хотите создавать почтовый сервер с нуля, что является долгим и утомительным процессом, вы можете использовать iRedMail для быстрой и простой настройки полнофункционального почтового сервера.
Эта статья является первой частью этой серии руководств. В этой статье я покажу вам, как настроить очень простой SMTP-сервер Postfix, также известный как MTA (агент передачи сообщений). После того, как вы закончите эту статью, вы сможете отправлять и получать электронные письма со своим собственным почтовым доменом на своем собственном почтовом сервере. Это руководство протестировано на серверах Ubuntu 20.04 и Ubuntu 18.04.
О постфиксе
Postfix — это современный агент передачи сообщений (MTA), также известный как SMTP-сервер, который служит двум целям.
- Он отвечает за передачу сообщений электронной почты от почтового клиента/почтового агента пользователя (MUA) на удаленный SMTP-сервер.
- Он также используется для приема электронной почты с других SMTP-серверов.
Postfix был создан Витсе Венема, экспертом по Unix и безопасности. Он прост в использовании, разработан с учетом безопасности и модульности, при этом каждый модуль работает с минимально возможным уровнем привилегий, необходимым для выполнения работы. Postfix тесно интегрируется с Unix/Linux и не предоставляет функций, которые уже предоставляет Unix/Linux. Он надежен как в простых, так и в стрессовых условиях.
Postfix изначально разрабатывался как замена Sendmail — традиционному SMTP-серверу в Unix. По сравнению с ним Postfix более безопасен и прост в настройке. Он совместим с Sendmail, поэтому, если вы удалите Sendmail и замените его Postfix, ваши существующие скрипты и программы продолжат работать без проблем.
В этом руководстве вы узнаете, как настроить Postfix для одного домена.
Выбор подходящего хостинг-провайдера
Нелегко найти провайдера VPS (виртуального частного сервера), подходящего для хостинга электронной почты. Многие хостинговые компании, такие как DigitalOcean, блокируют порт 25. DigitalOcean не будет разблокировать порт 25, поэтому вам нужно будет настроить ретранслятор SMTP для обхода блокировки, что может стоить вам дополнительных денег. Если вы используете Vultr VPS, то порт 25 по умолчанию заблокирован. Они могут разблокировать его, если вы откроете заявку в службу поддержки, но они могут снова заблокировать его в любое время, если решат, что ваша отправка электронной почты не разрешена. Vultr может повторно заблокировать его, если вы используете их серверы для отправки информационных бюллетеней.
Еще одна проблема заключается в том, что спамеры злоупотребляют услугами крупных известных хостинг-провайдеров, таких как DigitalOcean или Vultr. Часто IP-адрес сервера находится в нескольких черных списках. Vultr занес в черный список целые диапазоны IP-адресов.
ScalaHosting — очень хороший вариант для запуска почтового сервера, потому что
- Они не блокируют порт 25.
- Этого IP-адреса нет ни в одном черном списке электронной почты. (По крайней мере, это верно в моем случае. Я выбрал центр обработки данных в Далласе.) Вы определенно не хотите быть занесенными в ужасный черный список IP-адресов Microsoft Outlook или черный список SpamRats. Некоторые черные списки блокируют весь диапазон IP-адресов, и у вас нет возможности исключить свой IP-адрес из таких черных списков.
- Вы можете изменить запись PTR, чтобы улучшить доставку электронной почты.
- Они позволяют отправлять информационные бюллетени подписчикам электронной почты без каких-либо часовых или дневных ограничений. Обратите внимание, что вам не разрешено рассылать спам, также известный как нежелательная массовая рассылка электронной почты. Если получатель не дает вам явного разрешения на отправку электронных писем, а вы отправляете ему электронные письма, это нежелательная почта.
Я рекомендую следовать приведенному ниже руководству, чтобы правильно настроить сервер Linux VPS на ScalaHosting. Используйте код купона linuxbabe2021 на странице оплаты ScalaHosting, чтобы сэкономить 100 долларов США, если вы решите заплатить за 12 месяцев вперед.
Вам также потребуется доменное имя. Я зарегистрировал свое доменное имя в NameCheap, потому что цена низкая, и они дают вам бесплатную защиту конфиденциальности whois на всю жизнь.
Что нужно сделать перед установкой Postfix
Чтобы повысить производительность Postfix и получить максимальную отдачу от Postfix, вам необходимо правильно настроить сервер Ubuntu.
Задайте правильное имя хоста для Ubuntu Server
По умолчанию Postfix использует имя хоста вашего сервера для идентификации при общении с другими агентами передачи сообщений. Имя хоста может иметь две формы: одно слово и полное доменное имя.
Однословная форма используется в основном на персональных компьютерах. Ваш домашний компьютер с Linux может называться linux , debian , ubuntu и т. д. Полное доменное имя (полное доменное имя) обычно используется на серверах с выходом в Интернет, и мы должны использовать полное доменное имя на наших почтовых серверах. Он состоит из двух частей: имени узла и доменного имени. Например:
Введите следующую команду, чтобы увидеть форму полного доменного имени вашего имени хоста.
Если на вашем сервере Ubuntu еще нет полного доменного имени, вы можете установить его с помощью hostnamectl.
Настройте записи DNS для вашего почтового сервера
Чтобы настроить записи DNS, вам нужно обратиться в службу хостинга DNS (обычно к регистратору вашего домена, например NameCheap).
MX-запись
Обратите внимание, что при создании записи MX вы должны ввести @ или имя своего домена apex в поле имени, как показано ниже. Верхнее доменное имя — это доменное имя без субдомена.
Запись
Запись A сопоставляет полное доменное имя с IP-адресом.
Запись АААА
PTR-запись
Запись указателя или запись PTR сопоставляет IP-адрес с полным доменным именем. Это аналог записи A, который используется для обратного поиска в DNS (rDNS).
Обратное преобразование IP-адреса в запись PTR может помочь в блокировке спамеров. Многие MTA принимают электронную почту только в том случае, если сервер действительно отвечает за определенный домен. Вы обязательно должны установить запись PTR для своего почтового сервера, чтобы у ваших писем было больше шансов попасть в папку «Входящие» получателя, а не в папку со спамом.
Чтобы проверить запись PTR на наличие IP-адреса, вы можете использовать следующую команду.
Примечание. Gmail фактически проверяет запись A имени хоста, указанного в записи PTR. Если имя хоста преобразуется в тот же IP-адрес, Gmail примет вашу электронную почту. В противном случае ваше письмо будет отклонено.
После того, как все вышеперечисленное сделано, давайте поиграем с Postfix.
Установка Postfix
На сервере Ubuntu выполните следующие две команды.
Вам будет предложено выбрать тип почтовой конфигурации. Обычно вы хотите выбрать второй тип: Интернет-сайт .
- Без настройки означает, что в процессе установки никакие параметры не настраиваются.
- Интернет-сайт означает использование Postfix для отправки электронных писем другим MTA и получения электронной почты от других MTA.
- Интернет с промежуточным хостом означает использование постфикса для получения электронной почты от других агентов передачи сообщений, но использование другого промежуточного хоста для ретрансляции электронной почты получателю.
- Спутниковая система означает использование смарт-хоста для отправки и получения электронной почты.
- Только локальный означает, что сообщения электронной почты передаются только между локальными учетными записями пользователей.
После установки Postfix автоматически запустится и будет создан файл /etc/postfix/main.cf. Теперь мы можем проверить версию Postfix с помощью этой команды:
В Ubuntu 18.04 версия Postfix – 3.3.0, а в Ubuntu 20.04 – версия 3.4.10.
Утилита ss (Socket Statistics) сообщает нам, что главный процесс Postfix прослушивает TCP-порт 25.
Postfix поставляется со многими двоичными файлами в каталоге /usr/sbin/, что видно из следующей команды.
Откройте TCP-порт 25 (входящий) в брандмауэре
Входящий TCP-порт 25 должен быть открыт, чтобы Postfix мог получать электронные письма с других SMTP-серверов. Ubuntu по умолчанию не включает брандмауэр. Если вы включили брандмауэр UFW, вам необходимо открыть порт 25 (входящий) с помощью следующей команды.
Затем мы можем сканировать открытые порты на почтовом сервере с помощью онлайн-сканера портов. Введите общедоступный IP-адрес вашего почтового сервера и выберите сканирование всех общих портов.
На снимке экрана выше видно, что TCP-порт 25 открыт на моем почтовом сервере.
Проверка, не заблокирован ли TCP-порт 25 (исходящий)
Исходящий TCP-порт 25 должен быть открыт, чтобы Postfix мог отправлять электронные письма на другие SMTP-серверы. Исходящий TCP-порт 25 контролируется вашим хостинг-провайдером, мы можем установить утилиту telnet, чтобы проверить, открыт он или заблокирован.
Выполните следующую команду на своем почтовом сервере.
Если он не заблокирован, вы увидите сообщения, подобные приведенным ниже, что означает, что соединение успешно установлено. (Подсказка: введите quit и нажмите Enter, чтобы закрыть соединение.)
Если порт 25 (исходящий) заблокирован, вы увидите примерно следующее:
В этом случае ваш Postfix не сможет отправлять электронные письма на другие SMTP-серверы. Попросите вашего интернет-провайдера/хостинг-провайдера открыть для вас исходящий порт 25. Если они отклонят ваш запрос, вам нужно настроить ретранслятор SMTP для обхода блокировки порта 25 или использовать VPS, например ScalaHosting, который не блокирует порт 25.
Некоторые люди могут спросить: "Могу ли я изменить порт 25 на другой порт, чтобы обойти блокировку"? Ответ - нет. Изменение порта работает только тогда, когда вы управляете как на стороне сервера, так и на стороне клиента. Когда Postfix отправляет электронные письма, он действует как SMTP-клиент. Почтовый сервер получателя действует как SMTP-сервер. У вас нет контроля над принимающим SMTP-сервером. SMTP-серверы прослушивают порт 25 для получения электронной почты. Они ожидают, что SMTP-клиенты будут использовать порт 25. Другого порта для получения электронной почты нет. Если ваш Postfix не подключается к порту 25 принимающего SMTP-сервера, вы не сможете отправлять электронные письма.
Отправка тестового письма
На самом деле теперь мы можем отправлять и получать электронную почту из командной строки. Если на вашем сервере Ubuntu есть учетная запись пользователя с именем user1 , адрес электронной почты для этого пользователя будет [email protected] . Вы можете отправить электронное письмо пользователю root [email protected]. Вы также можете отправлять электронные письма на Gmail, почту Yahoo или любую другую почтовую службу.
При установке Postfix двоичный файл sendmail помещается в /usr/sbin/sendmail, который совместим с традиционным SMTP-сервером Sendmail. Вы можете использовать двоичный файл sendmail Postfix, чтобы отправить тестовое письмо на свою учетную запись Gmail следующим образом:
С помощью этой простой команды sendmail считывает сообщение из стандартного ввода и делает «тестовое электронное письмо» в качестве тела сообщения, а затем отправляет это сообщение в вашу учетную запись Gmail. Вы должны быть в состоянии получить это тестовое письмо в свой почтовый ящик Gmail (или в папку со спамом). Вы можете видеть, что, хотя мы не указали адрес отправителя, Postfix автоматически добавляет доменное имя к адресу отправителя. Это потому, что мы добавили наше доменное имя в имя системной почты при установке Postfix.
Примечание. Имя домена From: определяется параметром myorigin в Postfix, а не параметром myhostname.
Вы можете попытаться ответить на это тестовое письмо, чтобы узнать, может ли Postfix получать сообщения электронной почты. Вполне вероятно, что письма, отправленные с вашего домена, помечены как спам. Не беспокойтесь об этом сейчас. Мы решим эту проблему в следующих частях этой серии руководств.
Почтовый ящик каждого пользователя находится в папке /var/spool/mail/ или /var/mail/file. Если вы не знаете, где искать входящие, используйте эту команду.
Журнал почты Postfix хранится в /var/log/mail.log .
Все еще не можете отправить электронное письмо?
Если порт 25 (исходящий) не заблокирован, но вы по-прежнему не можете отправлять электронные письма со своего почтового сервера на другой адрес электронной почты, такой как Gmail, вам следует открыть журнал почты ( /var/log/mail.log ) с помощью текстового редактора командной строки, например Nano.
Например, некоторые пользователи могут увидеть в файле следующие строки.
Чтобы сохранить файл в текстовом редакторе Nano, нажмите Ctrl+O , затем нажмите Enter для подтверждения. Чтобы выйти, нажмите Ctrl+X .
Использование почтовой программы для отправки и чтения электронной почты
Теперь давайте установим MUA командной строки (почтовый пользовательский агент).
Чтобы отправить электронное письмо, введите
Введите строку темы и основной текст. Чтобы сообщить почте, что вы закончили писать, нажмите Ctrl+D, и почта отправит вам это сообщение электронной почты.
Чтобы читать входящие электронные письма, просто введите mail .
Вот как использовать почтовую программу для управления почтовым ящиком.
- Чтобы прочитать первое сообщение электронной почты, введите 1 . Если отображаются только части сообщения, нажмите клавишу ВВОД, чтобы отобразить оставшуюся часть сообщения.
- Чтобы отобразить заголовки сообщений, начиная с сообщения 1, введите h .
- Чтобы отобразить последние сообщения на экране, введите h$ или z .
- Чтобы прочитать следующее сообщение электронной почты, введите n .
- Чтобы удалить сообщение 1, введите d 1 .
- Чтобы удалить сообщения 1, 2 и 3, введите d 1 2 3 .
- Чтобы удалить сообщения с 1 по 10, введите d 1–10 .
- Чтобы воспроизвести сообщение 1, введите ответ 1 .
- Чтобы выйти из почты, введите q .
Открытые сообщения будут перемещены из /var/mail/ в файл /home/ /mbox. Это означает, что другие почтовые клиенты не могут читать эти сообщения. Чтобы этого не произошло, введите x вместо q, чтобы выйти из почты.
Как увеличить лимит размера вложения
По умолчанию размер вложения не может превышать 10 МБ, на что указывает параметр message_size_limit.
Этот параметр определяет ограничение на размер сообщений электронной почты, исходящих с вашего собственного почтового сервера, и сообщений, поступающих на ваш почтовый сервер.
Чтобы разрешить вложение размером 50 МБ, выполните следующую команду.
Когда команда postconf вызывается с опцией -e (редактировать), она попытается найти параметр ( message_size_limit ) в основном файле конфигурации Postfix ( /etc/postfix/main.cf ) и изменить значение. Если параметр не может быть найден, он добавляет параметр в конец файла.
Обратите внимание, что message_size_limit не должен быть больше, чем mailbox_size_limit , иначе Postfix не сможет получать электронные письма. Значение по умолчанию mailbox_size_limit составляет 51200000 байт (около 48 МБ) в вышестоящем пакете Postfix. В Ubuntu значение по умолчанию равно 0, как видно из
Это означает, что размер почтового ящика не ограничен, и это здорово.
Перезапустите Postfix, чтобы изменения вступили в силу.
При отправке письма с большими вложениями с вашего почтового сервера вам также следует помнить об ограничениях на размер вложений принимающего сервера. Например, вы не можете отправить вложение размером более 25 МБ на адрес Gmail.
Установка имени хоста Postfix
По умолчанию SMTP-сервер Postfix использует имя хоста ОС. Однако имя хоста ОС может измениться, поэтому хорошей практикой является установка имени хоста непосредственно в файле конфигурации Postfix. Откройте основной файл конфигурации Postfix в текстовом редакторе командной строки, таком как Nano.
Сохраните и закройте файл. (Чтобы сохранить файл в текстовом редакторе Nano, нажмите Ctrl+O , затем нажмите Enter для подтверждения. Чтобы выйти, нажмите Ctrl+X .) Перезапустите Postfix, чтобы изменения вступили в силу.
Создание псевдонима электронной почты
Существуют определенные обязательные псевдонимы, которые следует настроить при работе почтового сервера в производственной среде. Вы можете добавить псевдоним электронной почты в файл /etc/aliases, который представляет собой специальный файл таблицы поиска Postfix, использующий формат, совместимый с Sendmail.
По умолчанию в этом файле всего две строки.
Первая строка — это комментарий. Вторая строка — единственное определение псевдонима в этом файле. Левая сторона — псевдоним. Правая сторона — это конечный пункт назначения сообщения электронной почты. Таким образом, электронные письма для [email protected] будут доставляться на [email protected]. Адрес электронной почты администратора почты требуется в соответствии с RFC 2142.
Обычно мы не используем корневой адрес электронной почты. Вместо этого почтмейстер может использовать обычное имя пользователя для доступа к электронной почте. Таким образом, вы можете добавить следующую строку. Замените имя пользователя своим настоящим именем пользователя.
Таким образом, электронные письма для [email protected] будут доставляться на [email protected]. Теперь вы можете сохранить и закрыть файл. Затем перестройте базу данных псевдонимов с помощью команды newaliases
Использование только IPv4
По умолчанию Postfix использует как протоколы IPv4, так и IPv6, как показано на примере:
Если на вашем почтовом сервере нет общедоступного IPv6-адреса, лучше отключить IPv6 в Postfix, чтобы предотвратить ненужные подключения IPv6. Просто выполните следующую команду, чтобы отключить IPv6 в Postfix.
Затем перезапустите Postfix.
Обновление Postfix
Если вы запускаете sudo apt update , затем sudo apt upgrade , и система собирается обновить Postfix, вам может быть предложено снова выбрать тип конфигурации для Postfix. На этот раз вы должны выбрать «Нет конфигурации», чтобы оставить текущий файл конфигурации нетронутым.
Следующий шаг
Поздравляем! Теперь у вас есть базовый почтовый сервер Postfix и он работает. Вы можете отправлять электронные письма в виде простого текста и читать входящие электронные письма с помощью командной строки. В следующей части этой серии руководств мы узнаем, как установить сервер IMAP Dovecot и включить шифрование TLS, что позволит нам использовать настольный почтовый клиент, такой как Mozilla Thunderbird, для отправки и получения электронной почты.
Как всегда, если вы нашли этот пост полезным, подпишитесь на нашу рассылку, чтобы получать больше советов и рекомендаций. Будьте осторожны 🙂
Если вы хотите отправлять или получать электронную почту, у вас должен быть почтовый сервер. В этом посте мы обсудим почтовый сервер Linux и то, как работает SMTP (простой протокол передачи почты), а также другие протоколы, связанные с почтой, такие как почтовый протокол (POP) и протокол доступа к сообщениям в Интернете (IMAP), а также взаимосвязь между ними. их.
Оглавление
SMTP-сервер Linux
SMTP определяет, как отправлять почту с одного хоста на другой; он также независим от системы, что означает, что отправитель и получатель могут использовать разные операционные системы.
SMTP требует только, чтобы сервер мог отправлять прямой текст ASCII на другой сервер, вы можете сделать это, подключившись к серверу через порт 25, который является стандартным портом SMTP.
Сегодня большинство дистрибутивов Linux поставляются с двумя наиболее распространенными реализациями SMTP: sendmail и Postfix.
Sendmail — это известный бесплатный почтовый сервер, но он имеет несколько сложный дизайн и менее безопасен.
Постфикс продвинул реализацию почтового сервера на один шаг вперед; они разработали его с учетом требований безопасности.
Компоненты почтовой службы
Почтовая служба на любом почтовом сервере состоит из трех компонентов:
Почтовый пользовательский агент (MUA): этот компонент, который пользователь видит и с которым взаимодействует, подобно Thunderbird и Microsoft Outlook, эти пользовательские агенты отвечают за чтение почты и позволяют вам создавать почту.
Агент почтового транспорта (MTA): этот компонент отвечает за доставку почты с одного сайта на другой, например Sendmail и Postfix.
Агент доставки почты (MDA): этот компонент отвечает за распространение полученных сообщений на локальном компьютере в соответствующий почтовый ящик пользователя, такой как postfix-maildrop и Procmail.
Настройка почтового сервера
Мы выбрали почтовый сервер Postfix, который сегодня очень популярен и распространен среди системных администраторов.
Postfix — это почтовый сервер по умолчанию в большинстве современных дистрибутивов Linux.
Сначала проверьте, установлен ли он в вашей системе или нет:
Если он не установлен, вы можете установить почтовый сервер Postfix в дистрибутивах на основе Red Hat следующим образом:
Затем запустите службу postfix и включите ее при запуске системы:
В дистрибутивах на основе Debian, таких как Ubuntu, вы можете установить его следующим образом:
Во время установки вам будет предложено выбрать тип конфигурации почтового сервера Postfix.
Среди четырех вариантов «Нет конфигурации», «Интернет-сайт», «Интернет с интеллектуальным хостом», «Спутниковая система» и «Только локальный» мы выберем вариант «Нет конфигурации».
Настройка почтового сервера Linux
После установки почтового сервера Postfix его необходимо настроить; вы можете найти большинство его конфигурационных файлов в каталоге /etc/postfix/.
Вы можете найти основную конфигурацию почтового сервера Postfix в файле /etc/postfix/main.cf.
Этот файл содержит множество параметров, таких как:
имя хоста
Эту опцию можно использовать для указания имени хоста почтового сервера. Это имя хоста в Интернете, на которое Postfix будет получать электронные письма.
мой домен
Синтаксис такой:
мое происхождение
Все электронные письма, отправленные с этого почтового сервера, будут выглядеть так, как если бы они были отправлены с помощью этой опции. Вы можете установить значение $mydomain.
Вы можете использовать любое значение параметра, просто поставьте перед ним символ $, например $mydomain.
моя цель
В этом параметре перечислены домены, которые сервер Postfix использует для входящих сообщений электронной почты.
Он может принимать такие значения:
mail_spool_directory
Почтовый сервер Postfix может использовать два режима доставки:
- Непосредственно в почтовый ящик пользователя.
- Таким образом, в центральный каталог спула почта будет попадать в /var/spool/mail с файлом для каждого пользователя.
мои сети
Эта опция позволяет настроить, какие серверы могут ретранслировать через ваш сервер Postfix.
Этот параметр должен принимать локальные адреса, такие как локальные почтовые скрипты, только на вашем сервере.
В противном случае спамеры могут использовать ваш почтовый сервер для ретрансляции своих сообщений, а ваш почтовый сервер будет занесен в черный список, и в результате вы не сможете получать много писем.
Эта опция имеет следующий синтаксис:
smtpd_banner
Эта переменная задает сообщение, которое сервер отправит клиенту после успешного подключения.
Лучше сменить баннер на что-то, что не даст понять, какой сервер вы используете.
inet_протоколы
Этот параметр указывает версию IP-протокола, используемую для подключения к серверу.
Если вы меняете файлы конфигурации для почтового сервера Postfix, вам необходимо перезагрузить службу:
При вводе любой конфигурации вы можете ошибиться, вы можете проверить наличие ошибок с помощью следующей команды:
Этот инструмент поможет вам точно найти строку и ошибку, чтобы вы могли ее исправить.
Проверка почтовой очереди
Иногда почтовые очереди переполнены сообщениями. Это происходит по многим причинам, таким как сбой сети или любая другая причина, которая может задержать доставку почты.
Чтобы проверить очередь почты на почтовом сервере Linux, используйте следующую команду:
Эта команда показывает почтовую очередь Postfix.
Если ваша очередь переполнена и обработка сообщения занимает несколько часов, вам следует очистить почтовую очередь.
Теперь, если вы проверите свою почтовую очередь, вы обнаружите, что она пуста.
Тестовый почтовый сервер Linux
После правильной настройки почтового сервера Postfix вам следует протестировать его.
Первый шаг — использовать локальный почтовый пользовательский агент, такой как mailx или mail, который является символической ссылкой на mailx.
Попробуйте отправить письмо кому-нибудь еще на том же сервере, если это сработает, отправьте на удаленный сайт.
Попробуйте получить почту с удаленного сайта.
Если у вас возникли проблемы, проверьте журналы. Файл журнала в дистрибутивах на основе Red Hat в файле /var/log/maillog и в дистрибутивах на основе Debian в файле /var/log/mail.log или в соответствии с настройками rsyslogd.
Я рекомендую вам ознакомиться с Linux Syslog Server для получения подробных сведений о журналах и о том, как настроить rsyslogd.
Если у вас все еще есть проблемы, попробуйте проверить настройки DNS и записи MX с помощью сетевых команд Linux.
Защитите почтовые ящики от спама с помощью SpamAssassin
Один из способов борьбы со спамом — сканирование почтовых ящиков с помощью какого-либо инструмента в поисках определенных шаблонов, связанных со спамом.
Одним из лучших решений является SpamAssassin с открытым исходным кодом.
Вы можете установить его следующим образом:
Затем запустите службу и включите ее при запуске:
После установки вы можете проверить конфигурацию в
SpamAssassin определяет, является ли электронное письмо спамом, на основе результатов различных сценариев.
Если сообщение имеет более высокий балл, это означает более высокую вероятность того, что письмо является спамом.
В файле конфигурации параметр required_hits 5 указывает, что SpamAssassin пометит электронное письмо как спам, если его оценка равна пяти или выше.
Параметр report_safe принимает значения 0, 1 или 2. Если установлено значение 0, это означает, что электронная почта, помеченная как спам, отправляется как есть, только заголовки изменяются, чтобы показать, что это спам.
Если он принимает значение 1 или 2, SpamAssassin создает новое отчетное сообщение и отправляет его получателю.
Значение 1 означает, что спам-сообщение закодировано как сообщение с содержимым/rfc822, а значение 2 означает, что сообщение закодировано как текст/обычное содержимое.
Text/plain безопаснее, так как некоторые почтовые клиенты выполняют message/rfc822 и могут заразить клиентский компьютер.
Теперь нам нужно интегрировать его в Postfix. Вероятно, проще всего это сделать с помощью procmail.
Нам нужно создать файл с именем
и добавьте следующее содержимое:
Затем редактируем конфигурационный файл Postfix /etc/postfix/main.cf и меняем
Наконец, перезапустите службы Postfix и SpamAssassin:
Однако SpamAssassin иногда не распознает спам-сообщения, которые привели к заполнению почтовых ящиков спам-сообщениями.
К счастью, вы можете фильтровать сообщения до того, как они попадут на сервер Postfix, с помощью списков «черных дыр» в реальном времени (RBL). Это уменьшит нагрузку на ваш почтовый сервер и сохранит ваш почтовый сервер в чистоте.
Откройте файл конфигурации сервера Postfix /etc/postfix/main.cf, измените параметр smtpd_recipient_restrictions и добавьте следующие параметры, например:
Затем перезапустите сервер postfix:
Вышеупомянутые RBL являются общими; вы можете найти дополнительные списки в Интернете и попробовать их.
Защита SMTP-соединения
Лучше передавать SMTP-трафик через TLS, чтобы защитить его от атаки «Человек посередине» (MITM).
Во-первых, нам нужно сгенерировать сертификат и ключ с помощью команды openssl:
Затем добавьте следующую опцию в файл конфигурации Postfix /etc/postfix/main.cf:
Наконец, перезапустите службу postfix:
Теперь вам нужно выбрать TLS на вашем клиенте при подключении к серверу.
Вы получите предупреждение при отправке письма в первый раз после изменения настройки, поскольку сертификат не подписан.
Использование сертификатов Let’s Encrypt
Let’s Encrypt – это бесплатный поставщик SSL-сертификатов, который позволяет вам шифровать трафик.
Вместо использования самозаверяющих сертификатов, которые раздражают пользователей из-за того, что им доверяют, вы можете воспользоваться этим хорошим решением.
Сначала установите letsencrypt:
Или, если вы используете дистрибутив на основе Debian, вы можете использовать следующую команду:
Затем запустите letsencrypt следующим образом:
После ответов на вопросы о контактном адресе электронной почты, домене почтового сервера и лицензии теперь все должно быть в порядке.
Сертификаты будут в:
И последнее, что вам нужно сделать, это заставить postfix использовать эти сертификаты, вы можете использовать следующие команды:
Наконец, перезапустите сервер postfix:
Основы протоколов POP3 и IMAP
До сих пор мы видели, как почтовый SMTP-сервер без проблем отправляет и получает электронные письма, но рассмотрим следующие ситуации:
- Пользователям нужны локальные копии электронной почты для просмотра в автономном режиме.
- Формат файла mbox не поддерживается. Формат mbox используется многими почтовыми агентами, такими как mailx и mutt.
- Пользователи не могут оставаться подключенными к быстрой сети, чтобы получить локальную копию для чтения в автономном режиме.
- Некоторые почтовые серверы не предоставляют доступ к общим почтовым папкам из соображений безопасности.
Для обработки этих случаев следует использовать протоколы доступа к почте.
Наиболее распространенными двумя популярными протоколами доступа к почте являются почтовый протокол (POP) и протокол доступа к сообщениям в Интернете (IMAP).
Идея, лежащая в основе протокола POP, очень проста: центральный почтовый сервер Linux все время находится в сети, получает и хранит электронные письма для всех пользователей. Все полученные электронные письма помещаются в очередь на сервере до тех пор, пока пользователь их не получит.
Когда пользователь хочет отправить электронное письмо, почтовый клиент обычно ретранслирует его через центральный почтовый сервер Linux через SMTP.
Обратите внимание, что сервер SMTP и сервер POP могут без проблем находиться в одной системе. Большинство серверов делают это сегодня.
Не хватало таких функций, как хранение основной копии электронной почты пользователя на сервере, что привело к разработке IMAP.
При использовании IMAP ваш почтовый сервер Linux будет поддерживать три режима доступа:
- Интерактивный режим аналогичен прямому доступу файловой системы к почтовому серверу Linux.
- Офлайн-режим аналогичен работе протокола POP, когда клиент отключается от сети, за исключением случаев получения электронной почты. В этом режиме сервер обычно не сохраняет копию сообщения электронной почты.
- Отключенный режим работает, позволяя пользователям хранить кэшированные копии своих сообщений электронной почты, а сервер сохраняет копию сообщения электронной почты.
Существует несколько реализаций IMAP и POP; наиболее популярным является сервер Dovecot, поддерживающий оба протокола.
POP3, POP3S, IMAP и IMAPS прослушивают порты 110, 995, 143 и 993 соответственно.
Установка Dovecot
Большинство дистрибутивов Linux поставляются с предустановленным Dovecot. Однако вы можете установить Dovecot в дистрибутивах на основе Red Hat следующим образом:
Дистрибутивы на основе Debian предоставляют функции IMAP и POP3 в двух отдельных пакетах, вы можете установить их следующим образом:
Вам будет предложено создать самозаверяющие сертификаты для использования IMAP и POP3 через SSL/TLS. Выберите «Да» и введите имя хоста для вашей системы при появлении запроса.
Затем вы можете запустить службу и включить ее при запуске следующим образом:
Настроить голубятню
Основной файл конфигурации Dovecot
Некоторые дистрибутивы Linux помещают конфигурацию под
каталог и используйте директиву include, чтобы включить настройки в файлы.
Вы можете использовать следующий список параметров для настройки Dovecot:
протоколы: протоколы, которые вы хотите поддерживать.
lmtp означает локальный протокол передачи почты.
listen: IP-адреса для прослушивания.
Звездочка означает все интерфейсы ipv4, а :: означает все интерфейсы ipv6
userdb: база данных пользователей для аутентификации пользователей.
passdb: база данных паролей для аутентификации пользователей.
mail_location: эта запись в файле /etc/dovecot/conf.d/10-mail.conf:
Защитить голубятню
Dovecot поставляется с общими сертификатами SSL и файлами ключей. Посмотрите на этот файл:
Когда пользователь пытается подключиться к серверу dovecot, отображается предупреждение, поскольку сертификаты не подписаны. При желании вы можете приобрести сертификат в центре сертификации.
Или, если вы используете сертификаты Let’s Encrypt, вместо этого вы можете указать на них:
Не забудьте открыть порты сервера dovecot в брандмауэре iptables, добавив правила iptables для портов 110, 995, 143, 993, 25.
Или, если вы используете firewalld, вы можете сделать следующее:
И снова для устранения неполадок вы проверяете файлы журналов /var/log/messages, /var/log/maillog и /var/log/mail.log.
Почтовый сервер Linux — один из самых простых в работе серверов, особенно почтовый сервер Postfix.
Читайте также: