Поиск по сайту:

Как установить Postfix на CentOS 6


Статус: устарело

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

Причина:

См. вместо этого:

О Постфиксе

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

Шаг первый — установите Postfix и Cyrus

Первое, что нужно сделать, это установить postfix и Cyrus на ваш виртуальный частный сервер, и самый простой способ сделать это — через установщик yum.

sudo yum install postfix
sudo yum install cyrus-sasl
sudo yum install cyrus-imapd

Говорите «Да» подсказке каждый раз, когда она спрашивает. После загрузки всех компонентов у вас будут установлены postfix и cyrus.

Шаг второй — настроить Postfix

Мы собираемся настроить обе программы по отдельности.

Сначала откройте основной файл конфигурации Postfix.

sudo vi /etc/postfix/main.cf

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

Предлагаемый ниже код в большинстве случаев представляет собой просто укороченную и правильно раскомментированную версию того, что уже есть в файле. Для быстрой настройки, которая предоставит вам все необходимые конфигурации для настройки postfix, скопируйте и вставьте приведенную ниже информацию поверх текущей конфигурации Postfix. Будьте осторожны, чтобы исправить доменные имена в myhostname и my domain.

Замените example.com в строке myhostname доменным именем, одобренным DNS. Убедитесь, что фраза по-прежнему mail.yourdomainname здесь

Замените example.com в строке mydomain правильным доменным именем.

soft_bounce             = no
queue_directory         = /var/spool/postfix
command_directory       = /usr/sbin
daemon_directory        = /usr/libexec/postfix
mail_owner              = postfix

# The default_privs parameter specifies the default rights used by
# the local delivery agent for delivery to external file or command.
# These rights are used in the absence of a recipient user context.
# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
#
#default_privs = nobody

myhostname              = mail.example.com 
mydomain                = example.com

mydestination           = $myhostname, localhost
unknown_local_recipient_reject_code = 550

mynetworks_style        = host
mailbox_transport       = lmtp:unix:/var/lib/imap/socket/lmtp
local_destination_recipient_limit       = 300
local_destination_concurrency_limit     = 5
recipient_delimiter=+

virtual_alias_maps      = hash:/etc/postfix/virtual

header_checks           = regexp:/etc/postfix/header_checks
mime_header_checks      = pcre:/etc/postfix/body_checks
smtpd_banner            = $myhostname

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

sendmail_path           = /usr/sbin/sendmail.postfix
newaliases_path         = /usr/bin/newaliases.postfix
mailq_path              = /usr/bin/mailq.postfix
setgid_group            = postdrop
html_directory          = no
manpage_directory       = /usr/share/man
sample_directory        = /usr/share/doc/postfix-2.3.3/samples
readme_directory        = /usr/share/doc/postfix-2.3.3/README_FILES

smtpd_sasl_auth_enable          = yes
smtpd_sasl_application_name     = smtpd
smtpd_recipient_restrictions    = permit_sasl_authenticated,
                                  permit_mynetworks,
                                  reject_unauth_destination,
                                  reject_invalid_hostname,
                                  reject_non_fqdn_hostname,
                                  reject_non_fqdn_sender,
                                  reject_non_fqdn_recipient,
                                  reject_unknown_sender_domain,
                                  reject_unknown_recipient_domain,
                                  reject_unauth_pipelining,
                                  reject_rbl_client zen.spamhaus.org,
                                  reject_rbl_client bl.spamcop.net,
                                  reject_rbl_client dnsbl.njabl.org,
                                  reject_rbl_client dnsbl.sorbs.net,
                                  permit

smtpd_sasl_security_options     = noanonymous
smtpd_sasl_local_domain         = 
broken_sasl_auth_clients        = yes

smtpd_helo_required             = yes 

Шаг третий — доработка Postfix

Вставив нужные конфиги, мы почти закончили настройку постфикса на нашем виртуальном сервере.

Чтобы предотвратить любые ошибки, нам нужно выполнить еще два шага

В конфиге мы включили виртуальные алиасы строкой virtual_alias_maps=hash:/etc/postfix/virtual; Теперь нам нужно настроить эту базу данных.

Откройте этот файл:

sudo vi /etc/postfix/virtual

Удалите весь текст в файле, а затем добавьте следующую единственную строку, заменив фактическое имя пользователя на имя пользователя и правильный домен для примера.com:

user@example.com   user\@example.com

Сохранить и выйти.

Следуйте, введя это в терминал

postmap /etc/postfix/virtual 

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

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

touch /etc/postfix/body_checks 

Как только все это будет завершено, мы можем закончить настройку Cyrus.

Шаг четвертый — настроить Cyrus

Первый шаг — добавить файл smtpd.conf, определяющий аутентификацию для Postfix/SASL, в каталог SASL:

sudo vi /etc/sasl2/smtpd.conf

Идите вперед и скопируйте и вставьте следующий текст в:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 

Сохранить и выйти.

Далее нам нужно настроить файл Cyrus:

sudo vi /etc/imapd.conf

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

virtdomains:		userid
defaultdomain:		example.com
servername:		example.com
configdirectory:	/var/lib/imap
partition-default:	/var/spool/imap
admins:			cyrus
sievedir:		/var/lib/imap/sieve
sendmail:		/usr/sbin/sendmail.postfix
hashimapspool:		true
allowanonymouslogin:	no
allowplaintext:		yes
sasl_pwcheck_method:	auxprop
sasl_mech_list:		CRAM-MD5 DIGEST-MD5 PLAIN
tls_cert_file:		/etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file:		/etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_ca_file:		/etc/pki/tls/certs/ca-bundle.crt

autocreatequota:		-1
createonpost:			yes
autocreateinboxfolders:		spam
autosubscribeinboxfolders:	spam 

Сохранить и выйти.

Шаг пятый — установите почтовый клиент

Успех! Вы установили Postfix и Cyrus на свой VPS. Однако обе эти программы относятся к обработке электронной почты, а не к ее отправке. Мы можем быстро установить метод отправки сообщений из командной строки.

Мы можем использовать множество клиентов — здесь мы подключимся к MailX.

yum install mailx

После того, как вы согласитесь с приглашением, установка mailx завершится.

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

mail user@example.org

Терминал запросит строку темы. Введите один, затем нажмите Enter. В последующих строках вы можете ввести свое сообщение. Он будет отправлен только тогда, когда вы нажмете ввод и введете точку.

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

[root@demoserver ~]# mail user@example.org
Subject: Hello
This is a test message.
Regards,

.
EOT 

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