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

Simba1983

Пользователь
Пользователь
13 Мар 2012
53
13
8
41
В этой статье рассказывается как настроить работающий почтовый сервер в Ubuntu или Debian.

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

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

Прямая зона для example.tst:
Код:
					  IN MX 10	  mail.example.tst.
  mail.example.tst.	 IN A		  192.168.10.1
Обратная зона для example.tst:
Код:
192.168.10.1		  IN PTR mail.example.tst.

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

Настройка имени хоста (hostname)
Во-первых, hostname почтового сервера должно быть определено в /etc/hostname и /etc/hosts. Причём в первом файле следует размещать только имя хоста.
Код:
root@mail:~# vim /etc/hostname
mail
Код:
root@mail:~# vim /etc/hosts
Код:
## IP				 Полностью определённое доменное имя	   Имя хоста ##
192.168.10.1		  mail.example.tst						  mail

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

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

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

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

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

Код:
root@mail:~# apt-get install postfix
Во время установки задаются тип почтового сервера и доменное имя.

012.jpg


021.jpg


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

031.jpg


Также задаём доменное имя почтового сервера.
Эта настройка определяет, что все письма, приходящие с этого почтового сервера, будут иметь @example.tst в качестве домена отправителя.
Конфигурационные файлы postfix размещены в /etc/postfix. Важны следующие конфигурационные файлы. Некоторые из них могут отсутствовать и их нужно создать вручную.

transport:
В первую очередь используется для определения, как почта должна быть направлена в направлении конкретного домена назначения. Это тот случай, когда кому-то может быть потребуется отправлять почту, предназначенную для домена XYZ.com, напрямую на IP адрес X.Y.Y.X независимо от каких-либо результатов запросов DNS.

access:
Может быть использован в целях безопасности, например для блокирования отправителей/получателей и их доменов.
aliases:
Используется для задания пользовательских псевдонимов. Например, почта отправленная пользователю userA должна быть принята пользователем userB, а также пользователем userC.

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

Код:
root@mail:~# cd /etc/postfix
root@mail:/etc/postfix# touch transport aliases

main.cf

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

Код:
root@mail:/etc/postfix# vim main.cf
 
## имя сервера ##
myhostname = mail.example.tst
 
## определение псевдонимов ##
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
 
## определение transport ##
transport_maps = hash:/etc/postfix/transport
 
## myorigin задаёт доменное имя для писем, берущих начало с этого сервера. В нашем случае, все исходящие письма должны иметь '@example.tst' в качестве домена отправителя ##
myorigin = example.tst
 
## mydestination параметр определяет, какие домены эта машина будет доставлять локально вместо того, чтобы переправлять на другую машину. ##
mydestination = mail.example.tst, localhost.example.tst, localhost, hash:/etc/postfix/transport
 
## адрес smarthost. тут не используется ##
relayhost =
 
## доверенные сети отправителя. postfix не будет пересылать письма, приходящие из других сетей ##
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.10.0/24
 
## размер почтового ящика в байтах. 0 означает без ограничений ##
mailbox_size_limit = 0
 
## postfix будет прослушивать все доступные интерфейсы, например, eth0, eth1, eth2 и так далее ##
inet_interfaces = all

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

Код:
root@mail:/etc/postfix# vim transport
 
example.tst local:
.example.tst local:
root@mail:/etc/postfix# postmap transport

aliases
Предполагаем, что все письма, отправленные пользователю userA, должны быть доставлены также пользователю userB, для этого файл aliases изменён как показано ниже:
Код:
root@mail:/etc/postfix# vim aliases
userA: userA, userB
root@mail:/etc/postfix# postalias aliases
Обратите внимание: Синтекс 'userA: userB' определяет, что почта должна быть направлена только пользователю userB. Пользователь userA не будет получать копию письма.

SMTP: Запуск и обслуживание
postfix может быть запущен командой.
Код:
root@mail:~# service postfix restart

Лог-файл в /var/log/mail.log должен предоставить полезную информацию, если что-то пойдёт не так. Прослушивает ли почтовый сервер TCP порт 25 можно также проверить используя netstat.
Код:
root@mail:~# netstat -nat
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN

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


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

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

POP/IMAP: Установка dovecot
dovecot — это, без сомнений, лидирующее IMAP и POP серверное программное обеспечения в сообществе Open source. Очень просто установить и настроить dovecot. Для установки dovecot мы опять будем использовать apt-get.
Код:
root@mail:~# apt-get install dovecot-common dovecot-pop3d dovecot-imapd

dovecot может поддерживать POP3 и IMAP (обычный текст), а также зашифрованный POP3S и IMAPS (безопасный).

POP/IMAP: Подготовка конфигурационных файлов
Следующие параметры изменяются как нужно.
Код:
root@mail:~# vim /etc/dovecot/conf.d/10-mail.conf
## расположение почтовых ящиков, заданных в формате 'mbox' ##
mail_location = mbox:~/mail:INBOX=/var/mail/%u
## dovecot даны необходимые разрешения на чтение/запись пользовательских почтовых ящиков ##
mail_privileged_group = mail
Этого должно быть достаточно для запуска службы POP/IMAP в почтовом сервере.

POP/IMAP: Установка службы
Сейчас, когда dovecot установлен и настроен, он может быть запущен, используя следующую команду:
Код:
root@mail:~# service dovecot restart
Вновь лог-файл (/var/log/mail.log) может предоставить важные зацепки, если что-то пойдёт не так.
Узнать, запущен ли dovecot, можно при использовании netstat следующим образом.
Код:
root@mail:/etc/dovecot/conf.d# netstat -nat
tcp 0 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0 0.0.0.0:143 0.0.0.0:* LISTEN

Решение проблем с почтовым сервером
Лучший ваш друг — это лог-файл /var/log/mail.log. Любые зацепки, почему почта не работает, могут быть найдены здесь.
Убедитесь, что файервол должным образом настроен.
Убедитесь, что DNS сервер имеет должные записи.
Для тех, кто хочет развернуть живой почтовый сервер, или любой почтовый сервер, который имеет доступ в Интернет, убедитесь, что ваш SMTP обезопасен. Обычно атаки на SMTP происходят из Интернета, так и от зловредных программ внутри локальной сети.
 
Последнее редактирование:
  • Like
Реакции: StringName

Пользователи онлайн

Сейчас на форуме нет ни одного пользователя.

Последние ресурсы

Статистика форума

Темы
3.838
Сообщения
21.197
Пользователи
7.601
Новый пользователь
hkuno