Введение в круг понятий. 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-2018. Дата последней модификации страницы:2018-01-09 13:25:42