Оглавление Оглавление 1

Вид материалаДокументы

Содержание


Использование Sendmail
Использование Sendmail
R$* < @ *local* > $* $1
Почтовые псевдонимы
Подобный материал:
1   2   3   4   5   6   7   8   9   10   ...   29

Использование Sendmail

              1. Ключевые файлы, термины и утилиты:

/etc/aliases
sendmail.cw
virtusertable
genericstable
                  1. Дата последнего изменения требований LPI (LPI Objective):24 августа 2001 года
      1. Использование Sendmail

Введение


Sendmail – это одна из самых старых почтовых программ. Она была создана Эриком Оллмэном (Eric Allman) в 1979 году. Несмотря на некоторые ошибки, влияющие на безопасность, она широко используется в Интернете и установлена на большом числе почтовых серверов. Программа sendmail знаменита своим конфигурационным файлом sendmail.cf, который очень тяжело понять, когда редактируешь его впервые.

Настройка


Файл sendmail.cf нелегко редактировать, поэтому для настройки sendmail мы воспользуемся другим, гораздо более простым файлом sendmail.cm. Затем мы используем интерпретатор макро-языка m4, чтобы получить sendmail.cf на основе нашего варианта sendmail.mc.


Пример файла sendmail.mc :

[root@test majordomo-1.94.5]# cat /etc/mail/sendmail.mc

divert(-1)

dnl This is the macro config file used to generate the /etc/sendmail.cf

dnl file. If you modify the file you will have to regenerate the

dnl /etc/sendmail.cf by running this macro config through the m4

dnl preprocessor:

dnl

dnl m4 /etc/sendmail.mc > /etc/sendmail.cf

dnl

dn0l You will need to have the sendmail-cf package installed for this to

dnl work.


dnl ( Это файл с макросами настройки, используемыми для генерации файла

dnl /etc/sendmail.cf Если вы измените его, вам потребуется перестроить

dnl файл /etc/sendmail.cf с помощью запуска интерпретатора m4 командой:

dnl

dnl m4 /etc/sendmail.mc > /etc/sendmail.cf

dnl

dnl Пакет sendmail-cf должен быть установлен для того, чтобы это сработало)


include(`/usr/share/sendmail-cf/m4/cf.m4')dnl

define(`confDEF_USER_ID',``mail:mail'')dnl

OSTYPE(`linux')dnl

undefine(`UUCP_RELAY')dnl

undefine(`BITNET_RELAY')dnl

define(`confDOMAIN_NAME', `test@domain.org')dnl

define(`confTRUSTED_USERS',`majordomo')dnl

define(`confALIAS_WAIT', `30')dnl

define(`confTO_CONNECT', `1m')dnl

define(`confTRY_NULL_MX_LIST',true)dnl

define(`confDONT_PROBE_INTERFACES',true)dnl

define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl

dnl define delivery mode: interactive, background, or queued

dnl определение режима доставки: интерактивный (i), фоновый (b),

dnl или использующий очереди (q))

dnl define(`confDELIVERY_MODE', `i')

MASQUERADE_AS(`localhost.localdomain')dnl

FEATURE(`limited_masquerade')dnl

FEATURE(`masquerade_envelope')dnl

FEATURE(`smrsh',`/usr/sbin/smrsh')dnl

FEATURE(mailertable)dnl

dnl virtusertable: redirect incoming mail to virtual domain to particular user or domain

dnl ( параметр virtusertable служит для перенаправления почты адресованной виртуальному домену на адрес конкретного домена или пользователя )

FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl

dnl genericstable: rewrite sender address for outgoing mail

dnl (параметр genericstable служит для перезаписи адреса отправителя в исходящих письмах)

dnl FEATURE(genericstable)dnl

FEATURE(always_add_domain)dnl

FEATURE(redirect)dnl

FEATURE(use_cw_file)dnl

...

[пропущено]

...

(`confDONT_BLAME_SENDMAIL',`GroupWritableAliasFile,IncludeFileInGroupWritableDirPath')

You have new mail in /var/spool/mail/root

[root@test majordomo-1.94.5]#


Пример sendmail.cf :

[root@test majordomo-1.94.5]# cat /etc/mail/sendmail.cf

...

[пропущено]

...

Sfinal=4


R$+ :; <@> $@ $1 : handle

R$* <@> $@ handle <> and list:;


# strip trailing dot off possibly canonical name

# ( удаление замыкающий точки в вероятно канонических именах )

R$* < @ $+ . > $* $1 < @ $2 > $3


# eliminate internal code

# ( исключение внутреннего кода )

R$* < @ *LOCAL* > $* $1 < @ $j > $2


# externalize local domain info

# ( конкретизация информации о локальном домене )

R$* < $+ > $* $1 $2 $3 defocus

R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 canonical

R@ $* $@ @ $1 ... and exit


# UUCP must always be presented in old form

# ( UUCP всегда должен присутствовать в старом формате )

R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u


# delete duplicate local names

# ( удаление дубликатов в локальных именах )

R$+ % $=w @ $=w $1 @ $2 u%host@host => u@host

...

[SNIP]

...

SAddDomain

R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified


R$+ $@ $1 < @ *LOCAL* > add local qualification


Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/

HdrToL,

T=DNS/RFC822/X-Unix,

A=procmail -Y -a $h -d $u

Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$

z:/,

T=X-Unix/X-Unix/X-Unix,

A=smrsh -c $u

[root@test majordomo-1.94.5]#


Как правило, мы будем редактировать sendmail.mc и конвертировать его затем в sendmail.cf с помощью команды:

[root@test majordomo-1.94.5]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

sendmail.mc


Несколько полезных ключевых слов, которые по сути являются командами языка m4:


divert : начала комментария. Комментарий продолжается до следующей команды divert

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl : использовать файл cf.m4 для генерации sendmail.cf

OSTYPE(`linux')dnl : Определение операционной системы, на которой будет работать sendmail

define(`confTRUSTED_USERS',`majordomo')dnl : установить значение переменной “confTRUSTED_USERS” равной “majordomo”.

FEATURE(`smrsh',`/usr/sbin/smrsh')dnl : Одна из настроек sendmail. Настроек у этой программы огромное множество, и описать их всех в этом документе не представляется возможным.


Почтовые псевдонимы


Файл с описанием почтовых псевдонимов /etc/aliases (или /etc/mail/aliases) имеет следующий формат:

bin: root

daemon: root

games: root

ingres: root

nobody: root

system: root

toor: root

uucp: root


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


Кроме того, можно запускать программу каждый раз, когда какой-то пользователь получает письмо. Эта возможность используется majordomo. Для этого используется следующий синтаксис:

majordomo | /path/to/executable


Можно перенаправить почту на другой адрес:

user user@new.address.com

Заметьте, что пользователи могут делать это самостоятельно, указав эту строчку в файле .forward в своём домашнем каталоге.


Можно создать очень простой список рассылки:

localadmins john, robert, paul


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

[root@test root]# newaliases

/etc/aliases: 29 aliases, longest 73 bytes, 855 bytes total

[root@test root]#