Введение в круг понятий. UNIX/Linux  
  О конфигурировании сервисов электронной почты. Заметки  


Эти материалы являются объектом авторского права и защищены законами РФ и международными соглашениями о защите авторских прав. Перед использованием материалов вы обязаны принять условия лицензионного договора на использование этих материалов, или же вы не имеете права использовать настоящие материалы

Авторская площадка "Наши орбиты" состоит из ряда тематических подразделов, являющихся моими лабораторными дневниками, содержащими записи за разное, иногда продолжительно отличающееся, время. Эти материалы призваны рассказать о прошедшем опыте, они никого ни к чему не призывают и совершенно не обязательно могут быть применимы кем-то ещё. Это только лишь истории о прошлом


К сожалению я довольно поздно решил оформлять знакомство с различными техническими решениями статьями. В результате ряд базовых юниксовых сервисов остался не охваченным, статьи по UNIX тематике отражают знакомство с менее распространёнными "а-ля корпоративными" сервисами типа сервисов сетевого развёртывания рабочих станций и серверов, систем единого входа и каталогов навроде LDAP и Kerberos. Вот тема администрирования СУБД Oracle получила лучшее развитие, на сайте фактически опубликована методика подготовки начинающего администратора баз данных Oracle, и по ней даже проведено пробное обучение специалиста, ранее с СУБД и ораклом не сталкивавшегося. Успешно работает человек, что бы там злые языки не квакали - привет отдельным крысам/нелюдям с sql.ru ... Так что на моём счету уже не только два подготовленных юниксоида, но и один ораклоид

Далее для закрытия образовавшегося пробела были подготовлены материалы по ряду сетевых и инфраструктурных сервисов, например DNS/DHCP/NTP/Netfilter/SSH, работе с репозитариями пакетов DEB и RPM. Часть материалов приведена в опубликованных памятках по работе с моими типовыми коммуникационными серверами ТИКСЕР БЕССТ. Часть профессиональных навыков не нашла отражения в статьях, но нашла отражение в моих авторских продуктах. В настоящей статье планируется привести ряд заметок по быстрому конфигурированию сервиса электронной почты - к сожалению ресурса хватает только на очень короткие заметки

Дабы не повторяться, обзор вопросов построения систем электронной почты уже описан мной в сводной статье по unix - сервисам

Итак, почтовые системы строятся на основе одного из трёх наиболее распространённых MTA (серверов доставки почты) - Sendmail, Exim или Postfix. Кроме того используется один из распространённых pop3/imap серверов - ipop3d (imapd), Dovecot, CirrusIMAP, CourierIMAP. Также обязательным является привлечение антивирусного ПО и ПО для распознавания и блокирования спама. Общая архитектура почтовой системы и используемые антиСПАМ решения являются предметом постоянного обсуждения администраторами, однако здесь эти вопросы обсуждаться не будут. Мой успешный опыт по построению почтовых систем как у мелких заказчиков, так и в крупных международных организациях с суточным объёмом до 150 тысяч писем описан в опубликованной здесь же на сайте статье, там же приведена моя позиция и аргументы за неё

Практический опыт построения почтовых систем у меня ограничивается MTA Sendmail и Exim, серверами ipop3d (imapd) и Dovecot, интеграцией антивирусных пакетов DrWeb и ClamAV, антиСПАМ решениями Kaspersky antiSPAM и SpamAssassin, кроме того после значительных усилий по выделению наиболее эффективных антиспам технологий на вооружение были взяты технологии серых списков, проверки существования отправителя и начальной паузы. При всём уважении MTA Postfix был мной исследован, после чего был сделан вывод о более сложной и неочевидной интеграции с дополнительными сервисами по сравнению с Exim и Sendmail и ряде дополнительных сложностей и неудобств при конфигурировании, чего в совокупности с тем, что ни один дистрибутив на тот момент не использовал Postfix в качестве основного - обусловили отставку этого MTA. Даже факт выбора отдельными дистрибутивами этого MTA в качестве дефолтного говорит больше на ориентацию на "хомячков", хотя справедливости ради нужно отметить удачную с позиции безопастности архитектуру Postfix. Ну да и у других MTA с безопастностью хорошо

Поэтому тонкости и особенности конфигурирования, сложные конфигурации, написание специализированных сервисов - а у меня написаны модули перлюстраторов для sendmail и exim - это всё мы оставим в стороне, поставив задачей описание шагов для быстрейшего подъёма соответствующих сервисов

Шаги для быстрейшего развёртывания Sendmail на RHEL-based дистрибутивах:

  • установить пакеты sendmail, sendmail-cf, sendmail-doc, sendmail-devel (последний только для последующей сборки присоединяемых через Milter сервисов)
  • заполнить файл /etc/mail/local-host-name именем сервера и всеми именами локальных почтовых доменов, почта на которые будет не передаваться дальше, а укладываться в локальные почтовые ящики пользователей
  • в файл /etc/mail/access добавить для каждого локального домена строчку вида "To:fqdn_имя_домена OK" и "To:.fqdn_имя_домена OK", а также "Connect:соответствующая_маске_часть_IP_сети Relay"
  • в файле /etc/mail/sendmail.mc закомментировать символами "dnl" строчку "DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl"
  • перейти в каталог /etc/mail и запустить make
  • обеспечить доступ сервера к DNS, для каждого локального домена имеющего запись типа MX, указывающаю на этот почтовый сервер
  • рестартовать sendmail

Шаги для быстрейшего развёртывания Dovecot на RHEL-based дистрибутивах:

  • установить dovecot
  • в файле /etc/dovecot.conf раскомментировать строчку "protocols = imap imaps pop3 pop3s"
  • запустить dovecot
     

Этих шагов достаточно для скорейшего запуска системы электронной почты. Клиенты могут обращаться к своим почтовым ящикам из предпочитаемого почтового клиента, установленного на их машине. Пользователи создаются на сервере как учетные записи операционной системы, пароли также назначаются в операционной системе

Далее можно провести активацию и интерграцию требуемых антивирусных и антиспам систем и технологий в соответствии с описанием этих систем. Если "greeting pause" встроена sendmail и может быть активирована добавлением опции "FEATURE(`greet_pause',`10000')dnl", то другие механизмы требуют развёртывания отдельных сервисов и их интеграции с sendmail технологией Milter, выражающейся в добавлении двух строчек в /etc/mail/sendmail.mc (опционально также в /etc/mail/submit.mc) и последующего make
 

Другим качественным MTA является Exim. Вы можете использовать его вместо Sendmail

Шаги для быстрейшего развёртывания Exim на RHEL-based дистрибутивах:

  • установить пакеты exim, exim-doc, exim-mon, exim-sa. В качестве альтернативы выкачать исходники с сайта системы, развернуть дерево, скопировать из подкаталога src в подкаталог Local файл EDITME, переименовав его в Makefile и отредактировав (все опции описаны в файле, как минимум имя пользователя - лучше с ref: и группы, их создать в ОС, пути к бинарнику, флаг сканирования контента для активации антивирусных и антиспам подсистем, путь к журналам - я переделываю на /var/log/exim, создаю этот каталог и меняю ему владельца и группу на соответствующие, пути к файлу конфигурации - меняю на /etc/mail/exim.conf). Кроме того копируем exim_monitor/EDITME -> Local/eximon.conf. После чего из корня дерева запускаем make (если не хватает каких - то библиотек, доставляем соответствующие devel пакеты и перезапускаем make). Далее говорим make install
  • В конфигурационном файле добавляем корректные значения в параметры:
    domainlist localdomain -> локальные домены (почта на них доставляется локальным пользователям)
    hostlist relay_to_host -> сети, из которых разрешён релэинг, пример 192.168.1.0/24 : 192.168.2.0/24
    # добавляем защитную паузу в первую терму acl_check_mail
    deny condition = ${if eq{$sender_helo_name}{} {1}}
         delay = 10s
         message = Nice boys say HELO first
    # добавляем проверку существования отправителя в acl_check_rcpt
    accept  hosts         = ! +relay_from_hosts
            verify        = sender/callout=30s
            set acl_m0    = sender_verify_ok
    require condition = ${if eq{$acl_m0}{sender_verify_ok}{false}{true}}
    # конфигурируем коннекторы к clamav и spamassassin 
    # и раскомментируем соответствующие параметры в acl_check_data
    av_scanner = clamd:127.0.0.1 3310
    spamd_address = 127.0.0.1 783
    # настраиваем maildir формат в локальном транспорте
    driver = appendfile
    maildir_format = true
    directory = /var/mail/$local_part${if eq{$local_part_suffix}{}{}{/.${substr_1:$local_part_suffix}}}
    maildirfolder_create_regex = /\.[^/]+$
    delivery_date_add
    envelope_to_add
    return_path_add
    group = mail
    mode = 0660
    
  • Запустить exim

Далее можно говорить о развёртывании дополнительных антивирусных и антиспам решений

  • Ставим пакет spamassassin
  • Установить clamav. Альтернатива - скачиваем и компилируем clamav. Создать пользоватея и группу clamav. Распаковать дерево и зайти в него. Запустить ./configure (для использования с sendmail ./configure --with-milter, причём должен быть поставлен пакет sendmail-devel). Запустить make ; make install
  • Оптимизировать конфигурационные файлы (как минимум закомментировать строчку Example в clamd.conf), сконфигурировать автозапуск и запустить spamassassin и clamav
  • Для exim - раскомментировать строки коннекторы, указать в них корректные сокеты (для файловых не забыть сконфигурировать группы и пользователей), раскомментировать соответствующие поля в конфигурации ACL acl_check_data и перезапустить exim
  • Для sendmail - настроить milter для каждого обработчика и перезапустить
     

не завершено ...


Белонин С.С. (С), июнь 2004 года

(даты последующих модификаций не фиксируются)


 
        
   
    Нравится     

(C) Белонин С.С., 2000-2024. Дата последней модификации страницы:2019-12-04 00:43:28