База данных доступа (access database)



База данных доступа (access database)

Альтернативная система, которая предлагает большую гибкость и управление в ручной конфигурации, это свойство sendmail access_db. База данных позволяет Вам конфигурировать, от кого вы примете почту и для кого ее передадите.

Это очень важный аспект, поскольку такой подход позволяет бороться со спамерами, обходящими Real-time Blackhole List. Вместо того, чтобы посылать почту Вам непосредственно, спамер передаст почту через некоторый другой компьютер, который в списке не отмечен. В результате спам дойдет-таки до адресата! Чтобы гарантировать, что Ваш компьютер не используются таким образом, Вы должны передавать почту только для известных компьютеров. Версии sendmail 8.9.0 и старше вообще блокируют ретрансляцию почты по умолчанию.

Получив входящее соединение по SMTP, sendmail берет данные из заголовка и сравнивает их с базой данных, чтобы узнать, что ему с этим письмом делать.

База данных доступа это совокупность правил, которые описывают, какое действие должно быть выполнено для сообщений, полученных от указанных компьютеров. Заданный по умолчанию файл управления доступом называется /etc/mail/access. Таблица в нем имеет простой формат. Каждая строка таблицы содержит правило доступа. Левая сторона каждого правила образец, используемый, чтобы сравнивать с ним адреса. Это может быть полный адрес email, hostname или адрес IP. Правая сторона задает действие. Имеются пять типов действия, а именно:

OK

Принять сообщение почты.

RELAY

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

REJECT

Отклонить сообщение почты.

DISCARD

Отклонить сообщение почты, используя транспорт $#discard.

### any text

Вернуть сообщение об ошибке, используя код ошибки ### (указаны в RFC-821) или "any text" в качестве ответного сообщения.

Простой пример файла /etc/mail/access:

friends@cybermail.com REJECT aol.com REJECT 207.46.131.30 REJECT postmaster@aol.com OK linux.org.au RELAY

Этот пример отклонит все письма с адреса friends@cybermail.com, любого хоста в домене aol.com и хоста 207.46.131.30. Следующее правило разрешает принять почту с postmaster@aol.com, несмотря на тот факт, что домен имеет запрещающее правило. Последнее правило позволяет передачу почты с любого хоста в домене linux.org.au.

Для включения поддержки access database впишите определение в sendmail.mc:

FEATURE(access_db)

Заданное по умолчанию определение формирует базу данных, используя вызов hash -o /etc/mail/access, который генерирует простую базу данных из текстового файла. Этого достаточно в большинстве случаев. Есть другие параметры, которые Вы должны изучить при использовании большой базы данных доступа. Но ввиду малой распространенности таких конфигураций, я не буду рассматривать их.



Содержание раздела