Архивы: Postfix

Правильный хостинг | Ограничиваем количество исходящих писем с 1 ящика

ограничение рассылки postfix Мой сайт находится на VDS  хостинге, и приходиться все оптимизировать и настраивать самому. А так же решать проблемы. Тут недавно меня подломали и я решил начать серию статей по описанию действий, которые помогут избежать таких проблем в будущем.

Т.к. я встретился с проблемой массовой рассылки со своего сервера — будем ограничивать количество исходящих писем с 1 ящика средствами postfix .

Для начала посмотрим текущую конфигурацию postfix:

postconf

Нам необходимы параметры (стандартные значения):

anvil_rate_time_unit = 60s
smtpd_client_message_rate_limit = 0
smtpd_client_recipient_rate_limit = 0
smtpd_client_connection_rate_limit = 100

Это означает, что за 60 секунд можно отправить неограниченное количество сообщений с любого ящика. Интересная конфигурация))) как раз для массовых рассылок.

anvil_rate_time_unit — Измеряется в секундах (s) , минутах (m) , часах (h) , днях (d) , неделях (w).

smtpd_client_recipient_rate_limit — Параметр указывает количество получателей для одного авторизованного пользователя postfix. т.е. сколько адресов будет написано в поле «Кому».

smtpd_client_connection_rate_limit — Количество соединений с одного IP адреса. Если он превышен пользователь получит сообщение «Too many connections from ip»

Внесем новые параметры в конфигурацию postfix. Открываем на редактирование файл конфигурации:

nano /etc/postfix/main.cf

И в самый низ дописываем:

anvil_rate_time_unit = 2h
smtpd_client_message_rate_limit = 400
smtpd_client_recipient_rate_limit = 30
smtpd_client_connection_rate_limit = 30

Этим я ограничил количество отправляемых сообщений до 400 штук за 2 часа. Количество получателей до 30 за 1 раз. Количество соединений до 30 на 1 пользователя. Мне пока вполне достаточно таких цифр.

 

Настройка sendmail для отправки рутовых уведомлений

В общем мне надоело ходить по сервакам и читать некоторые логи, знаю что можно получать стандартные оповещения отправляемые на локальный адрес хоста руту. Что мы получаем в итоге: Нам на почту будут приходить уведомления о выполняемых Crontab и их статусе, будем получать техническую информацию о состоянии систем, служебные уведомления различных программ.

Эта инструкция применима как к опубликованным Web серверам так и к внутренним локальным серверам (ниже инструкция для FreeBSD 8.2).

Все по порядку, проверяем установлен ли sendmail (далее SM):

[cc lang=’bash’ ]

service sendmail status
sendmail_submit is running as pid 902.
sendmail_clientmqueue is running as pid 913.

[/cc]

Это означает что сервис SM присутствует и запущен. Если не запущен то делаем start. Если не установлен то скорее всего должен присутствовать другой MTA (Mail Transfer Agent), например Postfix (как в suse enterprise), его мы настроим в другой статье.

Создаем на своем почтовом сервере (например Exchange) почтовый ящик или группу рассылки для того чтобы на нее отправлять почту. Я предпочитаю делать рассылки именно через группы, для того чтобы можно было подписывать и других людей на оповещения.

В Unix системах существуют так называемые алиасы (alisses) — нужны они для сопоставления имен и адресов. Так как система отправляет всю почту через MTA в локальную папку пользователя root, то нам нужно просто перенаправить всю рутовую почту на алиас (другой почтовый адрес). Заходим в папку /etc/mail/ и открываем на редактирование файл alises.

/etc/mail/

Добавляем строчки как в скриншоте (levkin можно заменить на что угодно): Читать далее »