Главная > Операционные системы > UNIX > Linux
Файлы "/etc/mail/aliases и aliases.db" для Центрального Почтового КонцентратораИспользование псевдонимов это процесс конвертирования одних локальных имен получателей в другие (использование псевдонимов возможно только для локальных имен). Например используется конвертирование общих имен (таких как root) в реальные имена, или конвертирование одних имен в список из нескольких имен (для списка рассылки). Для каждого элемента где локальный пользователь упоминается как получатель, Sendmail смотрит получателя в базе данных "aliases". Так как Sendmail может производить поиск среди нескольких тысяч имен в файле "aliases", копия файла хранится в независимой базе данных "db" для значительного увеличения скорости просмотра. Если вы настраиваете ваш Sendmail на использование Центрального Сервера (Почтового концентратора) для управления всей почты, вам не нужно будет инсталлировать файлы "aliases" и "aliases.db" на граничных серверах и клиентских машинах. Шаг 1Создайте файл aliases (touch /etc/mail/aliases) и добавьте в него следующие строки: # # @(#)aliases 8.2 (Berkeley) 3/5/94 # # Псевдонимы в этом файле не будут расширяться в заголоке FROM: почты # но будут видны через сеть и из /bin/mail. # # >>>>>>>>>> Программа "newaliases" должна быть запущена после того # >> NOTE >> как этот в этот файл будут внесены любые изменения, # >>>>>>>>>> чтобы они стали видны в sendmail. # # Общие системные псевдонимы - должны быть представлены. MAILER-DAEMON: postmaster postmaster: root # Общие перенаправления для псевдо бюджетов. bin: root daemon: root nobody: root # Лицо получающее почту пользователя root #root: admin ЗАМЕЧАНИЕ. Ваш файл псевдонимов будет скорее всего более сложным. Этот пример показывает минимальный вид этого файла. Шаг 2Создание файла aliases.db: Файлы "/etc/mail/virtusertable, domaintable, mailertable, и virtusertable.db,domaintable.db, mailertable.db" для Центрального Почтового Концетратора. Все эти файлы связаны с отдельными возможностями Sendmail, которые могут быть настроены системным администратором. Еще раз отметим, что эти возможности нужны только на Центральном Почтовом Концентраторе. Ниже даны краткие описания каждой из них. Файлы virtusertable и virtusertable.db.virtusertable - это база данных, которая отображает виртуальные домены на известные адреса. Благодаря этой возможности, почта для виртуальных доменов на вашей сети может быть доставлена локальным, удаленным или отдельным пользовательским адресам. Файлы domaintable и domaintable.db.domaintable - это база данных, которая отображает старые домены на новые. Благодаря этой возможности, несколько доменных имен в вашей сети может быть переписаны из старых доменов в новые. Файлы mailertable & mailertable.db.mailertable - это база данных, которая отображает имена вида "host.domain" на специальные агенты доставки и новые пары доменных имен. Благодаря этой возможности может быть доставлена через использования специального агента доствки новым локальным или удаленным доменным именам. Для создания файлов virtusertable, domaintable, mailertable и их соответсвующих ".db" версий в каталоге "/etc/mail" используйте следующие команды: [root@deep /]# for map in virtusertable domaintable mailertable> do > touch /etc/mail/${map} > chmod 0644 /etc/mail/${map} > makemap hash /etc/mail/${map}.db < /etc/mail/${map} > chmod 0644 /etc/mail/${map}.db > done Файл "/etc/mail/local-host-names" для всех типов конфигурацийФайл "/etc/mail/local-host-names" считывается для получения альтернативных имен локального хоста. Одним из способов, как этот файл может быть использован, это объявление списка хостов для которых локальный компьютер выступает как получатель почты через MX записи. На такой машине нам просто нужно добавить имена (например, mail.openna.com), для которых он будет манипулировать почтой. Например: Создайте файл local-host-names file (touch /etc/mail/local-host-names) и добавьте в него следют строку: # local-host-names - включает все псевдонимы для вашего компьютера.openna.com deep.openna.com www.openna.com win.openna.com mail.openna.com С такой конфигурацией, вся почта отправляемая на домен "openna.com" или любая почта отправляемая на сервер "www.openna.com" или другой хост будет доставляться на ваш почтовый концентратор "mail.openna.com". Пожалуйста запомните, что если вы настраивает вашу систему для маскарадинга под другую машину, любая почта посланная из вашей системы на вашу систему будет отправлена на машину под которую вы маскируетесь. Например, в вышеприведенной конфигурации, системные файлы регистрации, которые периодически отправляются на адрес root@www.openna.com, будут отправлены на адрес root@mail.openna.com вашего почтового концентратора. Конфигурация файла "/etc/sysconfig/sendmail" для всех типов конфигурацийФайл "/etc/sysconfig/sendmail" используется для определения конфигурационной информации SENDMAIL, такой как, запускать ли sendmail как демон, нужно ли слушать порт для приема почты или нет, и как долго ждать перед отправкой предупреждающего сообщения, если сообщение из каталога очереди не может быть доставлено. Создайте файл sendmail (touch /etc/sysconfig/sendmail) и добавьте в него следующее: DAEMON=yesQUEUE=1h Опция "DAEMON=yes" говорит Sendmail запускаться как демон. Эта строка особо полезна, когда sendmail запускается на клиентских машинах, которые не должны принимать почту из внешнего мира, а должны пересылать все сообщения на центральный почтовый концентратор. Не запуская sendmail, вы также улучшается безопасность. Если вы настаиваете sendmail подобным образом, то замените строку "DAEMON=yes" на "DAEMON=no". Почта обычно помещается в очередь, потому что не может быть отправлена незамедлительно. "QUEUE=1h" устанавливает интервал времени до отправки предупреждающего сообщения отправителю письма, что его сообщение не может быть доставлено. Конфигурация скрипта "/etc/rc.d/init.d/sendmail" для всех типов конфигураций.Настройка скрипта "/etc/rc.d/init.d/sendmail" для запуска и остановки демона
Sendmail. # # sendmail Это shell скрипт, который заботится о запуске и остановки # sendmail. # # chkconfig: 2345 80 30 # Описание: Sendmail - это почтовый транспортный агент, который \ # используется для перемещения почты с одной машины на другую. # имя процесса: sendmail # конфигурационный файл: /etc/sendmail.cf # pidfile: /var/run/sendmail.pid # Библиотека исходных функций. . /etc/rc.d/init.d/functions # Исходная сетевая конфигурация. . /etc/sysconfig/network # Исходная конфигурация sendmail. if [ -f /etc/sysconfig/sendmail ] ; then . /etc/sysconfig/sendmail else DAEMON=yes QUEUE=1h fi # Проверка, что сеть включена. [ ${NETWORKING} = "no" ] && exit 0 [ -f /usr/sbin/sendmail ] || exit 0 RETVAL=0 # Смотрим как мы вызываем скрипт. case "$1" in start) # Запуск демона. echo -n "Starting sendmail: " /usr/bin/newaliases > /dev/null 2>&1 for i in virtusertable access domaintable mailertable ; do if [ -f /etc/mail/$i ] ; then makemap hash /etc/mail/$i < /etc/mail/$i fi done daemon /usr/sbin/sendmail $([ "$DAEMON" = yes ] && echo -bd) \ $([ -n "$QUEUE" ] && echo -q$QUEUE) RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sendmail ;; stop) # Остановка демона. echo -n "Shutting down sendmail: " killproc sendmail RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail ;; restart|reload) $0 stop $0 start RETVAL=$? ;; status) status sendmail RETVAL=$? ;; *) echo "Usage: sendmail {start|stop|restart|status}" exit 1 esac exit $RETVAL Сейчас, сделаем скрипт исполняемым и изменим права доступа по умолчанию: Очистка после работы[root@deep /]# cd /var/tmp[root@deep tmp]# rm -rf sendmail-version/ sendmail.version.tar.gz Команды "rm" будет удалять все файлы с исходными кодами, которые мы использовали при компиляции и инсталляции Sendmail. Также будет удален сжатый архив Sendmail из каталога "/var/tmp". Организация защиты SendmailОграниченная оболочка "smrsh" Sendmail.Программа smrsh предназначается для замены "/bin/sh" в программах почтальонах, определенных в Sendmail. Это ограниченная оболочка, которая предоставляет возможность строго определить через каталог "/etc/smrsh", явный список исполняемых программ доступных Sendmail. Чтобы быть более точным, даже если "плохой парень" использует Sendmail для запуска программ без файлов псевдонимов и forward, smrsh ограничит набор программ, которые он или она сможет выполнить. В связке с Sendmail smrsh эффективно ограничивает область выполняемых программ только теми программами, что перечислены в каталоге /etc/smrsh. Если вы следовали по инструкциям описанным выше, то smrsh уже откомпилирована и инсталлирована в каталог "/usr/sbin/smrsh". Шаг 1Первое, что надо сделать, это определить список команд, которые "smrsh"
позволит Sendmail выполнять. ЗАМЕЧАНИЕ. Вы не должны включать интерпретирующие программы, такие как sh(1), csh(1), perl(1), uudecode(1) или потоковый редактор sed(1) в список разрешенных программ. Шаг 2Следующее, что надо сделать, это заполнить каталог "/etc/smrsh" программами,
которые разрешено запускать Sendmail. Для предотвращения дублирования
программ мы будем создавать символические ссылки. [root@deep smrsh]# ln -s /bin/mail mail Для разрешения использования программы "/usr/bin/procmail" используйте следующие команды: [root@deep /]# cd /etc/smrsh[root@deep smrsh]# ln -s /usr/bin/procmail procmail Вышеприведенные команды позволят запускать программы mail и procmail из пользовательских файлов ".forward" или файла "aliases", которые используют "program" синтаксис. ЗАМЕЧАНИЕ. Procmail требуется только на почтовом концентраторе и не требуется на клиентской машине. Если вы настраиваете вашу систему как Центральный почтовый сервер, то создайте ссылку на procmail как описано выше, иначе пропустите его. Шаг 3Сейчас мы можем настроить Sendmail на использование защищенного shell. Программа почтальон определяется в одиночной строке конфигурационного файла "/etc/mail/sendmail.cf". Вы должны модифицировать линию "Mprog", заменив в ней "/bin/sh" на "/usr/sbin/smrsh". Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и измениет строку: Например: Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, T=X-Unix, A=sh -c $uДожна быть изменена на: Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, T=X-Unix, A=sh -c $u Сейчас перезапустите вручную процесс sendmail следующей командой: [root@deep /]# /etc/rc.d/init.d/sendmail restartЗАМЕЧАНИЕ. В нашем конфигурационном файле "sendmail.mc", написанном выше, мы уже настроили строку "Mprog" на использование защищенного shell "/usr/sbin/smrsh" при помощи макроопределения "FEATURE(`smrsh',`/usr/sbin/smrsh')", так что не удивляйтесь, если "/usr/sbin/smrsh" уже установлен в "/etc/mail/sendmail.cf" для Почтового концентратора. Используйте технику непосредственного редактирования файла "/etc/mail/sendmail.cf" для тех машин, где вы использовали файл с макроопределениями "null.mc" (граничные сервера и клиентские машины). Файл"/etc/mail/aliases"Несовершенное или небрежное администрирование файла "aliases" может привести к легкому получению привилегированному статусу. Например, многие разработчики поставляют системы с псевдонимом "decode" в файле "/etc/mail/aliases". Его основное назначение - облегчение для пользователей пересылки двоичных файлов по почте. Отправляющий пользователь конвертирует двоичный файл в ASCII, используя "uuencode", затем отправляет полученное сообщение псевдониму "decode" на принимающий сервер. Затем псевдоним через канал (pipe) отправляет сообщение программе "/usr/bin/uuencode", которая конвертирует ASCII назад в двоичный файл. Удалите псевдоним "decode" из файла "/etc/mail/aliases". Аналогично, каждый псевдоним, который запускает программу и который вы сам не создавали должен быть проверен и скорее всего удален. Редактируйте файл aliases (vi /etc/mail/aliases) и удалите следующие строки: # Базовые псевдонимы системы - ДОЛЖНЫ быть представлены.MAILER-DAEMON: postmaster postmaster: root # Обычная переадресация для псевдобюджетов. bin: root daemon: root games: root - удалите эту строку. ingres: root - удалите эту строку. nobody: root system: root - удалите эту строку. toor: root - удалите эту строку. uucp: root - удалите эту строку. # Хорошо известные псевдонимы. manager: root - удалите эту строку. dumper: root - удалите эту строку. operator: root - удалите эту строку. # ловушка decode для захвата атаки decode: root - удалите эту строку. # Человек получающий почту для пользователя root #root: marc Чтобы изменения вступили в силу выполните команду: [root@deep /]# /usr/bin/newaliasesПредотвращение неправильного обращения к вашему Sendmail неавторизированными пользователями Sendmail сейчас включает значительные антиспаммовские возможности, которые могут помочь предотвратить неправильное использование вашего почтового сервера неавторизированными пользователями. Для этого, редактируйте ваш файл "/etc/mail/sendmail.cf" и внесите в него изменения блокирующие спаммеров. Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и измените строку: O PrivacyOptions=authwarnings Установка "goaway" говорит Sendmail отвергать все SMTP "EXPN" команды, отбрасывать все SMTP "VERB" команды и игнорировать все SMTP "VRFY" команды. Эти изменения не дадут спаммеру использовать команды "EXPN" и "VRFY". Ограничение числа людей, которые могут просматреть содержимое очередиОбычно, кто угодно может просмотреть почтовую очередь при помощи команды "mailq". Для ограничения тех, кто имеет возможность ее просмотреть используйте опцию "restrictmailq" в файле "/etc/mail/sendmail.cf". С ней, Sendmail позволяет просматривать очередь только тем пользователям, кто входит в группу владеющую ею (root). Это позволяет полностью защитить каталог очереди, используя режим доступа 0700. Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и внесите в него следующее изменение: O PrivacyOptions=authwarnings,goaway Сейчас измените режим доступа к вашему каталогу очереди:
ЗАМЕЧАНИЕ. Мы уже добавили опцию "goaway" в строке "PrivacyOptions=", а сейчас добавили туда же опцию "restrictmailq". Любой непривелигированный пользователь, который попытается изучить почтовую очередь получит следующее собщение: [user@deep /]$ /usr/bin/mailqYou are not permitted to see the queue Ограничение пользователей имеющих возможность вызвать обработку очереди пользователем "root" Обычно, кто угодно может вызвать обработку очереди при помощи ключа "-q". Чтобы только пользователь "root" и владелец каталога очереди могли сделать это используйте опцию "restrictqrun" в файле "/etc/mail/sendmail.cf". Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и внесите в него следующее изменение: O PrivacyOptions=authwarnings,goaway,restrictmailq Перезапустите процесс sendmail, чтобы изменения вступили в силу: [root@deep /]# /etc/rc.d/init.d/sendmail restart Shutting down sendmail: [ OK ] Starting sendmail: [ OK ] Любой непривилегированный пользователь, попытавшийся запустить обработку очереди, получит следующее сообщение: [user@deep /]$ /usr/sbin/sendmail -qYou do not have permission to process the queue Приветственное сообщение SMTP Когда Sendmail принимает входящие SMTP соединения, он посылает на другой хост приветственное сообщение. Оно идентифицирует локальную машину и говорит о том, что sendmail готов к приему. Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и измените строку: O SmtpGreetingMessage=$j Sendmail $v/$Z; $b Перезапустите процесс sendmail, чтобы изменения вступили в силу: [root@deep /]# /etc/rc.d/init.d/sendmail restart Shutting down sendmail: [ OK ] Starting sendmail: [ OK ] Это изменение фактически ничего не меняет, но рекомендуется в группе новостей news.admin.net-abuse.email как законная предосторожность. Оно изменяет заголовок, которое Sendmail выводит при приеме соединений. Установка бита "постоянства" на важнейшие файлы SendmailНа важные файлы Sendmail может быть установлен бит "постоянства для лучшей безопасности при помощи команды "chattr". Файл с установленным атрибутом "+i" не может быть модифицирован, удален или переименован, на него нельзя создавать ссылки и никакие данные не могут быть дописаны в такие файлы. Только суперпользователь может снять этот атрибут. Установите бит "постоянства" на файл "sendmail.cf": Установите бит "постоянства" на файл "local-host-names": Установите бит "постоянства" на файл "aliases": Установите бит "постоянства" на файл "access": Дополнительная документация.Для получения большей информации читайте следующие страницы руководства: $ man aliases (5) - файл псевдонимов для sendmail Утилиты администратора SendmailКоманды описанные ниже мы будем часто использовать, но на самом деле их много больше, и вы должны изучить страницы руководства (man) и документацию, чтобы получить более подробную информацию. newaliasesНазначение утилиты "newaliases" - это пересоздание и обновление базы
данных произвольного доступа для файла почтовых псевдонимов
"/etc/mail/aliases". Она должна запускаться каждый раз, когда вы изменяете
содержимое этого файла, чтобы изменения вступили в силу. makemap Назначение утилиты "makemap" это создание базы данных соответствий для Sendmail. Она должна использоваться только когда вам надо создать новую базу данных для файлов подобных aliases, access, domaintable, mailertable и virtusertable. Запустите команду makemap, чтобы создать новую базу данных access: [root@deep /]# makemap hash /etc/mail/access.db < /etc/mail/accessгде <hash> - это формат базы данных, makemap может манипулировать тремя различными форматами баз данных: "hash", "btree" или "dbm". </etc/mail/access.db> - месторасположения и имя новой базы данных, которую мы создаем. </etc/mail/access> - месторасположение файла из которого мы получаем базу. В нашем примере, мы создаем новый файл "access.db", используя команду makemap. Для создания баз данных из других файлов (aliases, domaintable, mailertable и virtusertable) вы должны определить месторасположение и имена соответствующих файлов в команде "makemap". mailqНазначение утилиты "mailq" - это печать краткой информации о почтовых сообщениях, хранящихся в очереди для дальнейшей доставки Для вывода краткой информации о почтовой очереди используйте команду: [root@deep /]# mailqMail queue is empty Утилиты пользователя SendmailКоманды описанные ниже мы будем часто использовать, но на самом деле их много больше, и вы должны изучить страницы руководства (man) и документацию, чтобы получить более подробную информацию. mailstatsНазначение утилиты "mailstats" - это вывод текущей статистики работы
почтового сервера. [root@deep /]# mailstats Statistics from Tue Dec 14 20:31:48 1999 M msgsfr bytes_from msgsto bytes_to msgsrej msgsdis Mailer 5 0 0K 1 3K 0 0 esmtp 8 1259 19618K 1259 19278K 0 0 local ========================================================================= T 1259 19618K 1260 19281K 0 0 praliases Назначение утилиты "praliases" - вывод текущих почтовых псевдонимов. postmaster:root daemon:root root:admin @:@ mailer-daemon:postmaster bin:root nobody:root webadmin:admin www:root Файлы инсталлированные для Sendmail на Центральном Почтовом Концентраторе> /etc/rc.d/init.d/sendmail > /etc/rc.d/rc0.d/K30sendmail > /etc/rc.d/rc1.d/K30sendmail > /etc/rc.d/rc2.d/S80sendmail > /etc/rc.d/rc3.d/S80sendmail > /etc/rc.d/rc4.d/S80sendmail > /etc/rc.d/rc5.d/S80sendmail > /etc/rc.d/rc6.d/K30sendmail > /etc/sysconfig/sendmail > /etc/mail > /etc/mail/statistics > /etc/mail/sendmail.cf > /etc/mail/access > /etc/mail/access.db > /etc/mail/aliases > /etc/mail/aliases.db > /etc/mail/virtusertable > /etc/mail/virtusertable.db > /etc/mail/domaintable > /etc/mail/domaintable.db > /etc/mail/mailertable > /etc/mail/mailertable.db > /etc/mail/local-host-names > /etc/smrsh > /usr/bin/newaliases > /usr/bin/mailq > /usr/bin/hoststat > /usr/bin/purgestat > /usr/lib/sendmail > /usr/man/man1/mailq.1 > /usr/man/man1/newaliases.1 > /usr/man/man5/aliases.5 > /usr/man/man8/sendmail.8 > /usr/man/man8/mailstats.8 > /usr/man/man8/makemap.8 > /usr/man/man8/praliases.8 > /usr/man/man8/smrsh.8 > /usr/sbin/sendmail > /usr/sbin/mailstats > /usr/sbin/makemap > /usr/sbin/praliases > /usr/sbin/smrsh > /var/spool/mqueue Файлы инсталлированные для Sendmail на локальном сервере или клиенте> /etc/rc.d/init.d/sendmail > /etc/rc.d/rc0.d/K30sendmail > /etc/rc.d/rc1.d/K30sendmail > /etc/rc.d/rc2.d/S80sendmail > /etc/rc.d/rc3.d/S80sendmail > /etc/rc.d/rc4.d/S80sendmail > /etc/rc.d/rc5.d/S80sendmail > /etc/rc.d/rc6.d/K30sendmail > /etc/sysconfig/sendmail > /etc/mail > /etc/mail/statistics > /etc/mail/sendmail.cf > /etc/mail/local-host-names > /etc/smrsh > /usr/bin/mailq > /usr/bin/hoststat > /usr/bin/purgestat > /usr/lib/sendmail > /usr/man/man1/mailq.1 > /usr/man/man8/sendmail.8 > /usr/man/man8/mailstats.8 > /usr/man/man8/smrsh.8 > /usr/sbin/sendmail > /usr/sbin/mailstats > /usr/sbin/smrsh > /var/spool/mqueue
Главная > Операционные системы > UNIX > Linux |