Сервер

Почтовый сервер linux: Почтовый сервер на Linux / Блог компании RUVDS.com / Хабр

Содержание

Почтовый сервер на Linux / Блог компании RUVDS.com / Хабр

Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.

Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.

Начнём с SMTP-сервера на Linux

SMTP-сервер

Протокол SMTP (Simple Mail Transfer Protocol) определяет правила пересылки почты между компьютерами, при этом, он не регламентирует правила хранения или визуализации сообщений. Это системно-независимый протокол, то есть, отправитель и получатель почты могут иметь различные ОС.

SMTP требует лишь чтобы сервер был способен отправлять обычный ASCII-текст другому серверу, используя порт 25, который является стандартным портом SMTP.

Сегодня в большинство дистрибутивов Linux встроены две наиболее распространённых реализации SMTP: sendmail и postfix.

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

Postfix — система немного более продвинутая, при разработке этого почтового сервера особое внимание было уделено вопросам безопасности.

Компоненты почтовой службы

Типичная почтовая служба состоит из трёх основных компонентов:

Почтовый клиент, который ещё называют почтовым агентом (Mail User Agent, MUA). Именно с ним взаимодействует пользователь, например — это почтовые клиенты Thunderbird или Microsoft Outlook. Они позволяют пользователю читать почту и писать электронные письма.

Почтовый сервер, или агент пересылки сообщений (Mail Transport Agent, MTA). Этот компонент ответственен за перемещение электронной почты между системами, этим занимаются, например, Sendmail и Postfix.

Агент доставки электронной почты (Mail Delivery Agent, MDA). Этот компонент ответственен за распределение полученных сообщений по почтовым ящикам пользователей. Например, это Postfix-maildrop и Procmail.

Установка почтового сервера

Для настройки нашего сервера был выбран пакет Postfix. Это — популярный среди системных администраторов выбор, стандартный почтовый сервер в большинстве современных дистрибутивов Linux.

Начнём, проверив, установлен ли Postfix в системе:

$ rpm -qa | grep postfix

Если обнаружить Postfix не удалось, установить его, например, в дистрибутивах, основанных на Red Hat, можно с помощью такой команды:

$ dnf -y install postfix

Затем запустим службу postfix и организуем её автозапуск при загрузке системы:

$ systemctl start postfix
$ systemctl enable postfix

В дистрибутивах, основанных на Debian, вроде Ubuntu, установить Postfix можно так:

$ apt-get -y install postfix

В ходе установки будет предложено выбрать конфигурацию сервера. Среди доступных четырёх вариантов (No configuration, Internet site, Internet with smarthost, Satellite system and Local only), мы выберем No configuration, что приведёт к созданию необходимых Postfix учётных записей пользователя и группы.

Настройка сервера

После установки почтового сервера Postfix, его нужно настроить. Большинство конфигурационных файлов находятся в директории /etc/postfix/.

Главный конфигурационный файл Postfix можно найти по адресу /etc/postfix/main.cf. Здесь имеется множество параметров, рассмотрим самые важные.

myhostname

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

Типичные примеры имён хостов почтовых серверов — mail.example.com и smtp.example.com.

Настраивают этот параметр так:

myhostname = mail.example.com

mydomain

Эта настройка позволяет указать почтовый домен, обслуживанием которого занимается сервер, например — example.com:

mydomain = example.com

myorigin

Этот параметр позволяет указать доменное имя, используемое в почте, отправленной с сервера. Присвоим ему значение $mydomain:

myorigin = $mydomain

В настройках можно ссылаться на параметры, добавляя знак $ перед именем переменной.

mydestination

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

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

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

mail_spool_directory

Почтовый сервер Postfix может использовать два режима доставки почты:

  • Непосредственно в почтовый ящик пользователя.
  • В центральную директорию очередей, при этом почта попадает в папку /var/spool/mail, где имеется файл для каждого пользователя.
mail_spool_directory = /var/spool/mail

mynetworks

Эта переменная — важный параметр настройки. Она позволяет указывать то, какие сервера могут пересылать почту через сервер Postfix.

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

Если неправильно настроить параметр mynetworks, спамеры вполне смогут воспользоваться сервером как ретранслятором почты. Это очень быстро приведёт к тому, что какая-нибудь система борьбы со спамом поместит его в один из чёрных списков, вроде DNS Blacklist (DNSBL), или Realtime Blackhole List (RBL). Как только сервер попадёт в подобный список, очень немногие смогут получить письма, отправленные с его помощью.

Вот как может выглядеть настройка этого параметра:

mynetworks = 127.0.0.0/8, 192.168.1.0/24

smtpd_banner

Эта переменная позволяет задать ответ, который возвращает сервер при подключении клиентов.

Лучше всего поменять это значение так, чтобы оно не указывало на то, какой именно используется почтовый сервер.

inet_protocols

Эта переменная позволяет задавать версию IP, которую будет использовать Postfix при установлении соединений.

inet_protocols = ipv4

Для того, чтобы изменения, внесённые в конфигурационные файлы, вступили в силу, службу Postfix надо перезагрузить:

$ systemctl reload postfix

На самом деле, в конфигурационном файле Postfix можно ещё много чего настроить. Например — управлять уровнями безопасности, задавать опции отладки и другие параметры.

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

$ postfix check

С помощью этого средства можно найти строку, в которой допущена ошибка, и исправить её.

Проверка очереди сообщений

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

Для того чтобы проверить очередь сообщений, воспользуйтесь такой командой:

$ mailq

Она выведет сообщения, находящиеся в очереди. Если очередь переполнена и на отправку сообщения уходит по несколько часов, можно инициировать процесс отправки сообщений такой командой:

$ postfix flush

Если теперь проверить очередь, она должна оказаться пустой.

Тестирование почтового сервера

После настройки сервера на Postfix, его надо протестировать. Первый шаг в тестировании — использование локального почтового клиента, вроде mailx или mail (это — символьная ссылка на mailx).

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

$ echo "This is message body" | mailx -s "This is Subject" -r "likegeeks<[email protected]>" -a /path/to/attachment [email protected]

Затем попробуйте принять письмо, отправленное с другого сервера.

Если вы столкнётесь с проблемами — проверьте логи. В дистрибутивах, основанных на Red Hat, то, что вам надо, можно найти по адресу /var/log/maillog. В Debian-дистрибутивах нужный файл можно найти здесь: /var/log/mail.log, или же по пути, заданному в настройках rsyslogd. Вот, если нужно, материал о логировании в Linux, и о том, как настраивать rsyslogd.

Если проблемы всё ещё не решены, попытайтесь проверить настройки DNS, взгляните на MX-записи, используя сетевые команды Linux.

Борьба со спамом

Существует немало решений для выявления среди почтовых сообщений нежелательных писем — спама. Одно из лучших — проект с открытым исходным кодом SpamAssassin.
Установить его можно так:

$ dnf -y install spamassassin

Затем надо запустить соответствующую службу и добавить её в автозагрузку:

$ systemctl start spamassassin
$ systemctl enable spamassassin

После установки SpamAssassin, взгляните на его настройки в файле /etc/mail/spamassassin/local.cf.

SpamAssassin умеет отличать обычные письма от спама, основываясь на результатах исследования корреспонденции с помощью различных скриптов. Результаты проверок оцениваются в баллах.

Чем выше итоговая оценка письма — тем выше и вероятность того, что оно является спамом.

В конфигурационном файле параметр required_hits 5 указывает на то, что SpamAssassin пометит сообщение как спам, если его рейтинг составляет 5 или выше.

Параметр report_safe принимает значения 0, 1, или 2. Установка его в 0 означает, что письма, помеченные как спам, пересылаются в исходном виде, но их заголовок модифицируется с указанием на то, что они являются спамом.

Если этот параметр установлен в значение 1 или 2, SpamAssassin сгенерирует отчёт и отправит его получателю.

Разница между значениями 1 и 2 заключается в том, что в первом случае спам-сообщение будет закодировано в формате message/rfc822, а во втором — в формате text/plain.

Кодирование text/plain безопаснее, так как некоторые почтовые клиенты исполняют сообщения формата message/rfc822, что при определённых условиях может привести к заражению клиентского компьютера вирусом.

После установки и настройки SpamAssassin, нужно интегрировать его с Postfix. Пожалуй, легче всего это сделать с помощью использования procmail.

Создадим файл /etc/procmailrc и добавим в него следующее:

:0 hbfw
| /usr/bin/spamc 

Затем отредактируем файл настроек Postfix — /etc/postfix/main.cf, задав параметр mailbox_command следующим образом:

mailbox_command = /usr/bin/procmail

И, наконец, перезапустим службы Postfix и SpamAssassin:

$ systemctl restart postfix
$ systemctl restart spamassassin

Надо сказать, что SpamAssassin не всегда распознаёт спам, что ведёт к наполнению почтовых ящиков ненужными письмами.

К счастью, сообщения, прежде чем они достигнут почтового сервера на Postfix, можно фильтровать, используя Realtime Blackhole Lists (RBLs). Это снизит нагрузку на почтовый сервер и поможет сохранить его в чистоте.

Откройте конфигурационный файл Postfix /etc/postfix/main.cf, измените параметр smtpd_recipient_restrictions и настройте другие параметры следующим образом:

strict_rfc821_envelopes = yes
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unverified_recipient_reject_code = 554
 
smtpd_recipient_restrictions =
reject_invalid_hostname,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.sorbs.net,
permit 

Затем перезагрузите сервер Postfix:

$ systemctl restart postfix

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

Защита SMTP-соединения

Лучше всего передавать SMTP-трафик по TLS для защиты его от атаки через посредника.
Для начала нужно сгенерировать сертификат и ключ с использованием команды openssl:

$ openssl genrsa -des3 -out mail.key
$ openssl req -new -key mail.key -out mail.csr
$ cp mail.key mail.key.original
$ openssl rsa -in mail.key.original -out mail_secure.key
$ openssl x509 -req -days 365 -in mail.csr -signkey mail_secure.key -out mail_secure.crt
$ cp mail_secure.crt /etc/postfix/
$ cp mail_secure.key /etc/postfix/

Затем надо добавить в файл настроек Postfix /etc/postfix/main.cf следующее:

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/mail_secure.crt
smtpd_tls_key_file = /etc/postfix/mail_secure.key
smtp_tls_security_level = may

И, наконец, нужно перезагрузить службу Postfix:

$ systemctl restart postfix

Теперь, при подключении клиента к серверу, нужно выбрать TLS. Тут вы, при первой отправке почты после изменении настроек, увидите предупреждение, так как сертификат не подписан.

Основы протоколов POP3 и IMAP

Итак, мы наладили процесс отправки и получения электронных писем по SMTP, но на этом организация полноценной почтовой службы не заканчивается. Рассмотрим следующие ситуации:

  • Пользователям нужны локальные копии электронных писем для их просмотра без подключения к интернету.
  • Почтовые клиенты пользователей не поддерживают формат файлов mbox. Это — простой текстовый формат, который могут читать многие консольные почтовые клиенты, вроде mailx и mutt.
  • Пользователи не могут постоянно пользоваться быстрым подключением для доступа к файловой системе сервера и для работы с mbox-файлами, в итоге нужно сделать локальную копию для работы с ними без подключения к сети.
  • Ограничения безопасности указывают на то, чтобы у пользователей не было прямого доступа к шлюзу электронной почты, например, не допускается работа с общедоступными папками очередей сообщений.

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

Сильнее всего распространены два популярных протокола доступа к почте — POP (Post Office Protocol), и IMAP (Internet Message Access Protocol).

В основе POP лежит очень простая идея. Центральный почтовый сервер на Linux всё время подключён к интернету, он получает и сохраняет письма для всех пользователей. Все полученные письма остаются в очереди на сервере до тех пор, пока пользователь не подключится к нему по протоколу POP и не загрузит письма.

Когда пользователь хочет отправить письмо, почтовый клиент обычно передаёт его через центральный сервер по SMTP.

Обратите внимание на то, что SMTP-сервер и POP-сервер могут без проблем работать на одной и той же машине. В наши дни это — обычная практика.

Возможности, вроде хранения исходных экземпляров писем пользователей на сервере с хранением на клиенте лишь кэшированных копий, в POP отсутствуют. Это привело к разработке протокола IMAP.

Используя IMAP, сервер будет поддерживать три режима доступа к почте:

  • Онлайн-режим похож на прямой доступ к файловой системе на почтовом сервере.
  • Оффлайн-режим похож на то, как работает POP, когда клиент отключается от сети после получения своих писем. В этом режиме сервер обычно не хранит копии писем.
  • Автономный режим позволяет пользователям хранить кэшированные копии своих писем, а сервер так же хранит копии этих писем.

Существуют различные реализации IMAP и POP, в этой сфере весьма популярен сервер Dovecot, который позволяет работать с обоими протоколами.

Сервера POP3, POP3S, IMAP, и IMAPS слушают, соответственно, порты 110, 995, 143, и 993.

Установка Dovecot

Большинство дистрибутивов Linux содержат предустановленный Dovecot, однако, его можно установить и самостоятельно. В системах, основанных на Red Hat, это делается так:

$ dnf -y install dovecot

В системах, основанных на Debian, функционал IMAP и POP3 предоставляются в двух разных пакетах:

$ apt-get -y install dovecot-imapd dovecot-pop3d

Тут вам предложат создать самозаверенный сертификат для работы с IMAP и POP3 по SSL/TLS. Ответьте на вопрос yes и, при появлении соответствующего запроса, введите имя хоста вашей системы.

Затем можно запустить соответствующую службу и добавить её в автозагрузку:

$ systemctl start dovecot
$ systemctl enable dovecot

Настройка Dovecot

Главный файл настроек Dovecot расположен по адресу /etc/dovecot/dovecot.conf. В некоторых дистрибутивах Linux этот файл размещается в папке /etc/dovecot/conf.d/ и, для подключения файлов настроек, используется директива include.

Вот некоторые из параметров, используемых для настройки Dovecot.

protocols: протоколы, которые надо поддерживать.

protocols = imap pop3 lmtp

Здесь lmtp означает Local Mail Transfer Protocol. listen: IP-адрес, который будет слушать сервер.

listen = *, ::

Здесь звёздочка означает все интерфейсы IPv4, двойное двоеточие означает все интерфейсы IPv6.

userdb: база данных пользователей для аутентификации.

userdb {
 driver = pam
}

mail_location: это запись в файле /etc/dovecot/conf.d/10-mail.conf. Выглядит она так:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

Dovecot поставляется со стандартными SSL-сертификатами и файлами ключей, которые используются в файле /etc/dovecot/conf.d/10-ssl.conf.

ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

Когда пользователь пытается подключиться к Dovecot, сервер покажет предупреждение, так как сертификаты не подписаны. Если нужно, подписанные сертификаты можно приобрести в подходящем центре сертификации.

Не забудьте открыть порты сервера Dovecot на файрволе.

$ iptables  -A INPUT -p tcp --dport 110 -j ACCEPT
$ iptables  -A INPUT -p tcp --dport 995 -j ACCEPT
$ iptables  -A INPUT -p tcp --dport 143 -j ACCEPT
$ iptables  -A INPUT -p tcp --dport 993 -j ACCEPT

И про SMTP-порт не забудьте.

$ iptables -A INPUT -p tcp --dport 25 -j ACCEPT

Затем сохраните правила. Если хотите освежить в памяти особенности работы с iptables в Linux, взгляните на этот материал.
Или, если вы используете firewalld, можете поступить так:

$ firewall-cmd --permanent --add-port=110/tcp --add-port=995
$ firewall-cmd --permanent --add-port=143/tcp --add-port=993
$ firewall-cmd --reload

А, если что-то пошло не так, посмотрите лог-файлы /var/log/messages, /var/log/maillog, и /var/log/mail.log.

Итоги

Теперь вы можете настроить почтовую службу на своём Linux-сервере. Как видите, много времени это не займёт. Конечно, у рассмотренных здесь пакетов, вроде Postfix, уйма настроек, но если вы освоили описанную здесь последовательность действий и разобрались с основами, то всё, что вам понадобится, несложно будет выяснить из документации.

Уважаемые читатели! А как вы настраиваете почтовые сервера на Linux?

Как настроить почтовый сервер в Linux

Сейчас многие пользователи предпочитают устанавливать себе на компьютер специализированный почтовый клиент, чтобы максимально быстро и просто управлять электронными письмами. В большинстве случаев сразу же после инсталляции такой программы можно переходить к прямому взаимодействию с ней, но это не относится к определенному кругу юзеров операционной системы Linux. Здесь потребуется произвести добавление и настройку почтового сервера, который обеспечивает прием и передачу сообщений. Это сложная задача, но решаемая благодаря подробным руководствам. Мы хотим ознакомить вас с такими инструкциями, детально расписав каждый необходимый для выполнения шаг.

Настраиваем почтовый сервер в Linux

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

SMPT и компоненты почтовой службы

Некоторых пользователей интересует вопрос передачи электронных писем по интернету, связанных с необходимостью использования разных составляющих, отвечающих за определенные действия. Сортировка и пересылка подобной информации — сложный процесс, осуществляемый специальными алгоритмами. Самым важным компонентом этой цепи выступает SMPT (Simple Mail Transfer Protocol), который и является почтовым сервером. Он отвечает за соблюдение установленных правил пересылки, соответственно, выполняя ее. Без сервера остальные звенья цепи вообще не смогут работать. Серверы обмениваются информацией между собой, а значит, задействуют для этого порт. Чаще всего им выступает номер 25. Сами же разновидности серверов бывают разными, а сегодня за пример мы возьмем более продвинутый Postfix. Теперь рассмотрим общую структуру системы.

  • Почтовый клиент. Это та программа, через которую вы получаете и просматриваете свои письма. Самый банальный пример — Microsoft Outlook. Реализация графического интерфейса позволяет даже самому начинающему пользователю управлять своей учетной записью, даже не задумываясь о том, что скрыто за простыми кнопками.
  • Почтовый сервер. Выше мы уже сказали, что этот компонент выполняет опцию пересылки. Его можно назвать своеобразным почтальоном в мире интернета.
  • Агент доставки электронной почты. Последнее звено цепи, которое еще называется Mail Delivery Agent или сокращенно MDA. Именно этот инструмент отвечает за то, чтобы письмо было доставлено конкретному адресанту, а не заблудилось на просторах огромного сервера. В нашем случае подобным помощником будет выступать Postfix-maildrop.

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

Шаг 1: Инсталляция Postfix

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

  1. Все дальнейшие действия будут осуществляться через стандартный «Терминал» путем ввода туда команд, поэтому запустите его удобным образом, например, через меню приложений.
  2. Введите команду sudo apt-get -y install postfix, если вы владеете дистрибутивом Debian / Mint / Ubuntu. Для сборок, которые основаны на RedHat, потребуется указать dnf -y install postfix.
  3. Данное действие будет производиться от имени суперпользователя, следовательно, придется подтвердить права, указав пароль учетной записи. Учтите, что вводимые таким образом символы на экране не отображаются.
  4. Запустится процесс получения и распаковки файлов. Не прерывайте его и не выполняйте других действий, чтобы случайно не наткнуться на ошибки.
  5. Откроется отдельное окно настройки пакета. Здесь ознакомьтесь с представленными данными, чтобы далее уже знать, какой именно параметр следует выбрать.
  6. Мы предлагаем использовать общий тип «Без настройки», чтобы в будущем самостоятельно задать каждый параметр.
  7. После операция инсталляции продолжится, и вы будете уведомлены о его окончании, когда появится новая строка ввода.
  8. По завершении процесса добавьте новую службу сервера в автозагрузку, введя systemctl start postfix.
  9. Это действие тоже следует подтвердить вводом пароля от учетной записи суперпользователя.
  10. Теперь активируйте ее через systemctl enable postfix, чтобы приступить к настройке.
  11. В этот раз придется ввести пароль сразу несколько раз, поскольку подтверждение подлинности будут запрашивать разные компоненты одновременно.

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

Шаг 2: Настройка установленного сервера

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

  1. Как известно, конфигурация в Linux осуществляется путем изменения строк в специальных файлах. Для этого используется удобный текстовый редактор. Новичкам может быть сложно освоить vi, поэтому мы советуем установить сначала более простое решение. Для этого введите в консоли команду sudo apt install nano и нажмите на Enter.
  2. Подтвердите уведомление о необходимости скачивания архивов и ожидайте конца загрузки.
  3. После используйте команду sudo nano /etc/postfix/main.cf, чтобы запустить конфигурационный файл.
  4. Здесь обратим внимание лишь на главные параметры. myhostname — после знака = вам следует указать имя хоста почтовой системы в интернете, чтобы сервер мог принимать и отправлять письма.
  5. Строка mydomain отвечает за обслуживание домена, на котором располагается сервер.
  6. В параметре myorigin указывается используемое доменное имя. Мы предлагаем сохранить привычный для многих вид myorigin = $mydomain.
  7. mydestination — последний параметр, на который хотим обратить внимание. Эта строка определяет конечные доменные имена, куда будут доставляться письма. Указывайте значения в соответствии со своими потребностями.
  8. После внесения всех изменений нажмите на Ctrl + O, чтобы сохранить файл.
  9. Не меняйте его название, а просто нажмите на Enter.
  10. Завершите работу в текстовом редакторе через Ctrl + X.
  11. Теперь потребуется перезагрузить сервер, чтобы все изменения вступили в силу. Сделайте это в «Терминале», написав команду systemctl reload postfix.
  12. У вас не получится сразу же узнать, были ли допущены какие-то ошибки в конфигурации, поэтому для этого понадобится запускать средство проверки через postfix check. В новых строках отобразятся сведения о текущем состоянии сервера, и по ним можно определить корректность работы.

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

# /usr/local/etc/postfix/main.cf
# Config file for postfix mail system.
#

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix

mail_owner = postfix
default_privs = nobody
myhostname = yourhost.yourdomain.com
mydomain = yourdomain.com
mynetworks = 192.168.1.0/24, 127.0.0.0/8

myorigin = $mydomain
inet_interfaces = $myhostname, localhost
mydestination = $myhostname, localhost.$mydomain, $mydomain
default_transport = smtp
alias_database = hash:/etc/aliases
mailbox_command = /usr/local/bin/procmail

smtpd_banner = $myhostname ESMTP READY
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_address, reject_non_fqdn_sender, reject_invalid_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_mx_backup, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, check_relay_domains, reject_unknown_client, reject

local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
debug_peer_level = 2
debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5

После останется просто сохранить все эти изменения и внести правки, соответствующие вашим требованиям.

Шаг 3: Проверка очереди сообщений

Давайте вкратце остановимся на проверке очереди сообщений почтового сервера. Иногда количество писем на отправке становится огромным из-за различных сбоев, связанных с невозможностью их разослать. В таких случаях требуется производить очистку, чтобы наладить ситуацию. Для проверки текущей очереди используйте команду mailq. В новых строках отобразятся абсолютно все сообщения, находящиеся в ожидании на данный момент.

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

В качестве примера отметим одну опцию, которая выглядит следующим образом:

$ echo "This is message body" | mailx -s "This is Subject" -r "likegeeks" -a /path/to/attachment [email protected]

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

Шаг 4: Настройка безопасности

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

Подробнее:
Установка SSH-server в Ubuntu
Настройка SSH в CentOS 7
Настройка SSH в Ubuntu

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

openssl genrsa -des3 -out mail.key
openssl req -new -key mail.key -out mail.csr
cp mail.key mail.key.original
openssl rsa -in mail.key.original -out mail_secure.key
openssl x509 -req -days 365 -in mail.csr -signkey mail_secure.key -out mail_secure.crt
cp mail_secure.crt /etc/postfix/
cp mail_secure.key /etc/postfix/

Они отвечают за генерацию и получения ключа безопасности. Дополнительно потребуется внести изменения в файл /etc/postfix/main.cf, добавив такие строки:

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/mail_secure.crt
smtpd_tls_key_file = /etc/postfix/mail_secure.key
smtp_tls_security_level = may

После выполнения подобной процедуры не забудьте перезагрузить и проверить сервер, чтобы убедиться в корректности его функционирования.

Шаг 5: Установка и конфигурация Dovecot

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

  1. В консоли введите команду sudo apt-get -y install dovecot-imapd dovecot-pop3d и нажмите на Enter. Для обладателей RedHat команда выглядит немного иначе: dnf -y install dovecot.
  2. Подтвердите права суперпользователя, введя пароль в новой строке.
  3. Ожидайте окончания получения и распаковки архивов. Во время этой операции также будут обновлены правила профиля OpenSSH.
  4. Добавьте рассматриваемый инструмент в автозагрузку через systemctl start dovecot.
  5. Подтвердите это действие, написав пароль в появившемся окне.
  6. Вставьте команду systemctl enable dovecot, чтобы запустить Dovecot.
  7. Теперь вы можете открыть конфигурационный файл для настройки через sudo nano /etc/dovecot/dovecot.conf.
  8. Изначально в этом файле не будет практически никаких параметров, поэтому их понадобится вставлять самостоятельно. Не станем углубляться в тонкости настройки, а лишь предоставим самые базовые и необходимые строки, который вы можете скопировать, вставить и сохранить файл.

    protocols = imap pop3 lmtp
    listen = *, ::

    userdb {
    driver = pam
    }

    mail_location = mbox:~/mail:INBOX=/var/mail/%u

    ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
    ssl_key = </etc/pki/dovecot/private/dovecot.pem

    Для межсетевого экрана потребуется отдельно ввести следующее:

    $ iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    $ iptables -A INPUT -p tcp --dport 995 -j ACCEPT
    $ iptables -A INPUT -p tcp --dport 143 -j ACCEPT
    $ iptables -A INPUT -p tcp --dport 993 -j ACCEPT

    $ iptables -A INPUT -p tcp —dport 25 -j ACCEPT

    Для FirewallD эта структура выглядит немного иначе:

    $ firewall-cmd --permanent --add-port=110/tcp --add-port=995
    $ firewall-cmd --permanent --add-port=143/tcp --add-port=993
    $ firewall-cmd --reload

Как видите, процесс конфигурации действительно сложный, однако при соблюдении инструкций все пройдет быстро и без каких-либо трудностей. К сожалению, в рамках одной статьи просто невозможно уместить все моменты взаимодействия с Postfix, поэтому советуем изучить материалы на официальном сайте, если в этом возникла необходимость.

Перейти на официальный сайт почтового сервера Postfix

Мы рады, что смогли помочь Вам в решении проблемы.

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

ДА НЕТ

Настройка почтового сервера Linux Ubuntu 16.04


Подготовка и инструкция:

Все команды мы будем выполнять от имени пользователя root, поэтому мы не будем использовать в командах sudo для повышения прав, если вы выполняете под своим пользователям добавляйте sudo в начале команды.

Необходимо чтобы был установлен mysql server | apache2 | php, если его нет необходимо установить:

apt-get install mysql-server
apt-get install apache2
apt-get install php php-mysql mcrypt php-mcrypt php-curl
phpenmod mcrypt && a2enmod ssl && a2enmod rewrite && apt install php-mbstring && service apache2 restart



apt-get install mysql-server

apt-get install apache2

apt-get install php php-mysql mcrypt php-mcrypt php-curl

phpenmod mcrypt && a2enmod ssl && a2enmod rewrite && apt install php-mbstring && service apache2 restart

Также мы будем использовать Midnight Commander, если у вас его нет необходимо установить следующей командой:

apt-get update
apt-get install mc



apt-get update

apt-get install mc

Установка пакетов почтового сервера:

* Все команды будут выполняться от имени root, если вы выполняете под своим пользователям добавляйте sudo в начале команды.

apt-get update
apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy
apt-get install dovecot-common dovecot-imapd dovecot-pop3d dovecot-mysql
apt-get install php-imap



apt-get update

apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy

apt-get install dovecot-common dovecot-imapd dovecot-pop3d dovecot-mysql

apt-get install php-imap

Создание пользователя для работы с почтой:

useradd -r -u 1150 -g mail -d /var/vmail -s /sbin/nologin -c ‘Virtual Mailbox’ vmail



useradd -r -u 1150 -g mail -d /var/vmail -s /sbin/nologin -c ‘Virtual Mailbox’ vmail

mkdir -p /var/vmail
chown vmail:mail /var/vmail
chmod 770 /var/vmail



mkdir -p /var/vmail

chown vmail:mail /var/vmail

chmod 770 /var/vmail

Создание базы mysql

* Необходимо чтобы был установлен mysql-server, введите команды ниже и пароль от пользователя root в mysql.

mysql -u root -p
Enter password:



mysql -u root -p

Enter password:

* Необходимо заменить MysqlPasswordForMailBase на ваш пароль cгенерированный либо придуманный для пользователя mail в mysql:

CREATE DATABASE mail;
GRANT ALL PRIVILEGES ON mail.* TO mail@localhost IDENTIFIED BY ‘MysqlPasswordForMailBase’;
exit



CREATE DATABASE mail;

GRANT ALL PRIVILEGES ON mail.* TO mail@localhost IDENTIFIED BY ‘MysqlPasswordForMailBase’;

exit

Устанавливаем postfixadmin систему управления ящиками через веб-интерфейс:

http://postfixadmin.sourceforge.net/

Переходим в директорию

* Пример команды скачивания файла в текущую директорию:

wget https://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-3.1/postfixadmin-3.1.tar.gz/download



wget https://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-3.1/postfixadmin-3.1.tar.gz/download

Переименовываем полученный файл в postfixadmin.tar.gz:

mv download postfixadmin.tar.gz



mv download postfixadmin.tar.gz

Распаковываем файл:

tar -xzvf /var/www/postfixadmin.tar.gz



tar -xzvf /var/www/postfixadmin.tar.gz

Просмотрим список директорий и файлов в текущей папке:

Переименовываем папку в postfixadmin, имя вашей папки может отличаться смотрите результат команды ls -l:

mv postfixadmin-3.1 postfixadmin



mv postfixadmin-3.1 postfixadmin

Переходим в директорию и выставляем права 770 и владельца root:www-data, на директорию postfixadmin также нужно выставить такие значения:

chown www-data:www-data /var/www/postfixadmin
chmod 770 /var/www/postfixadmin
cd /var/www/postfixadmin/
chown -R www-data:www-data .
chmod -R 770 *



chown www-data:www-data /var/www/postfixadmin

chmod 770 /var/www/postfixadmin

cd /var/www/postfixadmin/

chown -R www-data:www-data .

chmod -R 770 *

Настраиваем apache:

cd /etc/apache2/conf-enabled
:>postfixadmin.conf



cd /etc/apache2/conf-enabled

:>postfixadmin.conf

Вставляем в файл:

Alias /postfix /var/www/postfixadmin

<Directory «/var/www/postfixadmin»>
Options FollowSymLinks
DirectoryIndex index.php
Require all granted
</Directory>



Alias /postfix /var/www/postfixadmin

 

<Directory «/var/www/postfixadmin»>

   Options FollowSymLinks

   DirectoryIndex index.php

   Require all granted

</Directory>

Перезапускаем Apache:

Запуск конфигурирования почтового демона exim:

dpkg-reconfigure exim4-config



dpkg-reconfigure exim4-config

1. Тип конфигурации
интернет-сайт; приём и отправка почты напрямую, используя SMTP
internet site; mail is sent and received directly using SMTP
2. Почтове имя
mydomain.ru
3. Список IP-адресов, с которых Exim ожидает подключение
Оставляем пустым – ждем почту с любых адресов
4. Список доменов получателей
mydomain.ru;mydomain2.ru
5. Домены для релея
Оставляем пустым – не будем релеить почту.
6. IP-адреса, с которых разрешён релей.
Оставляем пустым.
7. Сокращать кол-во DNS-запросов до минимума
Нет
8. Место доставки локальной почты
mbox формат в /var/mail/
9. Разделить конфигурацию на маленькие файлы
Нет
10. Получатель почты, адресованной root и postmaster
root

Копируем в файл exim4.conf содержимое нижнего блока:


Для начала создадим файл:

cd /etc/exim4/
:>exim4.conf



cd /etc/exim4/

:>exim4.conf

* Необходимо заменить MysqlPasswordForMailBase на пароль от вашего пользователя mail в mysdl который мы создали выше и заменить mydomain.ru на ваш:

disable_ipv6=true
primary_hostname = mydomain.ru
qualify_domain = mydomain.ru
qualify_recipient = mydomain.ru

hide mysql_servers = localhost/mail/mail/MysqlPasswordForMailBase

DOMAIN_QUERY = SELECT domain FROM domain WHERE \
domain=’${domain}’ AND active=’1’
domainlist local_domains = ${lookup mysql{DOMAIN_QUERY}}

domainlist relay_to_domains = ${lookup mysql{DOMAIN_QUERY}}
hostlist relay_from_hosts = localhost:127.0.0.1/8

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

spamd_address = 127.0.0.1 783
av_scanner = clamd:/var/run/clamav/clamd.ctl
daemon_smtp_ports = 25 : 465

never_users = root

rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 1d
timeout_frozen_after = 14d

log_selector = \
+all_parents \
+connection_reject \
+incoming_interface \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error \
-queue_run

begin acl

acl_check_rcpt:

accept hosts = :

deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]

deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

accept local_parts = postmaster
domains = +local_domains

require verify = sender

accept hosts = +relay_from_hosts
control = submission
require message = relay not permitted
domains = +local_domains : +relay_to_domains
require verify = recipient

accept

acl_check_data:
warn malware = *
message = This message contains a virus ($malware_name).

warn spam = root
add_header = X-Spam-Flag: YES\n\
X-Spam_score: $spam_score\n\
X-Spam_score_int: $spam_score_int\n\
X-Spam_bar: $spam_bar\n\
X-Spam_report: $spam_report

accept

begin routers

dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more

system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT goto FROM alias WHERE \
address=’${quote_mysql:$local_part@$domain}’ OR \
address=’${quote_mysql:@$domain}’}}

dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT goto FROM \
alias WHERE \
address=’${quote_mysql:$local_part@$domain}’ OR \
address=’${quote_mysql:@$domain}’}{yes}{no}}
transport = dovecot_delivery

begin transports

remote_smtp:
driver = smtp

dovecot_delivery:
driver = pipe
command = /usr/lib/dovecot/deliver -d $local_part@$domain
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
user = vmail

address_pipe:
driver = pipe
return_output

address_reply:
driver = autoreply

begin retry
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
begin rewrite
begin authenticators

auth_plain:
driver = plaintext
public_name = PLAIN
server_prompts = Username:: : Password::
server_condition = ${if crypteq{$auth4}{${lookup mysql{SELECT password FROM \
mailbox WHERE username = ‘${quote_mysql:$auth3}’}}}{yes}{no}}
server_set_id = $auth3

auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${if crypteq{$auth3}{${lookup mysql{SELECT password FROM \
mailbox WHERE username = ‘${quote_mysql:$auth2}’}}}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $auth2

auth_cram_md5:
driver = dovecot
public_name = CRAM-MD5
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth3


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

disable_ipv6=true

primary_hostname = mydomain.ru

qualify_domain = mydomain.ru

qualify_recipient = mydomain.ru

 

hide mysql_servers = localhost/mail/mail/MysqlPasswordForMailBase

 

DOMAIN_QUERY    = SELECT domain FROM domain WHERE \

domain=’${domain}’ AND active=’1′

domainlist local_domains = ${lookup mysql{DOMAIN_QUERY}}

 

domainlist relay_to_domains = ${lookup mysql{DOMAIN_QUERY}}

hostlist   relay_from_hosts = localhost:127.0.0.1/8

 

acl_smtp_rcpt = acl_check_rcpt

acl_smtp_data = acl_check_data

 

spamd_address = 127.0.0.1 783

av_scanner = clamd:/var/run/clamav/clamd.ctl

daemon_smtp_ports = 25 : 465

 

never_users = root

 

rfc1413_query_timeout = 0s

ignore_bounce_errors_after = 1d

timeout_frozen_after = 14d

 

log_selector = \

+all_parents \

+connection_reject \

+incoming_interface \

+lost_incoming_connection \

+received_sender \

+received_recipients \

+smtp_confirmation \

+smtp_syntax_error \

+smtp_protocol_error \

-queue_run

 

begin acl

 

acl_check_rcpt:

 

accept  hosts = :

 

deny    message       = Restricted characters in address

domains       = +local_domains

local_parts   = ^[.] : ^.*[@%!/|]

 

deny    message       = Restricted characters in address

domains       = !+local_domains

local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

 

accept  local_parts   = postmaster

domains       = +local_domains

 

require verify        = sender

 

accept  hosts         = +relay_from_hosts

control       = submission

require message = relay not permitted

domains = +local_domains : +relay_to_domains

require verify = recipient

 

accept

 

acl_check_data:

warn    malware    = *

    message   = This message contains a virus ($malware_name).

 

warn    spam       = root

    add_header = X-Spam-Flag: YES\n\

        X-Spam_score: $spam_score\n\

        X-Spam_score_int: $spam_score_int\n\

        X-Spam_bar: $spam_bar\n\

        X-Spam_report: $spam_report

 

accept

 

begin routers

 

dnslookup:

driver = dnslookup

domains = ! +local_domains

transport = remote_smtp

ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8

no_more

 

system_aliases:

driver = redirect

allow_fail

allow_defer

data = ${lookup mysql{SELECT goto FROM alias WHERE \

address=’${quote_mysql:$local_part@$domain}’ OR \

address=’${quote_mysql:@$domain}’}}

 

dovecot_user:

driver = accept

condition = ${lookup mysql{SELECT goto FROM \

alias WHERE \

address=’${quote_mysql:$local_part@$domain}’ OR \

address=’${quote_mysql:@$domain}’}{yes}{no}}

transport = dovecot_delivery

 

begin transports

 

remote_smtp:

driver = smtp

 

dovecot_delivery:

driver = pipe

command = /usr/lib/dovecot/deliver -d $local_part@$domain

message_prefix =

message_suffix =

delivery_date_add

envelope_to_add

return_path_add

log_output

user = vmail

 

address_pipe:

driver = pipe

return_output

 

address_reply:

driver = autoreply

 

begin retry

* * F,2h,15m; G,16h,1h,1.5; F,4d,6h

begin rewrite

begin authenticators

 

auth_plain:

driver = plaintext

public_name = PLAIN

server_prompts = Username:: : Password::

server_condition = ${if crypteq{$auth4}{${lookup mysql{SELECT password FROM \

mailbox WHERE username = ‘${quote_mysql:$auth3}’}}}{yes}{no}}

server_set_id = $auth3

 

auth_login:

driver = plaintext

public_name = LOGIN

server_condition = ${if crypteq{$auth3}{${lookup mysql{SELECT password FROM \

mailbox WHERE username = ‘${quote_mysql:$auth2}’}}}{yes}{no}}

server_prompts = Username:: : Password::

server_set_id = $auth2

 

auth_cram_md5:

driver = dovecot

public_name = CRAM-MD5

server_socket = /var/run/dovecot/auth-client

server_set_id = $auth3

Копируем в файл /etc/dovecot/dovecot.conf содержимое нижнего блока:

Обнулим содержимое файла:

cd /etc/dovecot/
:>dovecot.conf



cd /etc/dovecot/

:>dovecot.conf

* Необходимо заменить MysqlPasswordForMailBase на пароль от вашего пользователя mail в mysdl который мы создали выше:

auth_mechanisms = plain login digest-md5 cram-md5
disable_plaintext_auth = no
first_valid_gid = 0
first_valid_uid = 1150
info_log_path = /var/log/dovecot.log
last_valid_uid = 1150
listen = *
log_path = /var/log/dovecot.log
mail_location = maildir:/var/vmail/%d/%u
mail_privileged_group = mail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
maildir_copy_with_hardlinks = yes

passdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}

protocols = pop3 imap sieve

auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth_username_format = %Lu
service auth {
unix_listener auth-client {
group = mail
mode = 0777
user = vmail
}
unix_listener auth-master {
group = mail
mode = 0777
user = vmail
}
user = root
}
service imap-login {
chroot = login
executable = /usr/lib/dovecot/imap-login
process_limit = 128
process_min_avail = 3
service_count = 1
user = dovecot
vsz_limit = 64 M
}
service imap {
executable = /usr/lib/dovecot/imap
}
service managesieve-login {
chroot = login
inet_listener sieve {
address = 127.0.0.1
port = 4190
}
process_limit = 128
process_min_avail = 3
service_count = 1
user = dovecot
vsz_limit = 64 M
}
service pop3-login {
chroot = login
executable = /usr/lib/dovecot/pop3-login
process_limit = 128
process_min_avail = 3
service_count = 1
user = dovecot
vsz_limit = 64 M
}
service pop3 {
executable = /usr/lib/dovecot/pop3
}
ssl = no
userdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
verbose_proctitle = yes
protocol imap {
imap_max_line_length = 64 k
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
log_path = /var/log/dovecot-sieve.log
mail_plugins = «autocreate sieve»
postmaster_address = [email protected]
}

namespace {
type = private
separator = /
prefix =
#location defaults to mail_location.
inbox = yes

mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
}

plugin {
autocreate = Trash
autocreate2 = Junk
autocreate3 = Drafts
autocreate4 = Sent
sieve = /var/vmail/%d/%n/dovecot.sieve
sieve_before = /var/vmail/sieve/dovecot.sieve
sieve_dir = /var/vmail/%d/%n
sieve_global_dir = /var/vmail/sieve
}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

auth_mechanisms = plain login digest-md5 cram-md5

disable_plaintext_auth = no

first_valid_gid = 0

first_valid_uid = 1150

info_log_path = /var/log/dovecot.log

last_valid_uid = 1150

listen = *

log_path = /var/log/dovecot.log

mail_location = maildir:/var/vmail/%d/%u

mail_privileged_group = mail

managesieve_notify_capability = mailto

managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave

maildir_copy_with_hardlinks = yes

 

passdb {

  args = /etc/dovecot/dovecot-sql.conf

  driver = sql

}

 

protocols = pop3 imap sieve

 

auth_verbose = yes

auth_debug = yes

auth_debug_passwords = yes

auth_username_format = %Lu

service auth {

  unix_listener auth-client {

    group = mail

    mode = 0777

    user = vmail

  }

  unix_listener auth-master {

    group = mail

    mode = 0777

    user = vmail

  }

  user = root

}

service imap-login {

  chroot = login

  executable = /usr/lib/dovecot/imap-login

  process_limit = 128

  process_min_avail = 3

  service_count = 1

  user = dovecot

  vsz_limit = 64 M

}

service imap {

  executable = /usr/lib/dovecot/imap

}

service managesieve-login {

  chroot = login

  inet_listener sieve {

    address = 127.0.0.1

    port = 4190

  }

  process_limit = 128

  process_min_avail = 3

  service_count = 1

  user = dovecot

  vsz_limit = 64 M

}

service pop3-login {

  chroot = login

  executable = /usr/lib/dovecot/pop3-login

  process_limit = 128

  process_min_avail = 3

  service_count = 1

  user = dovecot

  vsz_limit = 64 M

}

service pop3 {

  executable = /usr/lib/dovecot/pop3

}

ssl = no

userdb {

  args = /etc/dovecot/dovecot-sql.conf

  driver = sql

}

verbose_proctitle = yes

protocol imap {

  imap_max_line_length = 64 k

}

protocol pop3 {

  pop3_uidl_format = %08Xu%08Xv

}

protocol lda {

  auth_socket_path = /var/run/dovecot/auth-master

  lda_mailbox_autocreate = yes

  lda_mailbox_autosubscribe = yes

  log_path = /var/log/dovecot-sieve.log

  mail_plugins = «autocreate sieve»

  postmaster_address = [email protected]

}

 

namespace {

    type = private

    separator = /

    prefix =

    #location defaults to mail_location.

    inbox = yes

 

    mailbox Sent {

        auto = subscribe

        special_use = \Sent

    }

    mailbox Drafts {

        auto = subscribe

        special_use = \Drafts

    }

    mailbox Trash {

        auto = subscribe

        special_use = \Trash

    }

    mailbox Junk {

        auto = subscribe

        special_use = \Junk

    }

}

 

plugin {

  autocreate = Trash

  autocreate2 = Junk

  autocreate3 = Drafts

  autocreate4 = Sent

  sieve = /var/vmail/%d/%n/dovecot.sieve

  sieve_before = /var/vmail/sieve/dovecot.sieve

  sieve_dir = /var/vmail/%d/%n

  sieve_global_dir = /var/vmail/sieve

}

Копируем в файл /etc/dovecot/dovecot-sql.conf содержимое нижнего блока

Создаим файл конфигурации:

cd /etc/dovecot/
:>dovecot-sql.conf



cd /etc/dovecot/

:>dovecot-sql.conf

* Необходимо заменить MysqlPasswordForMailBase на пароль от вашего пользователя mail в mysdl который мы создали выше:

driver = mysql
connect = host=localhost dbname=mail user=mail password=MysqlPasswordForMailBase

default_pass_scheme = MD5-CRYPT
password_query = SELECT username as user, password, ‘/var/vmail/%d/%n’ as userdb_home, ‘maildir:/var/vmail/%d/%n’ as userdb_mail, 1150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = ‘%u’ AND active = ‘1’
user_query = SELECT ‘/var/vmail/%d/%n’ as home, ‘maildir:/var/vmail/%d/%n’ as mail, 1150 AS uid, 8 AS gid, concat(‘dirsize:storage=’, quota) AS quota FROM mailbox WHERE username = ‘%u’ AND active = ‘1’



driver = mysql

connect = host=localhost dbname=mail user=mail password=MysqlPasswordForMailBase

 

default_pass_scheme = MD5-CRYPT

password_query = SELECT username as user, password, ‘/var/vmail/%d/%n’ as userdb_home, ‘maildir:/var/vmail/%d/%n’ as userdb_mail, 1150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = ‘%u’ AND active = ‘1’

user_query = SELECT ‘/var/vmail/%d/%n’ as home, ‘maildir:/var/vmail/%d/%n’ as mail, 1150 AS uid, 8 AS gid, concat(‘dirsize:storage=’, quota) AS quota FROM mailbox WHERE username = ‘%u’ AND active = ‘1’

Необходимо создать dovecot-sieve.log в директории /var/log и выставить владельца и права:

cd /var/log/
:>dovecot-sieve.log
chown mail:mail /var/log/dovecot-sieve.log
chmod 660 /var/log/dovecot-sieve.log



cd /var/log/

:>dovecot-sieve.log

chown mail:mail /var/log/dovecot-sieve.log

chmod 660 /var/log/dovecot-sieve.log

Для dovecot.log аналогично:

cd /var/log/
:>dovecot.log
chown mail:mail /var/log/dovecot.log
chmod 660 /var/log/dovecot.log



cd /var/log/

:>dovecot.log

chown mail:mail /var/log/dovecot.log

chmod 660 /var/log/dovecot.log

Установка и настройка spamassassin:

apt-get install spamassassin



apt-get install spamassassin

Обнулим содержимое файла конфигурации:

cd /etc/spamassassin/
:>local.cf



cd /etc/spamassassin/

:>local.cf

Копируем в файл /etc/spamassassin/local.cf содержимое нижнего блока:

# Add *****SPAM***** to the Subject header of spam e-mails
#
# rewrite_header Subject *****SPAM*****


# Save spam messages as a message/rfc822 MIME attachment instead of
# modifying the original message (0: off, 2: use text/plain instead)
#
# report_safe 1


# Set which networks or hosts are considered ‘trusted’ by your mail
# server (i.e. not spammers)
#
# trusted_networks 212.17.35.

# Set the threshold at which a message is considered spam (default: 5.0)
#
required_score 4.5


# Use Bayesian classifier (default: 1)
#
# use_bayes 1


# Bayesian classifier auto-learning (default: 1)
#
# bayes_auto_learn 1
bayes_path /var/spamassassin/bayes

# Set headers which may provide inappropriate cues to the Bayesian
# classifier
#
# bayes_ignore_header X-Bogosity
# bayes_ignore_header X-Spam-Flag
# bayes_ignore_header X-Spam-Status


# Some shortcircuiting, if the plugin is enabled
ifplugin Mail::SpamAssassin::Plugin::Shortcircuit

endif # Mail::SpamAssassin::Plugin::Shortcircuit

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

#   Add *****SPAM***** to the Subject header of spam e-mails

#

# rewrite_header Subject *****SPAM*****

 

 

#   Save spam messages as a message/rfc822 MIME attachment instead of

#   modifying the original message (0: off, 2: use text/plain instead)

#

# report_safe 1

 

Как создать полноценный почтовый сервер на Ubuntu 18.04

Настройка собственного почтового сервера на Linux с нуля — это не совсем простая задача, во время ее выполнения каждый наверняка столкнется с парой подводных камней. Из этого туториала вы узнаете, как использовать iRedMail для быстрой настройки полнофункционального почтового сервера на Ubuntu 18.04, а так же, надеюсь, сохраните свое время.


Что такое iRedMail?

iRedMail — это скрипт оболочки, который автоматически устанавливает и настраивает все необходимые компоненты почтового сервера на вашем сервере Linux, что само-собой исключает ручную установку и настройку.

С помощью iRedMail вы можете легко создавать неограниченные почтовые ящики и неограниченные почтовые домены через веб-интерфейс. Почтовые ящики могут храниться в базе данных MariaDB / MySQL, PostreSQL или OpenLDAP.

Программное обеспечение с открытым исходным кодом, используемое в iRedMail, выглядит следующим образом:

Postfix SMTP server
Dovecot IMAP server
Nginx web server
OpenLDAP, ldapd
MySQL/MariaDB, PostgreSQL
Amavised-new
SpamAssassin
ClamAV
Roundcube webmail
SOGo Groupware
Fail2ban
mlmmj mailing list manager
Netdata server monitoring
iRedAPD Postfix policy server for greylisting

Действие 1.

Покупаем доменное имя и арендуем VPS


Для настройки полноценного почтового сервера на ubuntu 18.04 нам потребуется сервер с 2ГБ ОП. Делая выбор надо помнить о том, что провайдер не должен блокировать подключения на порт 25.

Я остановил свой выбор на ihor.ru, вы в свою очередь можете выбрать любой другой. После того как вы определились с хостингом, требуется зарегистрировать доменное имя. Выбирайте из расчета цены и стоимости продления.


Действие 2.

Настраиваем домен


Первым делом требуется создать МХ-запись в редакторе DNS у регистратора.

Введите @в поле Имя, чтобы представить основное доменное имя, а затем введите mail.your-domain.comв поле значение.

Действие 3.

Настройка имени почтового сервера


Залогиньтесь через SSH, а далее выполните:

apt update && apt upgrade -y

Установите FQDN — имя вашей системы:

hostnamectl set-hostname mail.your-domain.com

Отредактируем hosts-файл:

nano /etc/hosts
127.0.0.1 mail.your-domain.com localhost

Проверим:

hostname -f

Действие 4.

Установка крайней версии iRedMail


Всегда свежую версию можно найти на оф. сайте по кнопке *Stable*.

На момент написания статьи это -0.9.9:

wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.9.tar.bz2

Извлечем файлы из архива:

tar xvf iRedMail-0.9.9.tar.bz2

Перейдем в только что полученную папку:

cd iRedMail-0.9.9

Добавим права на исполнение и запустим скрипт:

chmod +x iRedMail.sh && bash iRedMail.sh

После выполнения вышеуказанных команд запустится мастер настройки:

Отвечаем «YES», на первый вопрос.
На следующем экране вам будет предложено выбрать путь хранения почты. Используем тот, что указан по умолчанию — поэтому просто нажмите Enter.
По умолчанию выбран nginx. Просто нажмите «Enter».
Выбираем БД для хранения почты, я остановился на Марии.
Укажем пароль для root пользователя.
Затем введите свой первый почтовый домен.
Задайте пароль для администратора почтового домена.
Оставляем по умолчанию — 4 компонента.
Ответьте «YES» (сейчас и в дальнейшем), когда система спросить о том продолжать ли ей.

Перезагрузим систему:

shutdown -r now

Действие 5.

Установка сертификата от Let’s Encrypt


Первым делом получим необходимое ПО:

apt install software-properties-common -y
add-apt-repository ppa:certbot/certbot -y
apt install certbot -y

Затем выполним запрос:

certbot certonly --webroot --agree-tos --email your-email-address -d mail.your-domain.com -w /var/www/html/

На вопрос о том получать ли новости можно ответить отказом.

Установка сертификата в Nginx После получения сертификата TLS, давайте сконфигурируем nginx:

nano /etc/nginx/templates/ssl.tmpl

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

ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;

Поменяем путь:

ssl_certificate /etc/letsencrypt/live/mail.your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.your-domain.com/privkey.pem;

Сохраняем изменения. Затем проверим конфигурацию и перезапустим службу:

nginx -t
systemctl reload nginx

Открываем браузер и переходим в веб-интерфейс:

https://your-domain.com/iredadmin

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

Установим TLS сертификат в Postfix and Dovecot Отредактируем конфигурационный файл Postfix

nano /etc/postfix/main.cf

Найдем строки (начиная с 95):

smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt

Исправим путь на:

smtpd_tls_key_file = /etc/letsencrypt/live/mail.your-domain.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.your-domain.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.your-domain.com/chain.pem

Сохраним файл и перезапустим Postfix:

systemctl reload postfix

Отредактируем конфигурационный файл Dovecot:

nano /etc/dovecot/dovecot.conf

Найдем строки (начиная с 47):

ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

Заменим:

ssl_cert = </etc/letsencrypt/live/mail.your-domain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.your-domain.com/privkey.pem

Сохраним изменения и перезапустим службу:

systemctl reload dovecot

На этом с сертификатами разобрались. В дальнейшем мы автоматизируем его продление.


Действие 6.

Отправка почты


Авторизуемся в веб-интерфейсе Ireadadmin используя учетную запись postmaster. Создадим там пользователя и проверим отправку и получение почты — В меню найдите кнопку ADD- user, введите имя, пароль и нажмите кнопку «сохранить».

Теперь идем по адресу:

https://mail.your-domain.com/mail/

Авторизуемся в Roundcube используя логин\пароль только что созданного пользователя. Отправим письмо на любой доступный адрес эл. почты.

Логи ищите по адресу:

/var/log/mail.log

Действие 7.

Проверка 25 порта


В случае если почта не прошла, давайте проверим а не заблокирован ли 25 порт на вашем VPS. Я писал об этом в самом начале статьи.

Выполним:

telnet gmail-smtp-in.l.google.com 25

В случае если он не заблокирован в консоли вы увидите примерно такой выхлоп:

Trying 74.125.68.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp

Если он заблокирован, то такой:

Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out

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


Действие 8.

Настроим почту на своем десктопе и смартфоне.


На своем ПК я пользуюсь Mozilla Thunderbird, после ввода адреса эл.почты он автоматом подтянул верные настройки. Но несмотря на это ниже я укажу настройки для варианта » в ручную».

IMAP: 
mail.your-domain.com
993
SSL/TLS

SMTP:
mail.your-domain.com
587
STARTTLS

Действие 9.

Гарантируем доставку почты.


Чтобы ваши письма не помечались как спам, в популярных паблик сервисах эл. почты, вы должны установить PTRSPF, DKIMи DMARCзаписи.

PTR запись PTR-запись сопоставляет IP-адрес вашего сервера с доменным именем, в случае если это не так, вероятнее всего ваши письма будут попадать в спам.

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

dig -x IP-address-VPS +short

В ответ вы должны получать адрес вашего поддомена:

mail.your-domain.com

Если это не так, необходимо указать этот адрес в настройках DNS вашего хостиг провайдера. Нужный вам пункт имеет имя «reverse DNS» или «Обратный DNS».

SPF запись Запись SPF (Sender Policy Framework) указывает, какие хосты или IP-адрес разрешены для отправки сообщений электронной почты от имени домена. Там должен быть указан только адрес вашего VPS.

Эта запись создается в настройках домена, в панели вашего регистратора.

Создайте там TXT-запись со следующим содержанием:

Record - TXT
Name - @
Value - v=spf1 mx ~all
TTL - 90 sec

DKIM запись DKIM (DomainKeys Identified Mail) использует закрытый ключ для подписи исходящих сообщений, отправленных с вашего домена. Получающие SMTP-серверы проверяют эту подпись с помощью открытого ключа, который публикуется в DNS-записи DKIM.

Скрипт iRedMail автоматически создает DKIM для вашего сервера. Единственное, что осталось сделать, это создать DKIM запись.

Быстрее всего выполнить команду:

amavisd-new showkeys

Либо перейдем в папку с распакованным архивом iRedMail. Откроем файл и скопируем открытый ключ:

cd ~/iRedMail-0.9.9
nano iRedMail.tips

Выполним поиск, либо сами найдите строку:

DNS record for DKIM support: копируем блок, который начинается на — «v=DKIM1; p=».

Теперь создадим еще одну запись в панели регистратора предварительно удалив все кавычки из только что скопированного блока текста.

Record type - TXT
Name - dkim._domainkey
Value - v=DKIM1; p= ваш ключ....
TTL - 90 sec

Проверим, что все правильно сделали:

amavisd-new testkeys

В ответ должны получить что-то вроде этого:

TESTING#1 your-doman-name.com: dkim._domainkey.your-doman-name.com => pass

DMARC запись DMARC запись отвечает за проверку подлинности отправителя. В настройках регистратора создадим новую запись:

DNS record - TXT
Name - _dmarc
Value - v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
TTL - 5 min

Действие 9.

Тестирование почты на предмет соответствия всем требованиям.


После выполнения всех действий, которые указаны выше перейдем на сайт https://www.mail-tester.com. Скопируем адрес эл. почты, который сгенерирует для нас, затем отправим на него письмо, после чего увидим результат оценки нашего почтового сервера.


UPD#1. Как обновить сертификат


Для обновления сертификата, который мы сгенерировали ранее выполним команду:

certbot renew

А теперь автоматизируем этот процесс:

crontab -e

@daily letsencrypt renew --quiet && systemctl reload postfix dovecot nginx

UPD#2. Как разблокировать IP-адрес


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

Посмотрим список заблокированных IP:

iptables -L -n

В случае, если надо разблокировать:

fail2ban-client unban ip-address

 

(Просмотров 6 616 )

Solbadguy

Привет, меня зовут Евгений. Этот сайт задуман в качестве моей записной книжки, к которой я буду время от времени обращаться, чтобы освежить память. Надеюсь, что мои заметки пригодятся и кому-нибудь из Вас.


Поделитесь записью в соц. сетях:

Навигация по записям

Обзор и установка почтового сервера iRedMail / Хабр

Доброго времени суток!

Представляю вашему вниманию обзор, установку и настройку замечательного пакета iRedMail на базе Debian Lenny.

iRedMail — это:

1) Полноценный почтовый сервер.

2) Работает под управлением Red Hat® Enterprise Linux (5.x), CentOS (5.x), Debian(5.0.x), Ubuntu (8.04, 9.04, 9.10), FreeBSD (7.x, 8.0).

3) Работает как и на обычной системе, так и под управлением виртуальной машины: пр. VMware, OpenVZ, Xen.

4) Поддержка архитектур i386 и x86_64.

5) Использует для установки и настройки совместимые компоненты, такие как Postfix, Dovecot, SpamAssassin и т.д.

6) При установке использует бинарные пакеты из вашего дистрибутива.

7) Проект с открытым исходным кодом, распространяемый под лицензией GPL v2.

8) Поддержка двух бэкэндов для хранения виртуальных доменов и пользователей: OpenLDAP и MySQL.

9) Безлимитное число поддержки доменов, пользователей, почтовых алиасов.

10) Поддержка двух Web-Интерфейсов (RoundCube и SquirrelMail).

Этот пакет очень удобен в настройке и установке.

1) Удобен этот пакет в том, что:

а. Не нужно много знаний, т.е. процесс установки и настройки совсем не сложный.

б. Требует минимум времени на разворот корпоративной почты. Я потратил на установку этой сборки буквально 20 минут.

в. В комплекте идет весь необходимый софт для почтового сервера.(Антивирус, Антиспам, 2 Web-Интерфейса(по выбору)

2) Аналогов данного пакета не существует.

Схема работы iRedMail:

Анти-Спам и Анти-вирус.

В качестве антиспама и антивируса выступают 2 популярных пакета, это SpamAssassin и ClamAV

Что поддерживает iRedMail для защиты почты:

1. Поддержка SPF (Sender Policy Framework).

2. Поддержка DKIM (DomainKeys Identified Mail).

3. Поддержка Greylist.

4. Поддержка «Белых списков» ( на основании DNS имени и IP адреса)

5. Поддержка «Черных списков» ( на основании DNS имени и IP адреса)

6. Поддержка «Черного списка» HELO запросов.

7. Поддержка HPR (HELO Randomization Prevention)

8. Поддержка Spamtrap.

9. Интерграция SpamAssassin

10. Интеграция ClamAV, автообновление вирусных баз.

Поддержка почтовых клиентов:

Почтовые клиенты с поддержкой POP3/POP3S и IMAP/IMAPS. Haпример: Mozilla Thunderbird, Microsoft Outlook, Sylpheed.

Установка iRedMail.

В качестве почтового сервера я выбрал iRedMail. Это сборка Postfix+LDAP(MySQL)+SpamAssassin+ClamAV+AmaViS+Dovecot+RoundCube (SquirrelMail) и т.д. В данной статье мы будем рассматривать настройку этого замечательного сервера на базе OpenLDAP.

Внимание! Не забудьте сменить example.com на имя вашего домена.

Немного поправим наше имя хоста:
vi /etc/hosts

127.0.0.1 mail.example.com localhost localhost.localdomain

vi /etc/hostname
mail.example.com

Сохраняем изменения командой:
/etc/init.d/hostname.sh start

Проверим FQDN имя хоста:
hostname –f

Вся установка проводится под пользователем root!

Скачиваем в директорию /tmp данный файл:

cd /tmp && wget iredmail.googlecode.com/files/iRedMail-0.6.0.tar.bz2

Установим архиватор:
apt-get install bzip2

Нужно распаковать данный архив:
tar -xvjf iRedMail-0.6.0.tar.bz2

Переходим в директорию /tmp/iRedMail-0.6.0/pkgs/ и запускаем установочный скрипт:
bash get_all.sh

Пойдет загрузка необходимых пакетов.

Для работы dovecot нужно поставить Candidate версию пакета. C другой работать не будет!
apt-cache policy dovecot-common dovecot-pop3d dovecot-imapd | grep 'Candidate'

Команда отдаст пустой результат.

Переходим в директорию установочного скрипта:
cd /tmp/iRedMail-0.6.0/

Запускаем установочный скрипт:
bash iRedMail.sh

Появится окно инсталлятора:

Выбираем путь, где будет храниться вся наша почта:

Выбираем бэкэнд для нашего сервера. Поддерживаются MySQL и OpenLDAP. Мы выберем OpenLDAP:

LDAP суффикс для нашего сервера добавляется так: dc=example,dc=com

Введем пароль для администратора LDAP сервера. Учетная запись администратора по умолчанию находиться в /etc/ldap/slapd.conf. Обычно это: cn=Manager,dc=example,dc=com

Вводим имя нашего домена:

Вводим пароль администратора(postmaster):

Первый пользователь который будет создан, это пользователь: [email protected]. Нам требуется придумать для него пароль:

Включаем проверку SPF и функцию проверки DKIM:

Ставим доп. компоненты:

Сделаем алиас для юзера root:

Конфигурация завершена.

Появляется сообщение:
Configuration completed.

*************************************************************************

**************************** WARNNING ***********************************

*************************************************************************

* *

* Please do remember to *REMOVE* configuration file after installation *

* completed successfully. *

* *

* * /root/iRedMail-x.y.z/config

* *

*************************************************************************

<<>> Continue? [Y|n] # <- Type ‘Y’ or ‘y’ here, and press ‘Enter’ to continue

Жмем Y и дожидаемся окончания установки.

Создание пользователя проходит на странице: example.com/postfixadmin

Входим в postfixadmin пользователем [email protected] и в меню выбираем “Создать ящик”

Пользователь создан!

Также PostfixAdmin позволяет:

1. Добавить нового администратора.

2. Добавить домен.

3. Создать почтовый ящик.

4. Создать алиас.

5. Изменить пароль администратора.

6. Просматривать журнал действий для домена.

7. Устанавливать и управлять квотами пользователей.

Список доступа к компонентам:

Сервер установлен и настроен!

UPD: Для корректной работы почтового сервера обязательно нужна MX запись на DNS сервере, к которому привязан ваш домен!

Ссылки на проекты:
Debian
iRedMail
Posftix
OpenLDAP
MySQL
SpamAssasin
ClamAV
AMaViS
Dovecot
RoundCube
SquirrelMail
Awstats
phpLDAPAdmin
phpMyAdmin

Копирование статьи допускается только с разрешения её авторов.

r0ster (http://exbyte.ru) и t1mbo (http://greentale.ru)

Обзор популярных решений для быстрого развертывания почтового сервера — «Хакер»

Содержание статьи

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

 

iRedMail

Название: iRedMail

Сайт проекта: iredmail.org

Лицензия: GNU GPL

Платформа: *nix

Добавление учетной записи в iRedMail

Почтовые серверы на *nix подкупают своей открытостью, производительностью и защищенностью, но для новичка развертывание с нуля и последующее сопровождение может превратиться в настоящий кошмар. Проект iRedMail ставит своей целью решить эту проблему. По сути, данная разработка представляет собой набор скриптов и готовых конфигов, упрощающих процесс развертывания и первоначальной настройки почтового сервера на базе Postfix/Dovecot с поддержкой протоколов SMTP, POP3 и IMAP. После запуска скрипт сам скачает и установит нужные пакеты, создаст первый виртуальный домен (задав минимум вопросов) с администратором и пользователем. Сам процесс развертывания занимает минут десять, после чего уже можно будет отправлять и получать почту. Читать документацию и копаться в настройках не придется, не потребуется и специфических знаний *nix. Учетные записи можно сохранять в OpenLDAP или MySQL, это выбирается на этапе установки. Далее можно создавать любое количество доменов, почтовых ящиков и алиасов, то есть ограничений никаких нет. Для защиты почты от вирусов и спама будут автоматически установлены SpamAssassin и ClamAV, а также инструменты, обеспечивающие поддержку технологий SPF (Sender Policy Framework), DKIM (DomainKeys Identified Mail), HPR (HELO Randomization Prevention), Spamtrap и белые, черные, серые списки. Для блокировки попыток перебора пароля ставится iptables Fail2ban. Проект предлагает свою разработку iRedAPD (Access Policy Delegation), позволяющую управлять политиками Postfix, делегируя полномочия между пользователями. Управление производится при помощи веб-интерфейса Roundcube WebMail, параллельно будут установлены средства управления сервисами phpLDAPadmin, PostfixAdmin, phpMyAdmin и анализатор логов AWStats для просмотра статистики. Доступен также локализованный интерфейс администратора собственной разработки — iRedAdmin, в двух версиях: бесплатной Open Source и коммерческой iRedAdmin-Pro. Первая позволяет управлять только учетными записями и доменами, вторая решает все вопросы по администрированию почтовой системы. Все компоненты ставятся на один «чистый» сервер; если уже есть работающий MySQL, к нему можно подключиться, только если выполнить необходимые настройки вручную (требует некоторого опыта).

Поддерживается установка на i386/x86_64 версии Red Hat Enterprise Linux, CentOS, Gentoo Linux, Debian, Ubuntu, openSUSE и Open/FreeBSD. На сайте проекта доступно несколько руководств, помогающих быстро сориентироваться.

 

IndiMail

Название: IndiMail

Сайт проекта: indimail.sf.net

Лицензия: GNU GPL

Платформа: *nix

Веб-интерфейс iWebAdmin построен на QmailAdmin

Платформа обмена сообщениями по протоколам SMTP, IMAP, POP3, поддерживающая QMQP, QMTP, DKIM и BATV (Bounce Address Tag Validation) и проверку почты на спам и вирусы. Базируется на нескольких Open Source решениях: Qmail, Courier IMAP/POP3, serialmail (доставка почты через коммутируемые соединения), qmailanalog (списки рассылки), dotforward, fastforward, mess822, daemontools, ucspi-tcp, Bogofilter, Fetchmail и других. Предоставляет набор инструментов для управления виртуальными доменами и учетными записями пользователей собственной разработки. Обеспечивает маршрутизацию для SMTP, IMAP и POP3, что позволяет разместить почтовый домен на нескольких серверах с обменом данными между ними или как прокси. Это очень удобно, если организация состоит из нескольких удаленных офисов. Используя утилиту hostcntrl, можно добавить на обслуживание отдельные адреса из других доменов. Это позволяет использовать IndiMail в гетерогенной среде без необходимости поднятия нескольких доменов или при переходе от проприетарного решения. Несколько серверов с синхронизацией данных позволяют легко наращивать структуру. Чтобы обеспечить лучшую масштабируемость и производительность, некоторые компоненты были изменены (в частности, Qmail). В IndiMail используется несколько так называемых коллекций (queue collection), каждая из которых выполняет свой процесс qmail-send/qmail-todo и может хранить данные на отдельном харде. Такая архитектура позволяет обрабатывать запросы быстрее, чем оригинальный Qmail.

Разработчики дают полную свободу в настройках, практически все параметры можно переопределить через переменные (а их всего около 200). Например, переменная CONTROLDIR указывает на каталог с конфигурационными файлами, QUEUEDIR — каталог с очередями. То есть можно запустить несколько копий IndiMail на одном сервере со своими настройками для каждой очереди, отправителя, получателя и узла. Но разбираться во всех переменных необязательно: чтобы запустить IndiMail, понадобится всего несколько правок. Новички могут управлять установками при помощи меню FLASH (построено на Ncurses). Для хранения данных о виртуальных пользователях используется MySQL, адресные книги могут храниться в OpenLDAP. Последние релизы полностью совместимы с systemd. Много внимания разработчики уделяют безопасности как самого сервера, так и сервисов — минимальное использование SETUID, четкое разделение между программами/адресами/файлами, пятиуровневый trust partitioning, автоматическое распознавание локальных IP, access-list, tcprules, фильтр контента, TLS/SSL и многое другое.

Установить IndiMail можно на любой 32/64 *nix платформе. Для загрузки доступны исходные тексты, пакеты и репозитории для некоторых популярных дистрибутивов Linux (RHEL/CentOS 5/6, Fedora, openSUSE/SLE, Mandriva, Debian и Ubuntu). Для управления сервером предлагается около 45 программ различного назначения (большинство расположено в /var/indimail/bin), учетные записи можно также настраивать при помощи веб-интерфейса iWebAdmin (построен на QmailAdmin), который необходимо устанавливать отдельно.

 

Rumble

Название: Rumble

Сайт проекта: rumble.sf.net

Лицензия: GNU GPL

Платформа: *nix, Win

Информация о сервере в веб-интерфейсе Rumble

Почтовый сервер, поддерживающий SMTP (ESMTPSA), POP3 и IMAP. Очень прост в управлении, для администрирования используется веб-интерфейс. Вполне подходит для небольших организаций с несколькими доменами. Написан на C/C++, для сценариев предлагается свой API (Lua и C/C++). Архитектура позволяет наращивать производительность сервера за счет кластеризации серверов для одного или всех доменов. Поддерживает SSL/TLS, SQLite и MySQL, аутентификацию (MD5/PLAIN/STARTTLS), для защиты от спама включены модули white/grey/blacklist, SpamAssassin, технологии BATV и VERP (Variable Envelope Return Path). В настройках предусмотрена возможность ограничить максимальный размер сообщения.

На сайте доступны исходные коды и x86/x64-бинарники для установки на Linux (Generic, Ubuntu, Debian). Чтобы запустить сервер, нужно распаковать архив и выполнить скрипт, все остальное программа сделает сама. Для удобства исходные тексты и конфигурационные файлы можно распределить по соответствующим каталогам и обеспечить автозагрузку при старте ОС. Параметры сервера и модули подключаются в файле rumble.conf. Для возможности регистрации через веб-интерфейс (порт 2580) следует удалить автоматически созданный файл modules/rumblelua/auth.cfg (в нем содержится пароль админа), после этого открываем веб-браузер и указываем новый пароль. Теперь можно управлять доменами, учетными записями и почтовыми ящиками, настройками сервера, просматривать логи и статистику.

По умолчанию в качестве базы данных используется SQLite, если его возможностей не хватает или в организации уже есть работающий MySQL, то можно легко переключить сервер для работы с этой СУБД.

Для администрирования сервера используется три уровня — администратор сервера, администратор домена и пользователь. Интерфейс администратора сервера позволяет лишь создавать и удалять домены, плюс доступен ряд специфических настроек. Создав домен, в меню RumbleLua User нужно добавить новый аккаунт и указать в его настройках этот домен. Это и будет администратор домена, который после регистрации в системе получает возможность создавать почтовые ящики, алиасы, привязывать адрес к модулю, задавать программу, которая будет запущена при получении письма на определенный адрес, и настраивать релей. Интерфейс не локализован, хотя все очень просто и понятно.

 

Zentyal — почтовик из коробки

Новичкам, которых пугает само слово Linux и необходимость ввода команд в терминале, нужно простое решение, позволяющее быстро и без чтения документации развернуть почтовый сервис. Как вариант здесь можно посоветовать Zentyal — специализированный дистрибутив, построенный на базе Ubuntu Server (последний релиз основан на Ubuntu 12.04 LTS) и позволяющий выполнить все необходимые установки и настройки при помощи графического интерфейса. Zentyal — дистрибутив широкого назначения, который может использоваться и как роутер с функциями UTM, офисный сервер или сервер сообщений. Все необходимые функции реализуются при помощи устанавливаемых модулей/пакетов. В настоящее время доступно более тридцати модулей из пяти категорий, которые добавляются одним щелчком. Zentyal может устанавливаться в качестве самостоятельного сервера, используя свою базу пользователей, или работать в связке master/slave с возможностью репликации между несколькими серверами и синхронизации учетных данных с LDAP/AD.

 

Axigen

Название: Axigen

Сайт проекта: axigen.com/ru

Лицензия: GNU GPL

Платформа: Linux, FreeBSD, Solaris, Windows

Axigen: антиспам-настройки в веб-интерфейсе юзера

Многофункциональный, быстрый, защищенный почтовый сервер (SMTP/POP3/IMAP) с функциями совместной работы, календарем, списком задач и заметками, разрабатываемый румынской компанией Gecad Technologies. Работать с сообщениями пользователи могут через почтовый клиент или при помощи локализованного (и очень даже симпатичного) веб-интерфейса, построенного с применением технологии Ajax, — его можно полностью подогнать под себя. Поддерживаются горячие клавиши, что еще больше усиливает ощущение работы с обычным настольным приложением. В настройках доступны: сбор почты с внешних ящиков, автоответчик, фильтр почты, установка псевдонимов и другое. Пользователь также может экспортировать/импортировать контакты в файл формата CSV для переноса в другие приложения. Кроме стандартного, предлагается и упрощенный для мобильных устройств интерфейс, поддержка ActiveSync для синхронизации сообщений, контактов и календаря. В качестве дополнения устанавливается расширение для работы с общими папками.

Администрирование выполняется при помощи командной строки или через веб-модуль (работает на 9000-м порту), понятный даже новичку. При этом тонко делегируются другим пользователям определенные права по настройкам.

Возможна интеграция с LDAP-сервером (в документации описан OpenLDAP и eDirectory) или Active Directory, для этого следует установить специальные схемы расширения. Реализованы модули резервирования и восстановления информации, списки рассылки, поддержка кластера и балансировки нагрузки, MAPI-интерфейс, РOP3- и IMAP-прокси. Сервер может обслуживать несколько доменов с различными настройками. В документации описано, как интегрировать IM-сервис, построенный на основе Jabber/XMPP. Кроме этого, Axigen имеет развитую систему отчетов с выводом всевозможных графиков, всего подготовлено около ста шаблонов. Для защиты информации может использоваться TLS/SSL, поддерживаются все популярные механизмы аутентификации: plain, login, cram-md5, digest-md5 и так далее. Возможна интеграция с пятнадцатью решениями для борьбы с вирусами (Kaspersky, DrWeb, Symantec, ClamAV и другие) и спамом (включая SpamAssassin). Поддерживаются технологии SPF, DKIM, черный/серый/белый списки и фильтрация по IP / стране отправителя. Все это подключается буквально одним щелчком мышки из интерфейса администратора. Возможен обмен данными между Axigen и MS Outlook, для этого необходимо установить коннектор.

Большим плюсом Axigen является возможность работы сервера на нескольких ОС. На странице закачки доступны пакеты для Debian, Red Hat Enterprise Linux и CentOS 5/6, SUSE Linux Enterprise 10/11, Fedora 12 и 13, OpenSUSE 11.2 и 11.3, FreeBSD 7.x/8.x, Solaris 10 x86/SPARC и Win2k3/2k8 (x86/x64). Также подготовлены Virtuozzo — контейнеры для быстрого развертывания в виртуальных средах. Установка очень проста и производится при помощи GUI-интерфейса, в котором предстоит выбрать сервисы, задать порты и указать сетевые интерфейсы для подключений пользователей и админов. При должной сноровке весь процесс займет не более 10–15 минут. На сайте проекта можно найти подробную документацию и несколько видеороликов, в которых показан процесс установки и администрирования. Кроме этого, доступны демоинтерфейсы пользователя и администратора. Версия Axigen Free Mail Server (Office Edition) предоставляется бесплатно и позволяет обслуживать до ста учетных записей e-mail и пять календарей.

 

CommuniGate Pro

Название: CommuniGate Pro

Сайт проекта: communigate.com

Лицензия: Free/платная

Платформа: *nix, Windows, Mac OS X

Веб-интерфейс администрирования CommuniGate Pro

Популярная платформа для обмена электронной почтой, IM, VoIP, с функциями календаря и автоматизацией совместной работы. Например, VoIP обеспечивает передачу голоса/видео и обеспечивает такие возможности, как конференции, автосекретарь (IVR), автоматическое распределение звонков, управление очередями вызовов, голосовая почта. При этом CommuniGate поддерживает установку на большое количество ОС и архитектур (всего около тридцати), IPv4 и IPv6, стандартные протоколы SMTP, SIP, IMAP, XMPP, LDAP, RADIUS, XIMSS, CalDAV, WebDAV, MAPI и другие. Пограничный контроллер сессий (Session Border Controller) обеспечивает корректную работу через NAT-устройства. Входящий в состав CGP LDAP-сервер может использоваться и другими приложениями. Возможна синхронизация данных с BlackBerry при помощи AirSync (лицензия на каждое устройство приобретается отдельно). Менеджер рассылок позволяет автоматизировать рассылку новостей с возможностью самостоятельной подписки пользователем. Рассылка создается администратором, в дальнейшем управляется одним из пользователей сервера.

Пользователи могут подключиться через любую программу-клиент, поддерживающую эти протоколы, или локализованный веб-интерфейс. Причем веб-интерфейс очень просто настроить таким образом, что он принимает вид обычного почтового клиента (чтобы юзвери меньше путались). Также возможно использование упрощенного интерфейса для экономии трафика при работе с PDA и доступ по протоколу WAP с мобильных телефонов. Вызвать пользователя для разговора через VoIP можно одним щелчком из веб-клиента или адресной книги. Администратор в настройках устанавливает доступные пользователю функции — сортировку и пересылку почты, автоответчик, загрузку писем с внешних POP3-ящиков, список контактов, задач и календарь.

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

Один сервер может обслуживать несколько доменов. Узлы кластера способны обрабатывать только определенный вид трафика (например, по региону), для распределения запросов используется технология SIP Farm. Решение легко масштабируется до любых размеров. К слову, на CommuniGate Pro построена сеть IP-телефонии оператора SIPNET.

Возможна аутентификация пользователя при помощи внутренней БД, Active Directory или внешней программы, в том числе поддерживаются сертификаты клиента. В настройках можно указать IP-адреса, с которых разрешено или запрещено подключение клиентов. Вся информация, хранящаяся на сервере и передаваемая между клиентом и сервером, может быть зашифрована с помощью технологий SSL, TLS, S/MIME и других.

Открытые API упрощают интеграцию с системами биллинга и управления. Поддержка плагинов позволяет подключать решения сторонних производителей для фильтрации спама и вирусов. В настоящее время поддерживается интеграция с решениями от Касперского, Sophos, McAfee, MailShell, Cloudmark.

Реализованы и стандартные средства защиты — проверка обратного адреса отправителя, поддержка DNSBL (RBL), запрет приема почты с определенных IP-адресов и сетей, проверка определенной строки в заголовке или теле письма. Установка в любой ОС несложна, по сути, нужно лишь распаковать архив и запустить сервер. Все настройки сервера, доменов и учетных записей производятся при помощи веб-интерфейса (работает на 8010-м порту, после запуска нужно подключиться к нему в течение десяти минут и задать пароль администратора). Система прав позволяет делегировать администрирование домена другим пользователям, указав только те функции, которые им действительно необходимы.

В настоящее время доступно несколько версий сервера, отличающихся лицензиями. Бесплатно предлагается Community Edition, в которой активно пять аккаунтов, за плату предлагаются Corporate Edition и Service Provider с дополнительными функциями.

 

WARNING

После первого запуска CommuniGate Pro необходимо в течение десяти минут подключиться к порту 8010 и задать пароль администратора.

Развернуть почтовый сервер при помощи описанных решений не так уж и сложно, в зависимости от опыта админа и количества настроек на запуск уйдет от силы полчаса. На каком конкретно решении остановиться, выбирать тебе. Для организации среднего размера отлично подойдут iRedMail, Axigen и Rumble; в том случае, когда компания состоит из нескольких территориально удаленных офисов, следует присмотреться к Axigen, IndiMail и CommuniGate Pro. Последний к тому же обеспечивает VoIP.

 

Почтовый сервер на Linux: обзор и настройка

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

Обзор решений для создания систем отправки и получения сообщений

С помощью почтового сервера на Linux можно быстро и удобно развернуть свой собственный механизм получения и отправки сообщений. В Сети имеется масса готовых решений, которые остается только установить и немного «допилить». Среди них, конечно, присутствуют и более сложные в настройке системы, конфигурирование которых будет показано далее на примере Postfix.

SendMail — популярный и быстрый

SendMail можно назвать первопроходцем среди почтовых серверов на Linux. Первая версия была выпущена в далеком 1983 году. С тех пор SendMail освоил множество станций и узлов. Активно используется и по сей день. Быстрый и оптимизированный сервер, однако не отвечает современным требованиям безопасности и довольно тяжел в настройке.

Postfix — гибкий, мощный и надёжный

Изначально разрабатывался для внутренних нужд исследовательского центра IBM. Многие функции и возможности позаимствованы с SendMail. Однако он гораздо быстрей, безопасней, и настройка занимает меньше времени и сил. Может использоваться как почтовый сервер на Linux, MacOS, Solaris.

IredMail

Данный сервер по сути является набольшим комплектом скриптов и конфигурационных файлов. С их помощью можно быстро поднять почтовый сервер на Linux с Web-интерфейсом и без. Обладает поддержкой протоколов SMTP, POP3 и IMAP. Процедура установки в общем не займёт более 10 минут, в зависимости от мастерства админа.

В процессе настройки почтового Linux-сервера iRedMail будут автоматически установлены средства борьбы с вирусами и спамом. Помимо них могут быть добавлены механизмы защиты от перебора паролей, различные анализаторы и прочее. Отличный вариант готового почтового Linux-сервера.

IndiMail

Совмещает в себе несколько известных протоколов и технологий для реализации передачи почтовых сообщений. В систему интегрирована возможность создания каналов между узлами одной сети, например, для организации общего почтового ресурса для разных филиалов компании. В системе имеется очень гибкий механизм настроек. Он реализован через переопределение переменных, коих в сервере около 200. При этом можно создать параллельно несколько потоков работы IndiMail.

Rumble

Почтовый Linux web-сервер, написанный на C++. Имеется встроенный API для управления и создания сценариев. Обладает большим количеством функций и возможностей «из коробки». Поддерживаются несколько известных версий СУБД. При желании или реконфигурации можно быстро перейти с одной на другую. Интерфейсы сервера разделены правами на свои определённые зоны — пользователи, администраторы домена и сервера.

Zentyal

Наверное, самый простой и удобный готовый почтовый Linux-сервер. В нем практически все инструкции и настройки исполняют в специальном графическом интерфейсе. Основан данный почтовый сервер на Linux Ubuntu. Добавление функций или возможностей производится путем установки новых модулей. С его помощью можно организовать как отдельный почтовый сервер, так и некий маршрутизатор или узел-посредник между основными магистралями.

Axigen

Бесплатный, мощный и многофункциональный почтовый сервер. Может использовать как через собственный веб-интерфейс, так и через любой почтовый клиент. Умеет собирать почту с внешних ящиков, производить автоматический ответ на сообщения, фильтровать их, а также удобно импортировать в формате CSV.

Для конфигурирования и администрирования имеется свой собственный веб-интерфейс. Для любителей классической модели управления — доступно задание команд через консоль.

Сервер поддерживает большое количество операционных систем, в том числе из линейки Windows. Процесс взаимодействия очень хорошо документирован и разъяснён многочисленными примерами на сайте разработчика.

CommuniGate Pro

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

Настройка на примере одной системы

После обзора почтовых серверов на Linux стоит рассмотреть настройку одного из них более подробно.

Для примера можно показать, как установить и настроить Postfix на Ubuntu. Предполагается, что в аппаратной части уже имеется данная операционная система и обновлена до самой последней версии.

Первое, что нужно сделать — это скачать сам сервер. Он доступен в репозиториях Ubuntu, поэтому в терминале нужно набрать:

В процессе установки система попросит указать новый пароль для пользователя базы данных под учётной записью root. Затем его нужно повторить для подтверждения. Потом может спросить, какой именно тип установки интересует. Затем системное почтовое имя, в котором можно указать — some.server.ru.

Теперь нужно создать базу данных для сервера. Сделать это можно с помощью команды:

mysqladmin -u root -p create mail.

Именно здесь и понадобится указанный ранее пароль для базы данных.

Теперь можно зайти в саму оболочку MySQL с помощью команды:

mysql -u root. Система опять попросит пароль, который надо ввести.

Далее пойдет набор команд, который поможет создать нового пользователя с привилегиями:

Также потребуются таблицы в основной базе, создать их можно так:

Теперь консоль mysql больше не нужна и можно выйти из нее.

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

Для начала нужно показать серверу, каким образом обращаться к базе данных, как искать там необходимые значения. Для этого будет создано несколько файлов. Располагаться они могут в каталоге /etc/postfix. Вот их названия:

В них должно находиться следующее содержимое, среди которого строка query для каждого файла будет уникальной:

user = имя админа, указанное при создании таблицы;

password = <пароль админа>;

dbname = имя созданной базы;

query = запрос, свой для каждого файла;

hosts = 127.0.01.

Переменная query для файлов:

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

Теперь осталось добавить еще немного настроек к Postfix. Стоит обратить внимание, что в строках, приведённых ниже, нужно заменить some.server.ru на реальный домен.

Сертификаты безопасности

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

Создаётся хранилище для файлов:

mkdir ~/CA_new

И файл конфигурации. В нем располагается следующий код:

Небольшое пояснение к нему:

  • переменная C — здесь нужно указать страну в двухбуквенном формате, например, для России — RU;
  • ST — означает конкретный регион или область;
  • L — город;
  • O — наименование предприятия;
  • CN — здесь нужно указать домен, которому предназначается ключ;
  • адрес электронной почты.

Затем создаётся и сам ключ:

sudo openssl genrsa -des3 -out ca.key 4096

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

Теперь нужна открытая версия ключа:

openssl req -new -x509 -nodes -sha1 -days 3650 -key ca.key -out ca.crt -config ca.conf

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

Теперь сертификат:

openssl pkcs12 -export -in ca.cer -inkey ca.key -out ca.pfx

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

mkdir SERV

mkdir SERV/some.domen.ru

И создается своя собственная конфигурация:

nano SERV/some.domen.ru/openssl.conf

Внутри него должны находиться настройки, указанные ниже. Они аналогичны тем, которые уже создавались.

Для генерации ключей используется команда:

sudo openssl genrsa -passout pass:1234 -des3 -out SERV/some.server.ru/server.key.1 2048

В данной строке используется пароль 1234. Он нужен на некоторое время.

Теперь пароль из команды убирается:

openssl rsa -passin pass:1234 -in SERV/some.server.ru/server.key.1 -out SERV/ some.server.ru/server.key

Теперь надо подписать ключ:

openssl req -config SERV/some.server.ru/openssl.conf -new -key SERV/some.server.ru/server.key -out SERV/some.server.ru/server.csr

И удалить временный: rm -f SERV/ some.server.ru/server.key.1

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

Дополнительные функции

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

  • Horde. Очень удобный веб-интерфейс для почты. Помимо своей главной задачи обладает встроенными календарем, планировщиком и контактами. Имеет удобную схему конфигурирования и настройки.
  • Amavisd-new. Выполняет роль шлюза и используется в основном для стыковки различных технологий. Amavisd-new получает сообщение, фильтрует его, выясняет, может ли оно представлять опасность, и подключает дополнительные функции других модулей для проверки.
  • SpamAssassin. Как следует из названия, модуль фильтрует письма по определённым правилам, вычисляя спам. Может использоваться как отдельно, так и в составе различных демонов.
  • ClamAV. Популярный в Linux-среде антивирус. Является свободным программным обеспечением. Умеет работать со множеством различных почтовых серверов, сканировать файлы и сообщения «на лету».
  • Razor. Данный модуль хранит контрольные суммы спам-писем и напрямую взаимодействует с Postfix.
  • Pyzor — еще один инструмент для определения сообщений, содержащих вредоносный или бесполезный для пользователя код.
  • Fail2ban. Инструмент, защищающий учетные записи пользователей от взлома паролей перебором. После определенного количества попыток конкретный IP-адрес блокируется на какое-то время.
  • Mailman. Удобное средство для создания рассылок через веб-интерфейс.
  • Munin. Инструмент для мониторинга работы сервера. Имеет большое количество готовых плагинов, расширяющих его возможности. Работу сетевых протоколов можно отследить на удобных графиках.

Заключение

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

Однако в случае поломки сервера придётся долго вникать и понимать устройство системы. Статья на примере почтового сервера Postfix показала базовые способы и методы настройки для первичной работы. Вкупе с большим количеством модулей, плагинов и надстроек это позволит создать мощный и надежный инструмент для отправки и получения сообщений.

Почтовый сервер Linux

О чем этот документ

Используемое программное обеспечение

Установка программного обеспечения

Конфигурация постфикса

Конфигурация Fetchmail

Конфигурация Spambayes и Procmail

Конфигурация Mutt

Конфигурация SquirrelMail

Курьерская аутентификация

Конфигурация Pop-before-smtp

Дополнительные простые рецепты Procmail и конфигурация почтового ящика

Заключение

Ресурсы

Взносы


О чем этот документ

В этом документе рассказывается, как я настроил свой Linux-сервер для работы в качестве почтового сервера.Детали будут специфичны для Arch Linux, но будут достаточно общими для любого дистрибутива * nix, если у вас есть знания об установке пакетов программного обеспечения, поиске местоположения файлов конфигурации и запуске / остановке служб.

Мои цели при создании этой почтовой системы заключаются в том, чтобы вся моя почта из различных учетных записей электронной почты хранилась локально на моем компьютере, чтобы я мог получить к ней доступ в любое время через SSH, Интернет или imap. Я хотел, чтобы вся моя почта доставлялась в мою локальную учетную запись пользователя, и я хотел, чтобы спам был высосан и запущен в космос.

Основой почтовой системы является агент транспорта почты (MTA). Он будет обрабатывать получение почты, адресованной непосредственно вашему устройству, отправку ее на правильный почтовый ящик пользователя и отправку почты с устройства. Я решил, что Postfix — лучший выбор для моего MTA, и после некоторого чтения нашел Procmail для сортировки почты, SpamBayes для обнаружения спама и Fetchmail для захвата почты из моих почтовых ящиков.

Сильфон — это блок-схема движения почты через систему:

SpamAssassin и sa-learn можно игнорировать.Я опишу, как использовать его со SpamBayes, так как я был недоволен производительностью Spam Assassin и построил диаграмму, когда все еще использовал его.

Используемое программное обеспечение

  • Arch Linux
  • Postfix 2.1.5
      Безопасная, быстрая и простая в администрировании замена для Sendmail. (MTA) Предоставляет smtp-сервер.

      (Требуется установленный sasl и поддержка sasl, скомпилированного в Postfix, при отправке почты через посредника, что может потребоваться, если у вас есть доменное имя, указывающее на динамический IP-адрес.)
  • Сайрус SASL 2.1.21
      Демон аутентификации SASL.
  • Procmail 3.22
      Автоматическая обработка почты с широкими возможностями настройки.
  • Fetchmail 6.25
      Утилита для получения удаленной почты.
  • SpamBayes 1.1a1
      — байесовский фильтр защиты от спама, первоначально основанный на работе Пола Грэма. Основное различие между этим и другими аналогичными проектами — акцент на тестировании новых подходов к оценке сообщений.
  • Матт 1.4.2.1
      Небольшой, но очень мощный текстовый почтовый клиент
  • Courier-imap 4.0.4
  • Courier-authlib 0.57
      Библиотека аутентификации для курьерского почтового сервера.
  • SquirrelMail cvs 1.5.1
      Для проверки почты через Интернет.

      (требуется imap-server, perl и php)
  • Pop-before-smtp 1.38
      Простой демон, написанный на Perl, позволяющий управлять ретрансляцией электронной почты на основе успешных входов в систему по протоколам POP или IMAP.

Установка программного обеспечения

    Установка Postfix

    Примечание для пользователей с динамическими IP-адресами: Перед установкой Postfix мы должны сначала подумать, нужно ли ему использовать простой уровень аутентификации и безопасности (SASL). Если у вас динамический IP-адрес и вы используете такую ​​службу, как dyndns.org, вам нужно, чтобы Postfix отправлял вашу почту через почтовый сервер вашего провайдера (с аутентификацией), используя SASL для соединения.Это связано с тем, что многие домены, на которые вы будете отправлять электронную почту, распознают ваше имя хоста как указывающее на динамический IP-адрес и отправят почту обратно. Убедитесь, что пакет Postfix в вашем дистрибутиве был собран с поддержкой SASL, или если вы компилируете Postfix с нуля, добавьте SASL с параметром ./configure.

    Если вы определили, что поддержка SASL в постфиксе вам не нужна:

    Если вам действительно нужна поддержка SASL, нам нужно установить cyrus-sasl и использовать утилиту Arch Build System (abs) для сборки Postfix.Следуйте инструкциям ниже или следуйте этим инструкциям Arch Wiki: http://wiki.archlinux.org/index.php/PostFix_Howto_With_SASL

      $ pacman -Sy cyrus-sasl
      $ abs
      $ cd / var / abs
      $ mkdir -p local / postfix
      $ cp -v extra / daemons / postfix / * local / postfix

    Теперь отредактируйте / var / abs / local / postfix / PKGBUILD. Под изменением раздела build ():

      make OPT = «$ {CFLAGS}» || возврат 1

    к:

       make OPT = "$ {CFLAGS}" \
      CCARGS = "- DUSE_SASL_AUTH -I / usr / include / sasl /" \
      AUXLIBS = "- L / usr / lib / sasl2 -lsasl2" || возврат 1 

    Сейчас работает:

      $ makepkg
      $ pacman -A postfix- *.pkg.tar.gz

    Примечание: Замените -A на -U в новых версиях pacman / arch

    Затем скопируйте пакет в каталог в / var / lib / pacman, чтобы позже был доступ ко всем собранным пакетам abs:

      $ mkdir / var / lib / pacman / abs_built
      $ cp postfix — *. pkg.tar.gz / var / lib / pacman / abs_built
    Установка Fetchmail
    Установка Procmail
    Установка SpamBayes

    SpamBayes еще нет в репозитории pacman.Загрузите, распакуйте и установите (замените номера версий на самые последние):

       $ wget http: //dl.sourceforge.net/sourceforge \
      /spambayes/spambayes-1.1a1.tar.gz
      $ tar zxvf spambayes-1.1a1.tar.gz
      $ cd spambayes-1.1a1
      $ python setup.py установить 
    Установка Mutt
    Установка courier-imap и courier-authlib

    SquirrelMail, а также другие почтовые клиенты (эволюция, перспективы, мобильный телефон и т. Д.)) будет использовать это для подключения к почтовому ящику. Courier-imap также зависит от courier-authlib, поэтому эта команда также установит его.

    Установка SquirrelMail
    Установка pop-before-smtp

    Вам стоит рассмотреть возможность использования Postfix / TLS или pop-before-smtp, если вы заинтересованы в том, чтобы пользователи, подключенные через IMAP, могли отправлять почту (используя ваш почтовый сервер в качестве ретранслятора SMTP). Я рекомендую использовать Postfix / TLS, но не буду описывать, как его установить / настроить в этом документе.

    Pop-before-smtp отсутствует в репозиториях pacman. Замените номера версий на самые последние.

      $ wget http://dl.sourceforge.net/sourceforge/popbsmtp/pop-before-smtp-1.38.tar.gz
      $ tar zxvf pop-before-smtp — *. tar.gz
      $ cd pop-before-smtp — *

    Прочтите README в этом каталоге, а затем прочтите README.QUICKSTART в каталоге contrib, чтобы узнать, куда копировать необходимые файлы.

Конфигурация постфикса

    основной.cf

    Теперь перейдите в каталог ‘/ etc / postfix’ и откройте main.cf для редактирования.

    Доменное имя моей машины — через dyndns.org. Задайте для своего myhostname и my domain что-то вроде этого:

      myhostname = example.com
      mydomain = example.com

    Далее нам нужно настроить Postfix для использования доставки в стиле qmail с Maildir (где каждое электронное письмо хранится в отдельном файле).Это для courier-imap, который SquirrelMail будет использовать для доступа к почте и будет иметь другие преимущества. Не забудьте косую черту в конце.

    Настройте его так, чтобы входящая почта отправлялась через procmail и чтобы мы могли назначать псевдонимы / пользователей почтовым ящикам.

      mailbox_command = / usr / bin / procmail -a «$ DOMAIN»

      alias_maps = hash: / etc / postfix / aliases

    Если у вас динамический IP-адрес или возникают проблемы с возвратом почты от крупных интернет-провайдеров или почтовых систем, вам придется предпринять несколько дополнительных шагов.Мы настроим его так, чтобы почта проходила через ретранслятор. В этом примере я буду использовать smtp-сервер моего интернет-провайдера (SBC) в качестве примера. Внесите эти дополнительные изменения в main.cf

      relayhost = [smtp.sbcglobal.yahoo.com]

      # аутентификация для sbc yahoo
      smtp_sasl_auth_enable = yes
      smtp_sasl_security_options = noanonymous
      smtp_sasl_password_maps = hash: / etc / postfixwd / sas

На этом мы завершаем наши изменения в main.ср. Нам просто нужно создать базы данных хеш-псевдонимов, которые мы определили выше. Добавьте эти строки в начало / etc / postfix / aliases (конечно, заменив hypexr своей учетной записью):

     корень: hypexr
    
    спам: hypexr
    ветчина: hypexr 

Создайте базу данных. Из / etc / postfix dir:

Настройте SMTP-сервер и аутентификацию для почтового ретранслятора SBC. sasl_passwd :

Примечание: Имя сервера может время от времени меняться. CNAME указывает на это имя, но CNAME здесь не работает.

Создать базу данных:

Запустите сервер postfix, и мы закончили с postfix !!!!

    $ /etc/rc.d/postfix start

Проблемы при запуске? Загляните в файл журнала Postfix обычно в / var / log / mail или / var / log / maillog .

Конфигурация Fetchmail

Мы собираемся запустить наш демон fetchmail от пользователя root. Итак, создайте файл /root/.fetchmailrc :

    set postmaster «postmaster»
    set bouncemail
    set no spambounce
    set properties «»
    set daemon 60
    poll pop.example.com с proto POP3
    user ‘user_name’ там с паролем ‘my_password’ is ‘local_user_to_deliver_to’ здесь options flush
    опрос поп.gmail.com с портом proto POP3 995
    пользователь [email protected] там с ssl с паролем my_password — hypexr здесь параметры сохраняются

Это указывает fetchmail каждую минуту проверять почту на pop.mypop.com, а также в моей учетной записи gmail. Параметр flush в конце записи mypop указывает ему удалить почту после ее загрузки. Я не хочу, чтобы почта удалялась из моей учетной записи Gmail, поэтому я использую опцию сохранения. Google также использует ssl, отсюда и «with ssl».Fetchmail поставляется с утилитой настройки fetchmailconf , которая упрощает настройку файла .fetchmailrc.

Я не верю, что в Arch Linux есть сценарий rc для fetchmail. Тот, который я сделал (/etc/rc.d/fetchmail), выглядит так (stat_busy, stat_fail, stat_done относятся к Arch Linux. Вы можете удалить их):

     #! / Bin / sh
    
    . /etc/rc.conf
    . /etc/rc.d/functions
    
    DAEMON_NAME = "fetchmail"
    DAEMON_CONF = "/ корень / .fetchmailrc"
    DAEMON_PATH = "/ usr / bin / fetchmail"
    
    PID = `pidof -o% PPID $ {DAEMON_NAME}`
    
    case "$ 1" в
    Начало)
       stat_busy "Запуск $ {DAEMON_NAME}"
       [-z "$ PID"] && $ {DAEMON_PATH} -f $ {DAEMON_CONF} -d 60 &> / dev / null
       если [$? -gt 0]; тогда
          stat_fail
       еще
          add_daemon $ {DAEMON_NAME}
          stat_done
       фи
       ;;
    стоп)
       stat_busy "Остановка $ {DAEMON_NAME}"
       [! -z "$ PID"] && kill "$ PID" &> / dev / null
       если [$? -gt 0]; тогда
          stat_fail
       еще
          rm_daemon $ {DAEMON_NAME}
          stat_done
       фи
       ;;
    перезапуск)
       # вызов 'stop' и 'start' без $ 0 не выполняется...
       $ 0 стоп
       спать 3
       $ 0 начало
       ;;
    *)
       echo "использование: $ 0 {start | stop | restart}"
    esac
    выход 0 

И запустить демон fetchmail:

    $ /etc/rc.d/fetchmail start

Или, если вы не хотите создавать / изменять сценарий rc, вы можете запустить демон fetchmail, например:

    $ / usr / bin / fetchmail -d 60

Конфигурация Spambayes и Procmail

Мы собираемся использовать Spambayes для обучения и определения того, является ли почта спамом, и Procmail для сортировки почты по папкам, когда они входят в нашу почтовую систему.Эти двое идут вместе, поскольку Procmail собирается использовать Spambayes для сортировки почты.

Я использовал SpamAssassin год и был не очень доволен его работой. Я использую Spambayes всего несколько недель и был приятно удивлен тем, насколько хорошо он работает и как быстро адаптируется. Честно говоря, я обучал SpamAssassin работе со всем моим спамом, спамом, который он поймал, и спамом, который он пропустил. Это также была более старая версия, и я не использовал все функции.При этом, если вам интересно, попробуйте. Существует много других отличных программ. Быстрый поиск в Google найдет их.

Когда установлен Spambayes, он переместит несколько файлов, которые начинаются с sb_, в ваш каталог / usr / bin. Нас будут интересовать sb_mboxtrain.py и sb_filter.py. Первый тренирует спам-фильтр, а второй классифицирует входящий спам. Я попробовал два метода начального обучения:

  1. Так как у меня уже накопились тысячи спама и любительских (не спам) сообщений, я сначала попробовал сначала обучиться работе с этой старой почтой.Результаты были нормальными, но почта не сортировалась. Эти проблемы разрешились бы сами собой, если бы продолжили обучение неправильно классифицированной почте, но это также заняло бы некоторое время, потому что база данных уже была обучена так много.
  2. Второй метод, который я использовал, оказался чрезвычайно эффективным. Я начал без обучения начальным сообщениям. Я просто позволяю Spambayes работать без информации. Затем я отправил спам и любительские сообщения, которые оказались в неправильном почтовом ящике, в указанную папку.Затем я запускаю программу обучения Spambayes по этим пропущенным секретным сообщениям.

Результаты второго метода были потрясающими. Даже без того, чтобы вручную классифицировать очень много сообщений, Spambayes выполняет на высшем уровне. Посетите Spambayes Wiki, чтобы узнать о многих других методах обучения. Я расскажу о простых методах сортировки пропущенных классификаций в разделах Mutt и Squirrel Mail.

    Начальная настройка спам-системы

    Нам нужно, чтобы в папках Maildir хранилась наша обычная почта, почта, классифицированная как спам, почта, классифицированная как ненадежная, пропущенная спам и пропущенная ветчина.

    Если стандартный каталог Maildir (~ / Maildir) еще не существует, можно создать его с необходимыми подкаталогами, чтобы сделать его почтовым ящиком. Выполните эти команды из своей учетной записи пользователя, который будет получать почту.

      $ mkdir ~ / Maildir
      $ mkdir ~ / Maildir / {new, cur, tmp}

    А теперь остальные 4 каталога, которые мы собираемся использовать для борьбы со спамом (скрытие каталогов будет сделано для интеграции с Squirrelmail):

      $ mkdir ~ / Maildir / {.MissedSpam, .MissedHam, .CaughtSpam, .Unsure}
      $ mkdir ~ / Maildir / .MissedSpam / {new, cur, tmp}
      $ mkdir ~ / Maildir / .MissedHam / {new, cur, tmp}
      $ mkdir ~ / Maildir / .CaughtSpam / {new, cur, tmp}
      $ mkdir ~ / Maildir / .Unsure / {new, cur, tmp}

    Сообщения, которые мы будем рассматривать как спам, будут в ~ / Maildir / .MissedSpam, а ветчина будет в ~ / Maildir / .MissedHam. Давайте создадим скрипт и задание cron, которое позаботится об обучении базы данных Spambayes.Создайте файл ~ / Maildir / train_spambayes и добавьте это:

       #! / Bin / sh
      # Скрипт для копирования пропущенного спама и ветчины в правильные папки
      # и запускаем sb_mboxtrain.py для обучения спамбаев
      # Обучение будет проводиться только на пропущенном спаме и ветчине
      
      # Файлы, которые мы сохранили или отозвали, могут находиться в новом каталоге
      # Мы хотим, чтобы они тренировались
      mv /home/hypexr/Maildir/.MissedSpam/new/* \
      /home/hypexr/Maildir/.MissedSpam/cur 2> / dev / null
      mv /home/hypexr/Maildir/.MissedHam/new/* \
      / главная / hypexr / Maildir /.ПропущенныйHam / cur 2> / dev / null
      /usr/bin/sb_mboxtrain.py -d /home/hypexr/.hammie.db \
      -g /home/hypexr/Maildir/.MissedHam \
      -s /home/hypexr/Maildir/.MissedSpam 

    Сделать скрипт исполняемым:

      $ chmod + x ~ / Maildir / train_spambayes

    Настройте нашу базу данных, которая будет проверяться для новой электронной почты и обучаться работе с новым спамом / ветчиной:

      $ / usr / bin / sb_filter.py -d $ HOME / .hammie.db -n

    Вам нужно установить cron, чтобы он мог запускать приведенный выше скрипт, обучающий Spambayes, каждую ночь в 3:21. Отредактируйте свои задания cron с помощью команды crontab -e и добавьте:

      21 3 * * * ~ / Maildir / train_spambayes
    Конфигурация Procmail для Spambayes

    Это основные рецепты procmail, которые отсортируют спам от ветчины.X-Spambayes-Classification: не уверен
    $ {UNSURE}

    # Все остальное ловит.
    # Все, что осталось, попадает в папку DEFAULT
    : 0:
    $ {DEFAULT}

Таким образом, входящая почта не фильтруется через правила procmail, где sb_filter Spambayes определяет, является ли она спамом или радиолюбителем. Теперь почта находится в правильных каталогах и готова к доступу для любого читателя / внешнего интерфейса, который вы хотите. Далее я собираюсь описать настройку Mutt и SquirrelMail для просмотра вашей почты.Mutt будет самым мощным вариантом, сочетающим скорость и гладкость, но SquirrelMail сможет соответствовать функциональности.

Конфигурация Mutt

Сначала нам нужно установить переменную MAIL, чтобы Mutt знал, где искать вашу почту. В вашем ~ / .bashrc (создать, если не существует) добавьте строку:

Выйдите из оболочки и войдите снова, чтобы переменная была установлена, или выполните export MAIL = ‘~ / Maildir’ . В некоторых системах Mutt не будет использовать $ MAIL для определения местоположения вашего почтового ящика.При попытке запустить Mutt, если он сообщает сообщение об отсутствии почтового каталога, вы можете попробовать установить переменную MAILDIR или просто создать каталог, который он хочет использовать, и сделать его допустимым Maildir: mkdir -p ~ / .maildir / {cur, new, tmp} где .maildir — это папка, которую Mutt хочет использовать. Если вы используете каталог, отличный от ~ / Maildir , не забудьте заменить его везде, где я упоминаю Maildir в этом документе.

А теперь самое интересное. Давайте сделаем так, чтобы все выглядело красиво и интегрировано в Mutt.Если вы запустите Mutt прямо сейчас, вы увидите все письма, полученные вашей системой после того, как вы выполнили описанные выше действия. Если в Mutt нет почты, и она должна быть, вам необходимо сначала проверить, отфильтровал ли ее Spambayes в ваши каталоги .Unsure или .CaughtSpam . Введите « c », чтобы изменить каталог, и введите ~ / Maildir / Unsure и проверьте почту, классифицированную как спам: « c » ~ / Maildir / CaughtSpam .Если вы все еще не нашли письмо, которое ожидали получить, убедитесь, что вы правильно настроили Postfix, Fetchmail и Procmail. Также попробуйте отправить письмо прямо на [email protected] и посмотрите, появится ли оно в одном из каталогов выше.

Теперь почта поступает в вашу систему, и мы можем проверить, как Spambayes классифицировал ее, проверив различные почтовые папки. Пропущенное письмо нужно просто переместить в соответствующие папки для обучения.
Чтобы вручную переместить неправильно классифицированное спам-сообщение:

  1. От вас Почтовый ящик Maildir помечает каждое полученное сообщение, которое является спамом. Сделайте это, нажав « t », и рядом с сообщениями появится звездочка. После того, как все сообщения будут помечены, нажмите «; m ‘и введите ~ / Maildir / MissedSpam , и спам-сообщения в вашем почтовом ящике будут перемещены в почтовый ящик MissedSpam для обучения спамбаев.
  2. При просмотре почты, классифицированной как спам в ‘~ / Maildir / CaughtSpam’, пометьте все сообщения, которые она считала спамом, и нажмите ‘; C ‘и введите ~ / Maildir / MissedHam .Теперь снова пометьте их и нажмите «; m ‘и введите ~ / Maildir , чтобы переместить их в свой почтовый ящик, где они должны были быть размещены в первую очередь.

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

    Конфигурация .muttrc

    Этот файл .muttrc сэкономит вам квазиллион .. Это ровно квиазаллиона часов в производительности при работе с нашей текущей настройкой.Вот он:

       # Emacs - мой любимый редактор. Я в основном читал, что людям нравится
      # используя здесь emacs-client и используя сервер emacs, чтобы
      # редактирование открывается в существующем сеансе emacs, но я предпочитаю
      # загрузка нового экземпляра. Редактор по умолчанию - какой-то vi
      установить редактор = "emacs"
      
      # Установка этих макросов спасет нас все то время, когда я был
      #  говоря о. Теперь вместо того, чтобы вводить все эти
      # символа для перемещения почты, мы можем просто пометить сообщения
      # и, если в вашем почтовом ящике есть спам, нажмите "S".# Переместить почту в правильные каталоги
      индекс макроса S "; s ~ / Maildir / .MissedSpam \ r \ r $ \ r"
      макропейджер S "; s ~ / Maildir / .MissedSpam \ r \ r $ \ r"
      индекс макроса H "; C ~ / Maildir / .MissedHam \ r \ r; s ~ / Maildir \ r \ r $ \ r"
      макропейджер H "; C ~ / Maildir / .MissedHam \ r \ r; s ~ / Maildir \ r \ r $ \ r"
      индекс макроса M "; s ~ / Maildir / \ r"
      макропейджер M "; s ~ / Maildir / \ r"
      
      # Это позволяет мне быстро перемещать электронные письма, связанные с поиском работы, в
      # правильный каталог. Хотите дать мне работу? :)
      индекс макроса B "; s ~ / Maildir /.Работа \ r \ r $ \ r "
      макропейджер B "; s ~ / Maildir / .Job \ r \ r $ \ r
      
      # Вот как мы перейдем к разным
      # почтовых ящиков. Нажав «alt-1», мы перейдем в наш почтовый ящик.
      # 'alt-2', и мы смотрим на почту, которую классифицировал Spambayes
      # как спам. и т.п.
      # Дополнительные почтовые ящики, которые у меня есть, предназначены для списков рассылки, в которых я участвую.
      # Я покажу рецепт procmail, который автоматически ставит
      # список рассылки отправляет письмо в его правильный почтовый ящик ниже.
      
      # Быстро перемещаться в почтовые ящики
      индекс макроса  1 "c ~ / Maildir \ r"
      макропейджер  1 "c ~ / Maildir \ r"
      индекс макроса  2 "c ~ / Maildir /.CaughtSpam \ r "
      макропейджер  2 "c ~ / Maildir / .CaughtSpam \ r"
      индекс макроса  3 "c ~ / Maildir / .Unsure \ r"
      макропейджер  3 "c ~ / Maildir / .Unsure \ r"
      индекс макроса  4 "c ~ / Maildir / .Tur \ r"
      макропейджер  4 "c ~ / Maildir / .Tur \ r"
      индекс макроса  5 "c ~ / Maildir / .Sbayes \ r"
      макропейджер  5 "c ~ / Maildir / .Sbayes \ r"
      индекс макроса  6 "c ~ / Maildir / .Wikka \ r"
      макропейджер  6 "c ~ / Maildir / .Wikka \ r"
      # Обучение Maildirs для спама и хэма
      индекс макроса  8 "c ~ / Maildir /.) * мое_имя@gmail.com '
      
      # Давайте установим больше цветов, чтобы все выглядело красиво. Судя по
      # мое название для этого раздела у меня должно быть плохое отношение к
      # цвета, когда я добавил это.
      # Цветная хрень
      индекс цвета яркий белый по умолчанию ~ N # цвет для новых сообщений
      цвет статус черный желтый
      цвет вложения яркий желтый по умолчанию # прикрепленные файлы
      цвет поиск яркий красный по умолчанию # поиск совпадений
      цвет в кавычках яркий желтый по умолчанию # цитируемый текст в ответах
      цвет quoted1 пурпурный по умолчанию # цитируемый текст в ответах
      цвет тела голубой по умолчанию "((ftp | http | https): // | news:) [^>) \" \ t] + "# URL
      цвет тела голубой по умолчанию "[-a-z_0-9.+] + @ [- a-z_0-9.] + "# электронное письмо
      
      # Остальное очень важно для функциональности и
      # читаемость.
      
      # Не просить переместить прочитанное сообщение
      установить ход = нет
      
      # Моя подпись находится в этом файле
      установить подпись = "~ / .signature"
      
      # Измените почту, чтобы она выглядела как [email protected]
      # Прикрепите сюда свой адрес электронной почты.
      my_hdr От: Скотт Риппи 
      
      # Элемент управления заголовком h отображает заголовок в пейджере
      # Я хочу видеть только непроигнорированные по умолчанию
      игнорировать * # отсеять все заголовки
      неотмеченная дата от: до cc subject organization # теперь покажи мне это...
      
      # Спасибо многим людям, написавшим документы и сообщения, которые я
      # получили эти настройки из. 
    Новые команды Mutt

    Вот самые полезные (с точки зрения борьбы со спамом) команды, которые мы теперь можем использовать в mutt:

       t Пометить сообщения, которые нужно обработать
      S Отправлять сообщения в папку обучения спаму
      H Отправить сообщение / я в папку с обучением радиолюбителей и во входящие
      alt-1 Изменить почтовый ящик на Maildir / (inbox)
      alt-2 Изменить почтовый ящик на.CaughtSpam
      alt-3 Изменить почтовый ящик на .Unsure
      alt-8 Изменить почтовый ящик на .MissedSpam
      alt-9 Изменить почтовый ящик на .MissedHam 

    Так, например, если в вашем почтовом ящике появляется пара спам-сообщений, вы можете пометить их и нажать « S » (запомните прописные буквы s), и они исчезнут в .MissedSpam для обучения.

Конфигурация SquirrelMail

Чтобы настроить SquirrelMail, зайдите в html_base_directory / squirrelmail / config и запустите ./conf.pl . Отредактируйте параметры в соответствии со своими потребностями. Если вы хотите протестировать свою конфигурацию, перейдите на http: //localhost/squirrelmail/src/configtest.php .

Теперь перейдите по адресу http: // localhost / squirrelmail / и войдите в систему, используя свою учетную запись. Если у вас есть электронная почта во входящем ящике, вы должны увидеть его после входа в систему. Теперь нажмите на опцию Folders вверху, выберите все папки почтового ящика, которые мы создали ранее (они перечислены здесь, потому что мы добавили префикс их с точкой) и нажмите «Подписаться».Нажмите «Обновить», и почтовые ящики должны быть перечислены на боковой панели. Теперь вы можете использовать SquirrelMail почти для всех ваших почтовых нужд, включая пометку сообщений и перемещение их в нужные папки для обучения Spambayes и проверки почты, которую Spambayes классифицировал как спам и неуверенный. Единственная функциональность из нашей настройки mutt, которую нельзя воспроизвести в SquirrelMail, — это копирование пропущенной ветчины в ее обучающую папку, а затем перемещение ее в ваш почтовый ящик. Это связано с отсутствием возможности копирования.Поэтому вам нужно будет зайти в папку с обучением радиолюбителям, чтобы увидеть часть почты, которая должна быть в вашем почтовом ящике.

!!! ВАЖНОЕ ПРИМЕЧАНИЕ ПО БЕЗОПАСНОСТИ !!! — Такое использование SquirrelMail небезопасно! Отправка паролей в виде обычного текста, которые вы используете для своей учетной записи Unix, доступна в

.

Почтовый сервер — ArchWiki

Почтовый сервер состоит из нескольких компонентов. Агент пересылки почты (MTA) получает и отправляет электронные письма через SMTP. Полученные и принятые электронные письма затем передаются агенту доставки почты (MDA), который хранит почту в почтовом ящике (обычно в формате mbox или Maildir). Если вы хотите, чтобы пользователи имели возможность удаленного доступа к своей почте с помощью почтовых клиентов (MUA), вам необходимо запустить сервер POP3 и / или IMAP.

Программное обеспечение

Эту статью или раздел нужно расширить.

Все это программное обеспечение, кроме Sendmail, включает в себя агента доставки почты.

  • dma — Крошечный агент по транспортировке почты.
https://github.com/corecode/dma || dma AUR
  • Exim — агент пересылки почты с широкими возможностями настройки.
https://exim.org/ || exim
  • OpenSMTPD — агент передачи почты, часть проекта OpenBSD.
https://opensmtpd.org/ || opensmtpd
  • Postfix — агент передачи почты, предназначенный для быстрого, простого в администрировании и безопасного.
http://www.postfix.org/ || postfix
  • Sendmail — Известный агент пересылки почты.
http://www.sendmail.org/ || sendmail AUR

Серверы POP3 / IMAP

  • Courier — агент пересылки почты, предоставляющий услуги POP3, IMAP, веб-почты и списков рассылки в качестве отдельных компонентов.
https://www.courier-mta.org/ || courier-mta AUR
  • Cyrus IMAP — Агент пересылки почты с настраиваемым форматом спула почты, предоставляет услуги POP3 и IMAP.
https://www.cyrusimap.org/ || cyrus-imapd AUR
  • Dovecot — Сервер IMAP и POP3, созданный для обеспечения безопасности, быстрой и простой настройки.
https: // dovecot.org / || dovecot
https://www.washington.edu/imap/ [мертвая ссылка 2020-03-30 ⓘ] || imap

Автономные MDA

  • fdm — Простая программа для доставки и фильтрации почты.
https://github.com/nicm/fdm || fdm
  • Procmail — Программа для фильтрации, сортировки и хранения электронной почты (без поддержки).
http://www.procmail.org/ || procmail
  • Maildrop — Почтовый фильтр / агент доставки почты, используемый почтовым сервером Courier.
https://www.courier-mta.org/maildrop/ || courier-maildrop AUR

См. также Википедия: Сравнение серверов электронной почты.

Порты

Назначение Порт Протокол Шифрование
Принимать почту от других MTA. 25 SMTP STARTTLS
Принимать материалы от MUA. 587 SMTP STARTTLS
465 SMTPS неявный TLS
Разрешить MUA получать доступ к почте. 110 POP3 STARTTLS
995 POP3S неявный TLS
143 IMAP STARTTLS
993 IMAPS неявный TLS

Запись MX

Для размещения почтового сервера требуется доменное имя с записью MX, указывающей на доменное имя вашего агента передачи почты.
Доменное имя, используемое в качестве значения записи MX, должно соответствовать хотя бы одной записи адреса (A, AAAA) и не должно иметь записи CNAME в соответствии с RFC 2181, иначе вы не сможете получать почту с некоторых почтовых серверов.Настройка записей DNS обычно выполняется в интерфейсе настройки регистратора доменных имен.

TLS

Чтобы получить сертификат, см. Использование OpenSSL #.

Аутентификация

Существуют различные методы аутентификации электронной почты.

Структура политики отправителя

Из Википедии:

Sender Policy Framework ( SPF ) — это протокол проверки электронной почты, предназначенный для обнаружения и блокировки спуфинга электронной почты путем предоставления механизма, позволяющего приемным обменникам почты проверять, что входящая почта из домена приходит с IP-адреса, авторизованного этим доменом. администраторы.

Чтобы другие почтовые обменники могли проверять почту, явно отправленную из вашего домена, вам необходимо установить запись DNS TXT, как описано в статье в Википедии (есть также онлайн-мастер). Чтобы проверить входящую почту с помощью SPF, вам необходимо настроить свой агент передачи почты для использования реализации SPF. Доступно несколько реализаций SPF: libspf2, perl-mail-spf и perl-mail-spf-query.

Следующие веб-сайты позволяют проверить свою запись SPF:

Совет: SPF может быть полезен даже для доменов, которые не используются для отправки электронной почты.Публикация политики типа v = spf1 -all заставляет любой почтовый сервер, применяющий SPF, отклонять электронные письма с вашего доменного имени, предотвращая тем самым неправомерное использование.

Схема перезаписи отправителя

Схема перезаписи отправителя (SRS) — это безопасная схема, позволяющая пересылать отказы для пересылаемых электронных писем на стороне сервера без нарушения структуры политики отправителя.

Для Postfix см. Схему перезаписи отправителя Postfix #.

ДКИМ

DomainKeys Identified Mail (DKIM) — это метод аутентификации электронной почты на уровне домена, предназначенный для обнаружения подделки электронной почты.

Доступные реализации DKIM: OpenDKIM и perl-mail-dkim.

Тестирование

Есть несколько вариантов, которые помогут вам проверить записи DNS, предоставить возможности и поддержку шифрования.

Специальные инструменты

Выделенные сайты

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

Советы и хитрости

Большинство почтовых серверов можно настроить на удаление IP-адресов пользователей и их агентов из исходящей почты.

Доступные дополнения, которые обычно можно интегрировать:

.

Бесплатный почтовый сервер | Axigen

Бесплатный почтовый сервер

Axigen — отличная универсальная альтернатива ПО с открытым исходным кодом — рекомендуется для малых предприятий, проектов интеграции или тестовых сред.

Что включено
5 доменов, 5 пользователей, 5 групп

Положитесь на нашу уникальную технологию

Технология высокопроизводительного почтового сервера Axigen
специально создан для обеспечения быстрого и безопасного
передача, обработка и доставка электронной почты.

Адаптирован к вашей повседневной работе

Адресная книга, быстрый поиск по индексу, импорт контактов
/ export, сообщения об отсутствии на работе, правила и фильтры и многое другое.

Соберите всю электронную почту в одном месте

Получать сообщения из внешних аккаунтов
(например, Yahoo! Mail, Gmail) в вашем Axigen
входящие и сгенерируйте временные адреса электронной почты
для подписки на информационную рассылку.

Календарь и сотрудничество

Планирование встреч и назначение задач

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

Общий доступ к календарям и общим папкам

Эффективно сотрудничайте с помощью общего доступа к папкам — будь то общие календари или открытие почтового ящика коллеги — все это есть.

Отправлять письма от имени других пользователей

Предоставьте другим право отправлять электронные письма от вашего имени или определять групповые рабочие процессы через общие папки и позволять нескольким людям отвечать от вашего имени.

Доступ в любое время и в любом месте, через

Ваш любимый почтовый клиент

Отправляйте и получайте электронные письма из вашего любимого почтового клиента POP3 / IMAP, такого как Outlook, Mozilla Thunderbird или Apple Mail.

Outlook Connector премиум

Получите естественную связь между Axigen и Outlook с помощью нашего Outlook Connector, обеспечивающего автономную работу, расширенный поиск, фильтры и т. Д.

Беспроводная мобильная синхронизация

Получите доступ к своим сообщениям, контактам и календарям прямо со своего Mac или предпочитаемого планшета или смартфона через наши встроенные CalDAV и CardDAV.

Веб-почта Axigen

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

Ajax «Refreshless» WebMail с удобством использования как на настольном компьютере

Навигация с помощью клавиатуры и сочетания клавиш, перетаскивание, просмотр списка электронной почты «в реальном времени», часто используемые папки, фильтры электронной почты, индивидуальный черный список / белый список.

Фирменный и локализованный стандартный интерфейс веб-почты

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

Интерфейс мобильной веб-почты

Доступ к своей учетной записи WebMail с мобильных устройств с доступом в Интернет, чтобы проверять электронную почту, составлять / удалять сообщения, устанавливать разрешения для папок и многое другое.

Многоуровневая безопасность

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

  • Аутентификация и шифрование
  • Многоуровневый контроль доступа (правила, подобные брандмауэру)
  • Соответствие SPF и DomainKeys
  • Внесение в черный / белый / серый список
  • Фильтрация стран, проверка DNS и черные списки
  • Система подтверждения личности
  • Политики приема / отправки сообщений
  • Политика защиты от выдачи себя за другое лицо и истечения срока действия пароля

Интеграция с антивирусами и антиспамом

Чтобы создать свой уровень фильтрации контента, вы можете интегрировать стандартный стек защитных инструментов с открытым исходным кодом через Milter — ClamAV и SpamAssassin, OrangeAssassin или Rspamd — или даже добавить MimeDefang в свой микс.

См. Полный набор функций безопасности Axigen

Простое обновление до бизнес-сообщений

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

Учить больше

Консоль веб-администрирования

Благодаря веб-интерфейсу администрирования Axigen, настройка становится легкой, а обслуживание — простым и понятным.

10-минутный процесс настройки

Быстрая и простая установка почтового сервера, занимающая всего 10 минут вашего времени.

Демонстрация веб-почты

Outlook и мобильная синхронизация включены

ЖИВАЯ ДЕМО

Демо WebAdmin

Интеллектуальная консоль администратора Axigen

ЖИВАЯ ДЕМО

.

Отправка почты из командной строки с помощью внешнего SMTP-сервера в Linux — BinaryTides

Отправлять почту через SMTP-серверы

Команда mail по умолчанию на терминале Linux использует локальный SMTP-сервер (mta) на порту 25 для отправки электронной почты. Однако иногда вам необходимо указать внешний SMTP-сервер, который будет использоваться для отправки писем.

Например, вы только что настроили smtp-сервер, такой как Postfix или Exim, затем вы захотите протестировать его, чтобы проверить, правильно ли он получает и ретранслирует электронные письма.

Возможность отправлять почту из командной строки с помощью этого внешнего SMTP-сервера — это быстро, вместо того, чтобы настраивать почтовый клиент, такой как Thunderbird, на вашем локальном компьютере.

Есть 2 утилиты командной строки, называемые mailx и swaks, которые можно использовать для отправки почты с помощью внешнего SMTP-сервера. Они очень полезны, когда вам нужно отправлять электронные письма из сценария bash в автоматическом режиме.

1. Команда mailx

Команда mailx доступна из множества различных пакетов, таких как mailutils, heirloom-mailx и т. Д.Сначала вам нужно использовать команду aptitude для поиска пакета mailx, доступного для вашей системы. Вот пример

 $ aptitude search mailx
p bsd-mailx - простой почтовый пользовательский агент
p bsd-mailx: i386 - простой почтовый пользовательский агент
v mailx -
v mailx: i386 

Чтобы узнать, какую команду mailx использует ваша система, запустите команду readlink.Вот пример вывода.

 $ readlink -f / usr / bin / mailx
/ usr / bin / bsd-mailx
$ readlink -f / usr / bin / mailx
/usr/bin/mail.mailutils 

Не все варианты mailx могут использовать внешние SMTP-серверы для отправки почты. Только тот, который идет из пакета s-nail (извлеченный с помощью heirloom-mailx), может это сделать.

Мы будем использовать heirloom-mailx, так как он позволяет указать детали SMTP-соединения в одной команде и быстро отправить запрос и отправить письмо по электронной почте.

 $ sudo apt-get install heirloom-mailx 

Теперь отправьте электронное письмо с таким внешним SMTP-сервером —

 echo «Это тело сообщения, оно содержит сообщение» | mailx -v -r "[электронная почта защищена]" -s "Это тема" -S smtp = "письма.example.com:587 "-S smtp-use-starttls -S smtp-auth = login -S smtp-auth-user =" [электронная почта защищена] "-S smtp-auth-password =" abc123 "-S ssl-verify = игнорировать [адрес электронной почты защищен] 

Вот пошаговая версия той же команды —

 $ echo "Это тело сообщения, оно содержит сообщение" | mailx -v \
> -r "[электронная почта защищена]" \
> -s "Это тема" \
> -S smtp = "mail.example.com:587" \
> -S smtp-use-starttls \
> -S smtp-auth = логин \
> -S smtp-auth-user = "[электронная почта защищена]" \
> -S smtp-auth-password = "abc123" \
> -S ssl-verify = игнорировать \
> [электронная почта защищена] 

Убедитесь, что вы используете правильные настройки, такие как номер порта, механизм аутентификации и т. Д.Команда будет выдавать подробный вывод, содержащий полную информацию о SMTP-обмене, который происходит позади, что упрощает тестирование и отладку.

Примечание: Пакет heirloom-mailx был удален из Ubuntu версии 18 и новее. Теперь вам нужно установить пакет s-nail.

 $ sudo apt-get install s-nail 

Команда s-nail аналогична команде heirloom mailx. Просто название другое. Выполните ту же команду выше, заменив mailx на s-nail, и она должна работать.

Если вы используете последнюю версию s-nail (14.9.x), синтаксис для указания th

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *