Почтовый сервер 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
, однако в большинстве случаев его приходится инсталлировать самостоятельно, что мы и продемонстрируем далее.
- Все дальнейшие действия будут осуществляться через стандартный «Терминал» путем ввода туда команд, поэтому запустите его удобным образом, например, через меню приложений.
- Введите команду
sudo apt-get -y install postfix
, если вы владеете дистрибутивом Debian / Mint / Ubuntu. Для сборок, которые основаны на RedHat, потребуется указатьdnf -y install postfix
. - Данное действие будет производиться от имени суперпользователя, следовательно, придется подтвердить права, указав пароль учетной записи. Учтите, что вводимые таким образом символы на экране не отображаются.
- Запустится процесс получения и распаковки файлов. Не прерывайте его и не выполняйте других действий, чтобы случайно не наткнуться на ошибки.
- Откроется отдельное окно настройки пакета. Здесь ознакомьтесь с представленными данными, чтобы далее уже знать, какой именно параметр следует выбрать.
- Мы предлагаем использовать общий тип «Без настройки», чтобы в будущем самостоятельно задать каждый параметр.
- После операция инсталляции продолжится, и вы будете уведомлены о его окончании, когда появится новая строка ввода.
- По завершении процесса добавьте новую службу сервера в автозагрузку, введя
systemctl start postfix
. - Это действие тоже следует подтвердить вводом пароля от учетной записи суперпользователя.
- Теперь активируйте ее через
systemctl enable postfix
, чтобы приступить к настройке. - В этот раз придется ввести пароль сразу несколько раз, поскольку подтверждение подлинности будут запрашивать разные компоненты одновременно.
Во время этих действий не должно возникнуть никаких проблем, поскольку в них нет ничего сложного или необычного. Однако если что-то все-таки пошло не по плану, внимательно изучите сообщения, которые указываются в строке консоли, поскольку чаще всего в них содержатся сведения, позволяющие исправить ситуацию.
Шаг 2: Настройка установленного сервера
Конфигурация установленного почтового сервера — самый важный этап, поскольку от этого будет зависеть корректность его функционирования. Нет однозначного ответа или исходного кода, который бы сделал все за пользователя, но можно дать общие советы, чтобы упростить операцию ручной настройки, что мы и покажем далее.
- Как известно, конфигурация в Linux осуществляется путем изменения строк в специальных файлах. Для этого используется удобный текстовый редактор. Новичкам может быть сложно освоить vi, поэтому мы советуем установить сначала более простое решение. Для этого введите в консоли команду
sudo apt install nano
и нажмите на Enter. - Подтвердите уведомление о необходимости скачивания архивов и ожидайте конца загрузки.
- После используйте команду
sudo nano /etc/postfix/main.cf
, чтобы запустить конфигурационный файл. - Здесь обратим внимание лишь на главные параметры.
myhostname
— после знака = вам следует указать имя хоста почтовой системы в интернете, чтобы сервер мог принимать и отправлять письма. - Строка
mydomain
отвечает за обслуживание домена, на котором располагается сервер. - В параметре
myorigin
указывается используемое доменное имя. Мы предлагаем сохранить привычный для многих видmyorigin = $mydomain
. mydestination
— последний параметр, на который хотим обратить внимание. Эта строка определяет конечные доменные имена, куда будут доставляться письма. Указывайте значения в соответствии со своими потребностями.- После внесения всех изменений нажмите на Ctrl + O, чтобы сохранить файл.
- Не меняйте его название, а просто нажмите на Enter.
- Завершите работу в текстовом редакторе через Ctrl + X.
- Теперь потребуется перезагрузить сервер, чтобы все изменения вступили в силу. Сделайте это в «Терминале», написав команду
systemctl reload postfix
. - У вас не получится сразу же узнать, были ли допущены какие-то ошибки в конфигурации, поэтому для этого понадобится запускать средство проверки через
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, выполните следующую инструкцию.
- В консоли введите команду
sudo apt-get -y install dovecot-imapd dovecot-pop3d
и нажмите на Enter. Для обладателей RedHat команда выглядит немного иначе:dnf -y install dovecot
. - Подтвердите права суперпользователя, введя пароль в новой строке.
- Ожидайте окончания получения и распаковки архивов. Во время этой операции также будут обновлены правила профиля OpenSSH.
- Добавьте рассматриваемый инструмент в автозагрузку через
systemctl start dovecot
. - Подтвердите это действие, написав пароль в появившемся окне.
- Вставьте команду
systemctl enable dovecot
, чтобы запустить Dovecot. - Теперь вы можете открыть конфигурационный файл для настройки через
sudo nano /etc/dovecot/dovecot.conf
. - Изначально в этом файле не будет практически никаких параметров, поэтому их понадобится вставлять самостоятельно. Не станем углубляться в тонкости настройки, а лишь предоставим самые базовые и необходимые строки, который вы можете скопировать, вставить и сохранить файл.
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 |
На этом мы завершаем наши изменения в main.ср. Нам просто нужно создать базы данных хеш-псевдонимов, которые мы определили выше. Добавьте эти строки в начало / etc / postfix / aliases (конечно, заменив hypexr своей учетной записью):
корень: hypexr спам: hypexr ветчина: hypexr |
Создайте базу данных. Из / etc / postfix dir:
Настройте SMTP-сервер и аутентификацию для почтового ретранслятора SBC. sasl_passwd :
smtp.sbc.mail.yahoo4.akadns.net [email protected]: my_passw |
Примечание: Имя сервера может время от времени меняться. 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. Первый тренирует спам-фильтр, а второй классифицирует входящий спам. Я попробовал два метода начального обучения:
- Так как у меня уже накопились тысячи спама и любительских (не спам) сообщений, я сначала попробовал сначала обучиться работе с этой старой почтой.Результаты были нормальными, но почта не сортировалась. Эти проблемы разрешились бы сами собой, если бы продолжили обучение неправильно классифицированной почте, но это также заняло бы некоторое время, потому что база данных уже была обучена так много.
- Второй метод, который я использовал, оказался чрезвычайно эффективным. Я начал без обучения начальным сообщениям. Я просто позволяю 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 классифицировал ее, проверив различные почтовые папки. Пропущенное письмо нужно просто переместить в соответствующие папки для обучения.
Чтобы вручную переместить неправильно классифицированное спам-сообщение:
- От вас Почтовый ящик Maildir помечает каждое полученное сообщение, которое является спамом. Сделайте это, нажав « t », и рядом с сообщениями появится звездочка. После того, как все сообщения будут помечены, нажмите «; m ‘и введите ~ / Maildir / MissedSpam , и спам-сообщения в вашем почтовом ящике будут перемещены в почтовый ящик MissedSpam для обучения спамбаев.
- При просмотре почты, классифицированной как спам в ‘~ / 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, который автоматически ставит # список рассылки отправляет письмо в его правильный почтовый ящик ниже. # Быстро перемещаться в почтовые ящики индекс макроса |
Новые команды 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
.