Когда начинающие системные администраторы сталкиваются с необходимостью настройки почтового сервера, они могут столкнуться с трудностями в понимании основных принципов работы почтового механизма.
Чтобы внести ясность, я подготовил эту статью, основываясь на освещении тех моментов, которые были мне неясны на тот момент. Статья также подойдет разработчикам программного обеспечения, которым необходимо быстро настроить почтовый сервер и протестировать свое приложение.
Итак, прежде чем броситься настраивать почтовый сервер, необходимо понять, как в принципе работает почта.
Давайте буквально посмотрим на пример.
Пусть у нас будет внешний статический IP — 195.195.122.129 и собственный почтовый сервер, зарегистрированный домен example.ru. Когда кто-то отправляет почту на почтовый адрес, например, [email protected], то рано или поздно запрос о том, с какого ip отправлять почту, у человека с адресом на домене example.ru (то есть DNS-запрос), дойдет до DNS-сервера, где хранятся mx-записи с реквизитами example.ru, то есть, если еще проще, этот DNS-сервер в соответствии с этой записью отвечает, что почта, идущая на example.ru, должна перенаправляться на 195.195.122.129. И когда письмо приходит на наш сервер, мы его обрабатываем сами.
Мы обработаем входящее письмо с помощью Агента транспорта сообщений (далее MTA).
Под MTA мы подразумеваем программу, которая может: 1. Перенаправить письма от почтового клиента пользователя (Mail User Agent, далее MUA) на удаленный почтовый сервер.
MTA пересылает электронные письма, используя SMTP (простой протокол передачи почты).
Примеры MUA включают Mozilla Thunderbird, MS Outlook и т. д. 2. Доставлять письма в локальные почтовые ящики (обратите внимание, что здесь имеются в виду ящики на сервере, а не на локальных компьютерах пользователей).
3. Пересылайте письма другим MTA. В этой статье мы рассмотрим MTA Postfix. Его легко настроить, что позволяет сосредоточиться на содержании, а не на форме.
Ниже приведены основные параметры основного файла конфигурации — main.cf. Например, в openSUSE этот файл находится в каталоге /etc/postfix. Вы можете изменить значения параметров в соответствии со своими потребностями.
1. каталог_очереди = /var/spool/postfix В процессе получения почты письма могут находиться в разных состояниях.
Некоторые только что отправлены на отправку, другие уже получены и пользователю остаётся только забрать их, а третьи вообще зависли, потому что менеджер, которому отправлено письмо, был после жесткого запоя и не мог внятно продиктовать свою почту , поэтому письмо не может дойти до адресата.
Для каждой группы писем, имеющих одинаковый статус, предусмотрены отдельные каталоги, которые будут находиться именно там, где указано в параметреqueue_directory. 2. mail_owner = постфикс Дело в том, что будет плохо, если демон Postfix будет работать в режиме суперпользователя, поэтому при установке Postfix создается новый пользователь с именем postfix, который и будет владельцем этого процесса.
3. имя_хоста = mail.example.ru Здесь мы устанавливаем полное доменное имя нашего хоста.
Это имя будет указано в операциях, выполняемых по протоколу SMTP, в частности в приветствии HELO. В принципе, этот параметр может отсутствовать, если указан следующий параметр — mydomain. Вы можете оставить значение myhostname совершенно пустым, задав при этом непустое значение для mydomain. Но лучше все равно его установить, так как некоторые почтовые сервера, на которые мы пересылаем почту, могут жаловаться, что значение myhostname левое, взятое из ниоткуда, и вообще откажутся принимать от нас почту.
В любом случае, если мы укажем значение для параметра myhostname, значение mydomain будет сгенерировано автоматически на основе значения myhostname. 4. мойдомен = example.ru Здесь мы пишем наше доменное имя.
А если мы пропустили предыдущий параметр, то он будет автоматически создан путем слияния вывода команды «uname -n», определяющей имя текущего хоста.
5. myorigin = example.ru При отправке почты этот параметр добавляет свое значение к адресу отправителя, если он не указан полностью.
Например, если почта адресована пользователю thedude (это может быть даже почта, приходящая от локальных программ на этом сервере, например mdadm может отправить сообщение с текстом «чувак, проверь рейд-массивы»), то адрес, в соответствии со значением myorigin=example.ru будет преобразовано в [email protected]. 6. mydestination = localhost, $mydomain, $myhostname, localhost.$mydomain Как упоминалось выше, одной из функций MTA является получение почты от некоторых MTA и пересылка ее другим MTA. Итак, параметр mydestination служит для того, чтобы почта, приходящая на определенные адреса, указанные в значении параметра, не перенаправлялась куда-то, а попадала на наш сервер в локальные почтовые ящики.
То есть в нашем случае мы будем принимать почту с адресами [email protected], [email protected] без перенаправления.
Да, еще один момент! Еще может быть непонятно — как создавать пользователей на почтовом сервере, давать им пароли, то есть осуществлять полный контроль над учетными записями пользователей.
Например, вам необходимо создать учетные записи [email protected] и [email protected]. Для этого вам просто нужно создать локальных пользователей на почтовом сервере, например useradd Coolboy; пароль Coolboy; (далее введите пароль для крутого парня) и соответственно useradd coolgirl; пароль крутая девушка; (Девочку без пароля тоже не оставим).
Мы можем увидеть, какие пользователи добавлены, в файле /etc/shadow. Будут хеши логинов и паролей.
Да, еще, команда useradd предусматривает установку пароля сразу (параметр -p), но, к сожалению, после этого все равно придется использовать passwd, поскольку аутентификация происходит по хешу пароля, а useradd с ключом -p параметр записывает пароль в /etc/shadow открытым текстом, например, мы задаем пароль 123456, а в файл будет записано 123456, которое будет принято программой аутентификации как хэш пароля, в результате пользователь не получит электронное письмо с сообщением о том, что пароль неверен.
Таким образом, правильно задав вышеперечисленные параметры в соответствии с нашими потребностями, мы получаем функциональный MTA. Однако это еще не все.
Почта прибыла на наш сервер.
И кто будет распространять его среди пользователей.
А может, они сами заберут? Сейчас мы ответим на эти вопросы.
Итак, процедура получения пользователями писем с нашего сервера будет выглядеть следующим образом.
Взаимодействие почтового сервера с пользовательским MUA осуществляется по протоколу POP3, то есть MUA на своем птичьем языке (команды POP3) сообщает почтовому серверу не жадничать и отдать ему почту.
Однако, чтобы что-то услышать, нужно сначала послушать.
Логично? То есть на сервере должен работать демон, ожидающий запроса по протоколу POP3. Для этого обратим внимание на xinetd. Xinetd (eXtended InterNET Daemon, также называемый суперсервером) — это служба, управляющая сетевыми соединениями.
Если говорить еще проще, он слушает запросы из сети по разным протоколам и имеет инструкции, каким программам на сервере передавать услышанное.
xinetd запускает эти программы, передавая соответствующие параметры.
А xinetd будет передавать запросы по протоколу POP3 на POP3-сервер Qpopper (его необходимо предварительно установить).
Итак, заходим в /etc/xinetd.d, открываем там файл qpopper и приводим его к следующему виду: #
# qpopper - pop3 mail daemon
#
service pop3
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/popper
server_args = -s
flags = IPv4
Названия параметров говорят сами за себя.
Мы еще раз осознаем, что натворили.
Соответствия между указанием типа интернет-сервиса и обрабатывающей его программой (в нашем случае сервис pop3 соответствует /usr/sbin/popper) располагаются в каталоге /etc/xinetd.d в виде файлов, содержащих информация о том, какая программа будет обрабатывать запросы определенного типа/При установке Qpopper сам создал указание, что она будет обрабатывать pop3 запросы.
И нам нужно активировать его, установив для параметра Disable значение no. Сейчас завершающий этап – настройка МУА.
В настройках MUA необходимо указать POP3-сервер и SMTP-сервер (их IP-адреса или доменные имена).
В нашем случае это один и тот же компьютер, поэтому в этих параметрах указываем одно и то же.
Обратите внимание, что во внутренней локальной сети необходимо указать IP сетевого интерфейса, настроенного специально для работы с локальной сетью.
Далее введите имя и пароль своей учетной записи.
И теперь, когда вся почтовая система работает, можно приступить к ее оптимизации, ведь есть еще много вещей, которые можно улучшить, и множество нововведений, которые только так и просятся внедрить.
Удачи! Теги: #linux #*nix #Системное администрирование #mail #postfix #qpopper
-
«Google Чрезвычайно Умело Лоббирует».
19 Oct, 24 -
Работа В Сингапуре
19 Oct, 24 -
Сообщения И Черновики Личного Блога
19 Oct, 24