К статье прилагается патч к ../../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
|