Круговая оборона MTA

Andrushock

Xakep, номер #063, стр. 063-078-1

(andrushock@real.xakep.ru)

Подними защиту своего почтовика на новую высоту

В то время как поклонники Qmail и Exim с пеной у рта доказывают друг другу преимущества своих фаворитов, быстроразвивающийся и чрезвычайно шустрый Postfix приступом берет почтовые серверы по всему миру. Доля преждевременно списанного со счетов мистера Sendmail’а составляет порядка семидесяти процентов. Остальные транспортные агенты, проходя это испытание, терпят поражение. На сегодняшний день так обстоят дела на почтовом фронте. О том, что же позволяет самому сложному в настройке и самому дырявому почтмейстеру удерживать лидирующие позиции, мы сегодня и поговорим.

О бедном Sendmail’е замолвите слово

В течение последних двадцати лет ни гетерогенные международные сети (Internet, Bitnet, DECnet), ни «неправильные» протоколы (MTP, UUCP, X400), ни еженедельные изменения в рабочих документах RFC не могли помешать детищу Эрика Оллмана успешно справляться с задачами маршрутизации электронной почты. Благодаря гибкости своего конфигурационного файла, Sendmail может «без проблем» адаптироваться к любым условиям и вновь возникающим потребностям.

«Без проблем» я не случайно взял в кавычки, так как о процессе конфигурирования Sendmail’а ходят настоящие легенды. Почему? Да потому что синтаксис главного управляющего файла sendmail.cf настолько сложен, что инлайновые вставки по сравнению с ним тебе покажутся забавой скрипткидди. А основное руководство по программе содержит больше тысячи страниц голого текста. Такое положение дел может привести в уныние самого дотошного энтузиаста, не говоря уже о простом пользователе.

К счастью, нам не придется ковырять изобилующий лексемами конфиг – в копии базового «.mc» файла мы подготовим необходимые макровызовы, а препроцессор m4 всю грязную работу возьмет на себя. Необходимые файлы-заготовки в зависимости от используемой операционной системы можно найти в каталогах /etc/mail (Fedora Core), /usr/share/sendmail/cf (OpenBSD), /usr/lib/mail/cf (Solaris):

# cd /usr/share/sendmail/cf

# cp openbsd-proto.mc midian.mc

# vi midian.mc

Так как этот свободно распространяемый транспортный агент входит в большинство UNIX-подобных операционных систем и дистрибутивов линукса (исключение составляют Owl Linux и последние версии Suse Linux), предлагаю сразу перейти непосредственно к конфигурированию. Стоит отметить, что разработка по модели открытого исходного кода - это еще один несомненный плюс Sendmail’а, ведь именно из-за проблем с лицензированием Qmail и Postfix по умолчанию не могут находиться в составе твоей любимой операционки.

Разговорчики в строю!

Вопрос о необходимости сокрытия/подмены версий используемых программ уже давно перешел в разряд риторических, поэтому мы бы не стали вдаваться в подобные дискуссии, если бы дело не касалось довольно многословной системы Sendmail. При установлении соединения в приветственном сообщении демон отправляет полное доменное имя узла, свою версию и текущую дату. Помимо этого, в почтовых заголовках он выдает IP-адреса своих клиентских хостов, тем самым раскрывая всему миру топологию внутренней сети. Чтобы ничего подобного не произошло, необходимо:

Содержание  Вперед на стр. 063-078-2
ttfb: 4.7919750213623 ms