Главная страница Индекс Поиск Ссылки О нас
[LinuxFocus Image]
[Navegation Bar]
 Новости   Архивы   Компании   Советы  

Компиляция, установка и конфигурация sendmail 8.8.x

John E. Gotts


К статье прилагается патч к ../../common/March1998/Makefile.Linux, включающий TCP-врапперы и вносящий некоторые другие безобидные изменения. (С включенными TCP-врапперами вы можете ограничить доступ к вашему демону sendmail, как описано в hosts_access(5)). (1) Предполагаем, что вы сохранили его как ../../common/March1998/sendmail.diff, используем его из каталога, в котором лежит sendmail-8.8.x:

patch -p0 < ../../common/March1998/sendmail.diff
Переходим в каталог src и выполняем
./makesendmail
sendmail должен скомпилироваться без каких-бы то ни было проблем.

Далее, я буду предполагать, что вы используете электронную почту только по TCP/IP. Поддержка UUCP не входит круг вопросов, освещаемых в этой статье.

Переходим в каталог cf/cf и создаем новый файл generic-linux2.mc:
divert(-1)
divert(0)dnl
VERSIONID(`@(#)generic-linux2.mc 8.8 (Local) 11/22/97')
OSTYPE(linux)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Если вы хотите использовать маскарадинг, добавьте две следующие строчки:
MASQUERADE_AS(<имя хоста>)dnl
EXPOSED_USER(root)dnl

Это означает, что вся почта, которая отправляется через вашу машину (за исключением почты от суперпользователя) будет выглядеть, как если бы она была отправлена с хоста с указанным именем. (Эта опция полезна для людей с непостоянным соединением с сетью, т.е. пользователей со SLIP и PPP, и для машин, которым IP-адреса выделяются динамически, через BOOTP или DHCP). Для версии sendmail 8.8.8 и новее EXPOSED_USER(root) опускается, так как эта опция используется по умолчанию.

Если вы хотите использовать procmail в качестве вашего локального почтового агента (обычная практика в Red Hat Linux), добавьте:

FEATURE(local_procmail)dnl
Преобразуйте "generic-linux2.mc" в файл sendmail.cf:
m4 ../m4/cf.m4 generic-linux2.mc > obj/sendmail.cf
Вам может понадобиться закомментировать
Cwlocalhost

в obj/sendmail.cf символом #, так как похоже из-за этой строки входящая почта в самых новых дистрибутивах Линукс оказывается испорченной.

Создайте резервную копию вашего старого файла /etc/sendmail.cf и установите obj/sendmail.cf:
install -m 644 -o 0 -g 0 obj/sendmail.cf /etc/sendmail.cf

После того, как вы установили ваш новый sendmail.cf, остановите демон sendmail, вернитесь в каталог src и выполните:

cd obj.Linux.*.* ; make install

В результате будут установлены исполняемый файл sendmail и символические ссылки. Справочные страницы sendmail вам придется установить вручную.

Если вы не пользуетесь procmail, то перейдите в главный каталог sendmail и наберите:

uudecode contrib/mail.local.linux
mv mail.local mail.local.old
tar zxvf mail.local.linux.tar.Z
cd mail.local
gcc -O3 -o mail.local mail.local.c
strip mail.local
install -m 2711 -o 0 -g mail mail.local /bin
install -m 644 -o 0 -g 0 mail.local.8 /usr/man/man8

Каталог /var/spool/mail должен иметь права доступа 775, владеть им должен пользователь root и группа mail. Ваши почтовые клиенты должны быть SGID mail (права доступа 2711, владелец root и группа mail).

Теперь вы готовы перезапустить демон sendmail. Мой запускается следующим образом:

/usr/sbin/sendmail -bd -q1h

ЗАМЕЧАНИЕ: Red Hat запускает sendmail без полного пути в имени. Это может привести к тому, что, например, будет невозможно HUP sendmail для того, чтобы тот перечитал конфигурационные файлы. Чтобы это исправить, необходимо изменить /etc/rc.d/init.d/sendmail.init так, чтобы sendmail запускался как /usr/sbin/sendmail (с теми же аргументами).

Если у вас не постоянное соединение, вы можете запускать sendmail в отложенном режиме:

/usr/sbin/sendmail -bd -o DeliveryMode=d
при включении и запускать sendmail как:
/usr/sbin/sendmail -q

для доставки всей отложенной почты при первом соединении с сетью и периодически, пока вы подключены в сеть (может быть заданием cron).

На этот момент, вы должны проверить только что установленный sendmail. Одним из способов сделать это будет:

% telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220  ESMTP Sendmail 8.8.8/8.8.8; Fri, 22 Nov 1997 03:21:18 -0500
helo localhost
250  Hello jgotts@localhost [127.0.0.1], pleased to meet you
mail from: jgotts
250 jgotts... Sender ok
rcpt to: jgotts
250 jgotts... Recipient ok
data
354 Enter mail, end with "." on a line by itself
This is a test.
.
250 DAA23297 Message accepted for delivery

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

Примечания:
(1) Поддержка TCP-враппера в 8.8.8 нарушена. Патч можно найти на: http://www-personal.engin.umich.edu/~jgotts/linux/sendmail-8.8.8-tcp-wrappers-patch

Если хотите, можете воспользоваться: http://www-personal.engin.umich.edu/~jgotts/linux/sendmail-8.8.8-core-dump-patch


Дальнейшая информация:
© 1998 John E. Gotts
This website is mantained by Miguel A Sepulveda.