|
| ||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||
1. ОСНОВНАЯ УСТАНОВКАЕсть два основных шага при установке sendmail. Во-первых, вы должны скомпилировать и установить бинарные файлы. Это будет достаточно просто, если sendmail уже перенесен в вашу операционную систему. Во-вторых, вы должны - построить рабочий файл конфигурации. Это файл читается sendmail при запуске, и в нем описываются все известные ему почтовые программы, как ему анализировать адреса, как переписывать заголовок сообщения, а также настройки различных опций. Хотя файл конфигурации достаточно сложен, обычно конфигурацию можно построить используя основанный на M4 язык конфигурации. Остаток этого раздела описывает установку sendmail в том случае, если вы используете одну из существующих конфигураций, и можете использовать стандартные параметры установки. Все пути к файлам и примеры заданы от корня поддерева sendmail, для 4.4BSD обычно /usr/src/usr.sbin/sendmail. Если вы загружаете его с ленты, продолжайте со следующего раздела. Если в вашей системе уже имеется работающий бинарный файл, то вы вполне можете сразу переходить к разделу 1.2. 1.1. Компиляция SendmailВсе исходные файлы для sendmail находятся в подкаталоге src. Для компиляции sendmail перейдите в каталог src и запустите ./Build Это оставит бинарные файлы в соответствующе названном каталоге, например obj.BSD-OS.2.1.i386. 1.1.1. Подгонка BuildКоманде Build можно задавать параметры. Во многих случаях они используются только после создания каталога obj.* . Эти команды включают:
Все остальные параметры передаются в программу make. 1.1.2 Создание Файла Конфигурации УзлаЭта секция еще не готова. Пока что лучше всего смотреть файл BuildTools/README. 1.1.3 Подгонка MakefileXXX Все это должно быть в разделе Файл Конфигурации Узла. sendmail поддерживает два различных формата для локальных (находящихся на диске) версий баз данных, в особенности базы данных aliases . По крайней мере, одна из них должна быть определена, если это вообще возможно.
Если ни одна из них не определена, sendmail при каждом запуске будет считывает файл алиасов в память. Этого нужно избегать, так как это может быть достаточно медленно. Существует также несколько методов доступа к удаленным базам данных:
Другие флаги компиляции выставляются в conf.h и должны быть предопределены для вас, если только вы не занимаетесь портированием в другую систему. 1.1.4 . Компилляция и установкаПосле описанного выше системного конфигурирования, вы должны скомпилировать и установить систему. Во многих системах лучший для этого способ - сценарий "Build ": ./Build Он использует uname (1) для выбора подходящего для вашей системы Makefile. Если вы устанавливаете все на стандартные места, то произвести установку можно с помощью ./Build install Это должно установить бинарный файл в /usr/sbin и создать связи /usr/bin/newaliases и /usr/bin/mailq с /usr/sbin/sendmail. В системах 4.4BSD это также сформатирует и установит инструкции (man pages). 1.2. Файлы Конфигурацииsendmail не может работать без файла конфигурации. Конфигурация определяет механизмы доставки почты, понимаемые этим узлом, как перенаправлять почту на удаленные почтовые системы, и многие другие настроечные параметры. Этот файл конфигурации подробнее описан в дальнейших частях этого документа. Поначалу конфигурация sendmail может напугать и запутать вас. Мир сложен, и почтовая конфигурация - всего лишь его отражение. Комплект поставки включает конфигурационный пакет, основанный на m4, скрывающий большинство из сложностей. Файлы конфигурации, по сравнению с предыдущими версиями, стали проще, во многом из-за того, что и мир стал проще; в частности, текстовые файлы хостов официально устранены, и теперь нет необходимости "прятать" хосты за зарегистрированным шлюзом в Internet. Эти файлы также учитывают, что большинство ваших соседей используют UUCP адресацию на основе доменов; что означает, что вместо именования хостов как "host!user" они будут использовать "host.domain!user". Файлы конфигурации могут быть переделаны так, чтобы работать помимо этого, но это намного сложнее. Наши файлы конфигурации обрабатываются m4 для облегчения внесения локальных изменений; каталог cf в поставке sendmail содержит исходные файлы. Этот каталог содержит несколько подкаталогов:
Если вы в новом домене (т.е., компании), вам, возможно, захочется создать файл cf/domain для вашего домена. В основном он состоит из описаний ретрансляторов (relay definitions) и особенностей, которые бы использовались на всех узлах: например, описание домена Berkeley определяет ретрансляторы для BitNET и UUCP. Они очень специфичны для Berkeley и должны быть доменными именами internet. Пожалуйста, проверьте их приемлемость для вашего домена. Поддомены в Berkeley также представлены в каталоге cf/domain. Например, домен CS.Berkeley.EDU - поддомен Computer Science, EECS.Berkeley.EDU- поддомен Electrical Engineering and Computer Sciences , а S2K.Berkeley.EDU - это поддомен Sequoia 2000. Возможно, вам захочется добавить соответствующие вашему домену файлы. Вам нужно будет использовать или создать файлы .mc для ваших хостов в подкаталоге cf/cf . Это детально описано в файле cf/README. 1 .3. Подробности Файлов ИнсталляцииЭтот раздел описывает файлы, необходимые для установки sendmail. 1.3.1. /usr/sbin/sendmailБинарный файл sendmail находится в /usr/sbin1 . Он может иметь бит смены владельца на пользователя root. В целях безопасности, владельцем каталогов /, /usr, и /usr/sbin должен быть root, а их пермиссии должны быть 7552. 1.3.2. /etc/sendmail.cfЭто файл конфигурации для sendmail3. Это единственный не библиотечный файл, имя которого вкомпилировано в sendmail4. Файл конфигурации обычно создается с использованием описанных выше файлов из поставки. Если у вас необычная конфигурация системы, то, возможно, вам понадобиться создать специальную версию. Формат этого файла более подробно описан в последующих разделах этого документа. 1.3.3. /usr/bin/newaliasesКоманда newaliases должна быть всего лишь ссылкой на sendmail: rm -f /usr/bin/newaliases ln -s /usr/sbin/sendmail /usr/bin/newaliases Он должен быть создан там, где его найдет системный путь поиска. 1.3.4. /usr/bin/hoststatКоманда hoststat также должна быть всего лишь ссылкой на sendmail , таким же образом, что и newaliases . Эта команда выдает статус последней почтовой транзакции со всеми удаленными хостами. Флаг -v не даст обрезать показываемый статус. Он работает только если выставлена опция HostStatusDirectory. 1.3.5. /usr/bin/purgestatЭта команда также является ссылкой на sendmail . Она обнуляет всю информацию, сохраненную в дереве HostStatusDirectory. 1.3.6. /var/spool/mqueueДля хранения почтовой очереди должен быть создан каталог /var/spool/mqueue . Этот каталог должен иметь пермиссии 700 и принадлежать пользователю root. Настоящий путь к этому каталогу определяется оцией Q в файле sendmail.cf. 1.3.7. /var/spool/mqueue/.hoststatЭто обычное значение опции HostStatusDirectory , содержащей один файл на хост, с которым этот sendmail недавно разговаривал. Обычно это подкаталог mqueue. 1.3.8. /etc/aliasesСистемные псевдонимы содержатся в "/etc/aliases". Пример этого файла имеется в "lib/aliases", в нем имеются некоторые псевдонимы, которые должны быть определены: cp lib/aliases /etc/aliases edit /etc/aliases Вы должны добавить в этот файл любые псевдонимы, необходимые в вашей системе. Обычно sendmail смотрит на версии этих файлов в виде баз данных, хранящихся и в "/etc/aliases.dir" и в "/etc/aliases.pag" или "/etc/aliases.db", в зависимости от используемой вами пакета баз данных. Путь к этому файлу определяется опцией AliasFile в файле sendmail.cf. 1.3.9. /etc/rc или /etc/init.d/sendmailПри перезагрузке системы необходимо запускать демон sendmail . Этот демон обеспечивает две функции: он слушает сокет SMTP на случай соединений (чтобы получать почту с удаленных систем), а также периодически обрабатывает очередь, чтобы, как только удаленные хосты станут доступны, доставить на них почту. Добавьте в ваш "/etc/rc" (или "/etc/rc.local" в зависимости от системы) в то место, где он запускает демоны (для систем на основе BSD) , или в один из файлов запуска, обычно это "/etc/init.d/sendmail" ( в системах на основе System-V), следующие строчки: if [ -f /usr/sbin/sendmail -a -f /etc/sendmail.cf ]; then (cd /var/spool/mqueue; rm -f [lnx]f*) /usr/sbin/sendmail -bd -q30m & echo -n ' sendmail' /dev/console fi Команды "cd" и "rm" здесь даются для того, чтобы гарантировать, что все файлы-замки (lock files) были уничтожены; посторонние файлы-замки могут остаться, если система вдруг "упадет" посреди обработки сообщения. Строка, которая на самом деле запускает sendmail , имеет два флага: "-bd" заставляет его слушать на порту SMTP, а "-q30m" заставляет его производить обработку очереди каждые полчаса. Некоторые используют более сложный сценарий запуска, удаляющий файлы qf нулевой длины, и файлы df, для которых нет ни одного файла qf. Пример сложного сценария запуска представлен на рис.1. # remove zero length qf files for qffile in qf* do if [ -r $qffile ] then if [ ! -s $qffile ] then echo -n " <zero: $qffile" /dev/console rm -f $qffile fi fi done # rename tf files to be qf if the qf does not exist for tffile in tf* do qffile=`echo $tffile | sed 's/t/q/'` if [ -r $tffile -a ! -f $qffile ] then echo -n " <recovering: $tffile" /dev/console mv $tffile $qffile else echo -n " <extra: $tffile" /dev/console rm -f $tffile fi done # remove df files with no corresponding qf files for dffile in df* do qffile=`echo $dffile | sed 's/d/q/'` if [ -r $dffile -a ! -f $qffile ] then echo -n " <incomplete: $dffile" /dev/console mv $dffile `echo $dffile | sed 's/d/D/'` fi done # announce files that have been saved during disaster recovery for xffile in [A-Z]f* do echo -n " <panic: $xffile" /dev/console done Комплексный сценарий запуска Если ваша версия UNIX не поддерживает Berkeley TCP/IP, не включайте флаг -bd. 1.3.10. /usr/lib/sendmail.hfЭто файл помощи, используемый командой SMTP HELP . Он должен быть скопирован из "lib/sendmail.hf": cp lib/sendmail.hf /usr/lib Настоящий путь к этому файлу определяется опцией HelpFile в файле sendmail.cf. 1.3.11. /etc/sendmail.stЕсли вы хотите собирать статистику о количестве прошедшей почты, вы должны создать файл "/etc/sendmail.st": cp /dev/null /etc/sendmail.st chmod 666 /etc/sendmail.st Этот файл не увеличивается. Он распечатывается программой "mailstats/mailstats.c." Настоящий путь к этому файлу определяется опцией S в файле sendmail.cf. 1.3.12. /usr/bin/mailqЕсли sendmail запущен как "mailq," то это будет равнозначно запуску sendmail с флагом -bp (т.е., sendmail распечатает содержание почтовой очереди, см далее). Он должен быть ссылкой на /usr/sbin/sendmail.
|
|
CITForum © 1997–2025