# mv /etc/sendmail.cf /etc/sendmail.cf.orig
# m4 my_config.mc > /etc/sendmail.cf
Файл конфигурации по умолчанию, который используется макропроцессором m4для создания файла конфигурации программы sendmail (sendmail.cf), находится в каталоге /usr/share/sendmail-cf/cf
. В более старых версиях программы sendmailон может быть расположен в каталоге /usr/lib/sendmail
.
Как правило, этот файл называется sendmail.mc
. Иногда он может называться и по-другому, например, redhat.mc
, если вы используете операционную систему Red Hat или совместимую с ней.
Пример стандартного файла /usr/share/sendmail-cf/cf/redhat.mc
приведен в листинге 14.1.
Листинг 14.1. Стандартный файл redhat.mc
divert(-1)
dnl This is the sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm installed and then have to generate a
dnl new /etc/sendmail.cf by running the following command:
dnl
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
dnl
include(`../m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
define(`соnfAUTO_REBUILD')dnl
define(`confTO_C0NNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh' ,`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl This changes sendmail to only listen on the loopback
device 127.0.0.1
dnl and not on any other network devices. Comment this out if you want
dnl to accept email over the network.
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl a kernel patch
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
Cwlocalhost.localdomain
С помощью директивы FEATURE можно подключить ту или иную функцию программы sendmail. Например, функция mailertableпредназначена для переопределения маршрутизации для конкретных доменов. Вы можете легко расширить функциональные возможности программы sendmail, добавив нужные вам функции в mc-файл.
Предположим, вы хотите, чтобы названия компьютеров домена были скрыты. Это легко достигается с помощью добавления функции masquerade_envelopeв ваш mc-файл. Для этого скопируйте файл redhat.mc
в файл hide_hosts.mc
и добавьте в конец файла hide_hosts.mc
строки:
MASQUERADE_AS(my-domain.ru)dnl
FEATURE(masquerade_envelope)dnl
Затем выполните команду:
# m4 /usr/share/sendmail-cf/cf/hide_hosts.mc > /etc/sendmail.cf
Вот и все! Названия узлов будут скрыты. Описание прочих функций представлено в таблице 14.1.
Функции программы sendmail Таблица 14.1
Функция |
Описание |
access_db |
Определяет таблицу доступа. В этой таблице указаны узлы, которым разрешена или запрещена отправка почты через ваш почтовый сервер. Эта функция эффективно используется для борьбы со спамом |
accept_unresolvable_domains |
Разрешает отправлять почту доменам, которые не могут быть распознаны |
bestmx_is_local |
Сообщения будут приниматься только а том случае, если запись MX сервера DNS указывает на этот почтовый сервер |
blacklist_recipients |
«Черный список». Еще одна функции дли борьбы со спамом. Для ее работы необходима функция access_db |
dnsbl |
Используется дли работы с «черным списком», dnsbl— это сокращение от DNS Black List. В более ранних версиях эта опция называлась rbl (Resolve Black List) |
domaintable |
Используется для разрешения имен доменов |
genericstable |
Используется для изменения адреса отправки в сообщениях |
local_procmail |
Указывает, что доставлять почту нужно с помощью локальной утилиты procmail |
mailertable |
Переопределяет маршрутизацию для конкретных доменов |
masquerade_entire_domain |
Используется для маскировки (сокрытия) всего домена. Данная функция должна использоваться вместе с директивой MASQUERADE_AS (или MASQUERADE_DOMAIN), например, MASQUERADE_AS(f117.ru)dnl |
masquerade_envelope |
Позволяет скрыть имена узлов домена. Заменяет поле received fromзаголовка сообщения перед передачей сообщения другим MTA |
redirect |
Используется для перенаправления на другой почтовый сервер. Означает отказ от принятия почты с выдачей сообщения please try (попытайтесь использовать этот адрес) |
relay_based_on_MX |
Разрешает перенаправление (ретрансляцию) почты только для узлов, которые указаны в записях MX сервера DNS |
relay_hosts_only |
Разрешает ретрансляцию только для узлов, указанных в access_db |
relay_mail_from |
Разрешает ретрансляцию, только если отправитель указан в списке RELAY базы access_db |
smrsh |
Использование ограниченной оболочки sendmail |
use_cf_file |
При указании этой функции sendmailбудет обращаться к файлу sendmail.cf за списком доверенных пользователей |
use_cw_file |
При указании этой функции sendmailбудет обращаться к файлу sendmail.cw за списком локальных узлов |
virtuserlable |
Преобразует адрес получателя в адрес локального пользователя |
В файле /etc/mail/sendmail.cw
перечислены все псевдонимы вашего почтового сервера. Предположим, что имя вашего сервера mail.dhsilabs.ru. Если отправитель отправит почту по адресу den@mail.dhsilabs.ru, письмо будет без проблем доставлено пользователю den. А если кто-то отправит письмо по адресу den@dhsilabs.ru, то его доставка вызовет определенные трудности, так как не ясно, какому узлу домена dhsilabs адресовано сообщение. Для решения этой проблемы в файл sendmail.cw нужно поместить строку:
Читать дальше
Конец ознакомительного отрывка
Купить книгу