Почтовый сервер · 3 min read · Oct 06, 2025

Полное решение почтового сервера с виртуальными доменами и пользователями (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Страница 3

IV. Postfix на почтовых серверах обмена

A. Пересборка Postfix

Версия Postfix, включенная в дистрибутив Debian Etch, имеет сломанную поддержку квот. Нам нужно будет пересобрать ее, чтобы квоты работали. Этот процесс пересборки НЕ должен выполняться на фактических производственных MX-серверах. Имеется отдельный сервер, который будет использоваться для выполнения задач сборки (или даже просто отдельная виртуальная машина в Xen). Наш сервер для этой задачи - build.internal.example.com. На этом сервере установите необходимые инструменты сборки:

# apt-get install build-essential dpkg-dev fakeroot debhelper libgdbm-dev libldap2-dev libpcre3-dev libssl-dev libsasl2-dev postgresql-dev po-debconf dpatch libdb4.3-dev libmysqlclient15-dev lsb-release libcdb-dev

Затем загрузите исходный код пакета Postfix:

# cd /usr/src   
# apt-get source postfix

ПРИМЕЧАНИЕ: Убедитесь, что вы используете правильную версию Postfix с помощью следующих команд! Это было написано для Postfix 2.3.8. Вы можете определить текущую работающую версию postfix, введя это в командной строке:

# postconf -d | grep mail_version

Вывод должен выглядеть так:

# postconf -d | grep mail_version   
  mail_version = 2.3.8   
  milter_macro_v = $mail_name $mail_version 

Предполагая, что все готово (и у вас правильные версии), загрузите патч для квот:

# wget http://vda.sourceforge.net/VDA/postfix-2.3.8-vda.patch.gz

Затем вам нужно распаковать патч и применить его к новому исходному коду:

# gunzip postfix-2.3.8-vda.patch.gz  
# cd postfix-2.3.8  
# patch -p1 < ../postfix-2.3.8-vda.patch

И, наконец, пересоберите патчированный пакет:

# dpkg-buildpackage

Вы можете увидеть предупреждение, подобное этому, в конце команды dpkg-buildpackage:

(Warning: Failed to sign .dsc and .changes file)

Вы можете безопасно игнорировать это сообщение.

Эта новая пересборка приведет к созданию нескольких пакетов, вам нужно скопировать postfix_2.3.8-1_i386.deb и postfix-mysql_2.3.8-2_i386.deb на ваши почтовые обменники (MX-1 и MX-2). Теперь вы готовы к установке!

B. Установка Postfix

Поскольку мы используем систему на базе Debian, установка Postfix - это простое дело. Этот подраздел предполагает, что вы работаете на почтовом обменнике 1 (mx-1.example.com), если вы работаете на MX-2, просто замените имя сервера в любых конфигурационных файлах, и вы должны быть готовы. Начните установку, выполнив следующее:

# dpkg -i postfix_2.3.8-2_i386.deb  
# dpkg -i postfix-mysql_2.3.8-2_i386.deb

Если/когда автонастройка задаст вам вопросы о postfix во время установки, просто выберите “Нет конфигурации” (поскольку вы используете это руководство, вы собираетесь настроить его сами!)

dpkg установит все конфигурационные файлы для Postfix в /etc/postfix, поэтому перейдите туда и создайте файл main.cf:

# cd /etc/postfix  
# touch main.cf

Файл main.cf можно редактировать двумя разными способами. Вы можете использовать свой любимый текстовый редактор или воспользоваться встроенным инструментом postfix postconf. Мы уже использовали postconf один раз, чтобы определить нашу версию в подразделе IV.A выше.

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

Начните с заполнения основной информации:

# postconf -e 'myhostname = mx-1.example.com'  
# postconf -e 'smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)'  
# postconf -e 'biff = no'  
# postconf -e 'append_dot_mydomain = no'  
# postconf -e 'myorigin = example.com'  
# postconf -e 'mydestination = $myhostname, localhost, locahost.localdomain'  
# postconf -e 'mynetworks = 127.0.0.0/8'   
# postconf -e 'recipient_delimiter = +'  
# postconf -e 'inet_interfaces = all'  
# postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination \  
    $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps \  
    $virtual_mailbox_domains $relay_recipient_maps $relay_domains \  
    $canonical_maps $sender_canonical_maps $recipient_canonical_maps \  
    $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'

Это все, что вам действительно нужно, чтобы запустить полностью функциональный почтовый сервер с обычными пользователями unix. Мы не хотим обычных пользователей unix, поэтому мы будем редактировать этот файл довольно много. Тем не менее, помните, что нужно заменить example.com на ваш собственный домен! (И mx-1 на mx-2 на втором сервере!)

###

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.