Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 86
Текст из файла (страница 86)
Программное обеспечение для организации службы электронной почтына:LOG_FILE_PATH=syslogДля указания пути к программе, используемой Exim для разархивирования файлов, замените строку:ZCAT_COMMAND=/usr/bin/zcatна:ZCAT_COMMAND=/usr/bin/gunzipДля включения поддержки интерпретатора Perl замените строку:# EXIM_PERL=perl.oна:EXIM_PERL=perl.oДля изменения заданных по умолчанию путей к программам, необходимым для функционированияExim, замените строки:# CHOWN_COMMAND=/usr/bin/chown# CHGRP_COMMAND=/usr/bin/chgrp# MV_COMMAND=/bin/mv# RM_COMMAND=/bin/rm# PERL_COMMAND=/usr/bin/perlна:CHOWN_COMMAND=/bin/chownCHGRP_COMMAND=/bin/chgrpMV_COMMAND=/bin/mvRM_COMMAND=/bin/rmPERL_COMMAND=/usr/bin/perlДля обеспечения возможности перемещения «замороженных» сообщений замените строку:# SUPPORT_MOVE_FROZEN_MESSAGES=yesна:SUPPORT_MOVE_FROZEN_MESSAGES=yesШаг 6Для оптимизации компиляции исходных кодов Exim применительно к архитектуре вашего процессора в файле /var/tmp/exim-4.20/OS/Makefile-Linux замените строку:CFLAGS=-0на:CFLAGS=-O2 -march=i686 -funroll-loopsШаг 7Откомпилируйте, проинсталлируйте Exim, создайте и сохраните в надежном месте список установленных файлов:[root@test exim-4.20]# make[root@test exim-4.20]# find /* > /root/exim1[root@test exim-4.20]# make install[root@test exim-4.20]# ln -fs /usr/sbin/exim-4.20-1 /usr/lib/sendmail[root@test exim-4.20]# ln -fs /usr/sbin/exim-4.20-1 /usr/lib/sendmail[root@test exim-4.20]# ln -fs /usr/sbin/exim-4.20-1 /usr/sbin/sendmail[root@test exim-4.20]# ln -fs /usr/sbin/exim-4.20-1 /usr/bin/mailq[root@test exim-4.20]# ln -fs /usr/sbin/exim-4.20-1 /usr/bin/runq[root@test exim-4.20]# mv /etc/aliases /etc/exim-4.20[root@test exim-4.20]# strip /usr/sbin/exim-4.20-1[root@test exim-4.20]# chown 0.mail /var/spool/mail[root@test exim-4.20]# chmod 1777 /var/spool/mail[root@test exim-4.20]# find /* > /root/exim2[root@test exim-4.20]# diff /root/exim1 /root/exim2 > exim.installed[root@test exim-4.20]# mv /root/exim.installed/very_reliable_place/exim.installed.YYYYMMDDШаг 8Удалите архивы и каталоги с исходными кодами программ и документацией:[root@test exim-4.20]# cd /var/tmp/[root@test tmp]# rm -rf exim-4.20/Глава 27.
Exim – почтовый транспортный агент377[root@test tmp]# rm -f exim-4.20.tar.gz[root@test tmp]# rm -rf exim-html-4.10/[root@test tmp]# rm -f exim-html-4.10.tar.gzКонфигурирование ЕximКонфигурирование Exim осуществляется с использованием следующих файлов:• главного конфигурационного файла /etc/mail/exim.conf;• файла /etc/mail/localdomains, содержащего имена ваших доменов;• файла /etc/mail/relaydomains, содержащего имена доменов, которым разрешена рассылкапочты с использованием вашего сервера;• файла псевдонимов /etc/mail/aliases;• файла доступа /etc/mail/access;• файла фильтров /etc/mail/system-filter;• системного конфигурационного файла /etc/sysconfig/exim, необходимого для передачи опций, с которыми должен запускаться Exim;• файла инициализации /etc/init.d/exim, необходимого для запуска Exim.Конфигурирование Exim в режиме центрального почтового концентратораКонфигурационный файл /etc/mail/exim.confШаг 1Создайте файл /etc/mail/exim.conf, руководствуясь приведенными ниже рекомендациями ивашими потребностями:#######################################################################MAIN CONFIGURATION SETTINGS#######################################################################primary_hostname = test.bruy.infoacl_smtp_rcpt = check_recipientacl_smtp_data = check_messagedomainlist local_domains = @ : lsearch;/etc/mail/localdomainshostlist relay_hosts = lsearch;/etc/mail/relaydomainshostlist auth_relay_hosts = *log_selector = \+all_parents \+received_sender \+received_recipients \+smtp_confirmation \+smtp_syntax_errorallow_domain_literals = falsenever_users = root:daemon:bin:sync:namedhost_lookup = *trusted_users = mailgecos_pattern = ^([^,:]*)gecos_name = $1freeze_tell = postmasterauto_thaw = 1hignore_bounce_errors_after = 30mtimeout_frozen_after = 7dreceived_header_text = "Received: \${if def:sender_rcvhost {from ${sender_rcvhost}\n\t}\{${if def:sender_ident {from ${sender_ident} }}\${if def:sender_helo_name {(helo=${sender_helo_name})\n\t}}}}\by ${primary_hostname} \${if def:received_protocol {with ${received_protocol}}} \(Exim ${version_number} #${compile_number})\n\t\378Часть 7.
Программное обеспечение для организации службы электронной почтыid ${message_id}\${if def:received_for {\n\tfor <$received_for>}}"system_filter = /etc/mail/system-filtermessage_body_visible = 5000message_size_limit = 10Msmtp_accept_max = 2048smtp_connect_backlog = 256queue_onlysplit_spool_directoryqueue_run_max = 1remote_max_parallel = 1rfc1413_hosts = *rfc1413_query_timeout = 0ssmtp_banner = "Welcome on our mail server!\n\This system does not accept Unsolicited \Commercial Email\nand will blacklist \offenders via our spam processor.\nHave a \nice day!\n\n${primary_hostname} ESMTP Exim \${version_number} ${tod_full}"#######################################################################ACL CONFIGURATION##Specifies access control lists for incoming SMTP mail#######################################################################begin aclcheck_recipient:accept hosts = :denylocal_parts= ^.*[@%!/|]denysenders= *@dbm;/etc/mail/access.db : \dbm;/etc/mail/access.dbrequire verify= senderdeny= unrouteable address= !127.0.0.1/8:0.0.0.0/0= recipientacceptmessagehosts!verifydomainsendpassmessageverify= +local_domainsaccepthosts= +relay_hostsaccepthosts= +auth_relay_hostsendpassmessage= authentication requiredauthenticated = *denymessage= unknown user= recipient= relay not permittedcheck_message:accept#######################################################################ROUTERS CONFIGURATION#Глава 27.
Exim – почтовый транспортный агент#Specifies how addresses are handled########################################################################THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT!## An address is passed to each router in turn until it is accepted. #######################################################################begin routersdnslookup:driver = dnslookupdomains = ! +local_domainstransport = remote_smtpignore_target_hosts = 0.0.0.0 : 127.0.0.0/8no_moresystem_aliases:driver = redirectallow_failallow_deferdata = ${lookup{$local_part}lsearch{/etc/mail/aliases}}user = mailfile_transport = address_filepipe_transport = address_pipeuserforward:driver = redirectcheck_local_userfile = $home/.forwardno_verifyno_expncheck_ancestorallow_filtermodemask = 002file_transport = address_filepipe_transport = address_pipereply_transport = address_replylocaluser:driver = acceptcheck_local_usertransport = local_delivery#######################################################################TRANSPORTS CONFIGURATION########################################################################ORDER DOES NOT MATTER##Only one appropriate transport is called for each delivery.#######################################################################begin transportsremote_smtp:driver = smtplocal_delivery:driver = appendfilefile = /var/mail/$local_partdelivery_date_addenvelope_to_addreturn_path_addgroup = mailmode = 0600address_pipe:379380Часть 7.
Программное обеспечение для организации службы электронной почтыdriver = pipereturn_outputaddress_file:driver = appendfiledelivery_date_addenvelope_to_addreturn_path_addaddress_reply:driver = autoreply#######################################################################RETRY CONFIGURATION#######################################################################begin retry# Domain# ------Error-----Retries-------**F,2h,15m; G,16h,1h,1.5; F,4d,6h#######################################################################REWRITE CONFIGURATION#######################################################################begin rewrite#######################################################################AUTHENTICATION CONFIGURATION#######################################################################begin authenticatorsРассмотрим более подробно настройки каждого раздела главного конфигурационного файла.В разделе MAIN CONFIGURATION SETTINGS определяются основные настройки Exim.В строке:primary_hostname = test.bruy.infoопределяется полное имя вашего сервера.
Возможно, это единственный параметр, который необходимо изменить в данном файле для нормальной работы Exim.Строки:acl_smtp_rcpt = check_recipientacl_smtp_data = check_messageопределяют имена списков контроля доступа, используемые в дальнейшем для определения правил работыс входящей почтой.Строки:domainlist local_domains = @ : lsearch;/etc/mail/localdomainshostlist relay_hosts = lsearch;/etc/mail/relaydomainshostlist auth_relay_hosts = *определяют имена файлов, используемых для принятия решения о возможности разрешения или отмены пересылки сообщений с использованием SMTP-сервера Exim.В первой строке определяется имя домена, который обслуживается SMTP-сервером, при этом знак @означает домен, указанный в строке primary_hostname =…, т. е. test.bruy.info. Директиваlsearch добавляет к множеству обслуживаемых доменов список из файла /etc/mail/localdomains.Во второй строке определяются хосты, которые могут использовать ваш почтовый сервер для отправки почты на любой почтовый адрес в Интернет.
Директива lsearch указывает на то, что список хостов содержится и может быть получен вашим почтовым сервером из файла /etc/mail/relaydomains.Глава 27. Exim – почтовый транспортный агент381ЗАМЕЧАНИЕ В файл следует включать только названия хостов, которые отправляют почту в Интернет, используя ваш SMTP-сервер Exim. Хосты, которые отправляют почту на локальные почтовые адреса, например, служебные сообщения, адресуемые администратору системы на локальный почтовый адресroot@test.bruy.info, не следует включать в файл /etc/mail/relaydomains.Строки:log_selector = \+all_parents \+received_sender \+received_recipients \+smtp_confirmation \+smtp_syntax_errorиспользуются для определения опций регистрации, необходимых для использования с Exim.