Остановить постфикс от ресурсов пожирания во время атак с подбором по словарю спаммера?

Вы могли использовать сквид, но это будет излишество только для предоставления одного дополнительного заголовка аутентификации для порождения прокси. Поиск

aps098

на Google и Вы найдете то, в чем Вы нуждаетесь.

1
задан 23 February 2010 в 22:51
2 ответа

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

От/etc/postfix/master.cf

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       5       smtpd

В maxproc столбец, можно заменить - с меньшим числом для ограничения количества параллельных smtpd процессы, это должно обеспечить некоторый логический элемент на сумме входящей корреспонденции.

Другая альтернатива должна была бы посмотреть на fail2ban который может быть настроен для парсинга /var/log/maillog и повысьте iptables блоки для адресов, которые отправляют большую сумму недоставленной почты.

1
ответ дан 4 December 2019 в 02:11
  • 1
    Спасибо Dave. Какие-либо предложения на том, каково меньшее число должно быть? Это - довольно активный сервер с несколькими сотнями учетных записей и почти 60 различными доменами, таким образом, I' m не совсем довольный только 5 процессами все же. Прямо сейчас, например, существует 12 процессов smtpd и никакие атаки с подбором по словарю, продолжающиеся (к счастью). На подобном сервере существует 27 процессов smtpd. Если я просто удваиваю более высокое количество и заставляю его сказать, 54 возможных процесса и подстроить его на основе пробной версии & ошибка? Или есть ли более научный способ сделать это? –  ane 23 February 2010 в 23:09
  • 2
    Стоп, 12? Как ядра могут сделать Вас, имеют на этом звере? То, что это означает, является Вами, может иметь 12 одновременный соединения - который потенциально означает 12 очень занятых центральных процессоров, если Вам присоединили вирусные сканеры для добавления постфикса. Если у Вас только есть сервер квадратического или сдвоенного процессора, you' ll хотят обрезать то число немного, сказать 8 или 4. Да, Вы won' t смочь получить соединение, в то время как шторм спама бушует, но он будет ограничение скорости спаммер также... и препятствовать тому, чтобы Ваше поле опрокинулось. Я предполагаю, что лучший вопрос: сколько пользователей реалистично соединилось бы для отправки внезапно ? Возьмите то число и добавьте 2. –  Avery Payne 24 February 2010 в 04:48
  • 3
    Сборник изречений - от Вашего первого сообщения, это появилось Ваша проблема, был использованием памяти, не использованием CPU, потому что Вы работали в маленьком VPS. Don' t забывают, что Постфикс работает над моделью для каждого процесса, которая разветвит один smtpd для жизнь из smtp перехода. Это от EHLO до закрытия соединения, после того как сообщение прошло Ваши спам-фильтры и т.д. Если Вам нужно больше производительности на МБ поршня, Постфикс, вероятно, isn' t сервер для Вас. –  Dave Cheney 24 February 2010 в 07:02
  • 4
    Определенной проблемой является количество несокетов TCP, которые съел постфикс во время атак с подбором по словарю (тысячи), больше, чем поставщик обеспечивает (макс.: 900). Кажется, что, чем больше процессов smtpd существует, тем больше несокетов TCP используется (?), когда постфикс поражает этот предел, он дает ошибку распределения памяти и прекращает принимать новые соединения. Существует на самом деле много памяти, свободной (более чем 1 ГБ), но несокеты TCP истрачены. –  ane 24 February 2010 в 18:18
  • 5
    Наконец найденный время попытка Dave' s совет. После уменьшения его к 5, я теперь получаю следующее: 26 марта 12:00:03 постфикса/ведущего устройства [23946]: предупреждение: сервис " smtp" (25) достиг его предела процесса " 5": новые клиенты могут испытать значимые задержки 26 марта 12:00:03 постфикса/ведущего устройства [23946]: предупреждение: для предотвращения этого условия увеличьте количество процесса в master.cf или уменьшите время обслуживания на клиент, Таким образом, я задержал его к значению по умолчанию. Угадайте, что некоторое экспериментирование необходимо для выяснения корректного баланса макс. процессов. Все еще уверенный, как maxproc влияет на несокеты TCP. –  ane 26 March 2010 в 18:04

Вы могли бы хотеть рассмотреть добавление чего-то подобного:

smtpd_recipient_restrictions =
        permit_auth_destination,
        permit_mynetworks,
        reject_unauth_destination,
        reject_unlisted_recipient

... к Вашему main.cf файл, который должен заставить постфикс выводить некоторые соединения, как только он фигурирует там, не является пользователем для поставки к. Волшебство находится в reject_unlisted_recipient, который вызовет отклонения для пользователей, которые не действительны в Вашей системе при использовании с local_recipient_maps. Таким образом это должно снять некоторое давление путем сокращения объема обработки продолжения, поскольку каждое выделенное соединение освобождает драгоценные ресурсы для контакта со следующим соединением. Да, спаммер сможет определить, какие адреса недопустимы, но лучше что спаммер тратит впустую их время, отправляя (и быть отклоненным, тратя впустую их пропускную способность), чем Ваша (отражение нападения).

0
ответ дан 4 December 2019 в 02:11
  • 1
    Спасибо Avery. That' s настройка по умолчанию, но я переместил его выше в список smtpd_recipient_restrictions. После контроля количество несокетов TCP остается о том же, таким образом, I' m не уверенный эта конкретная установка имеет много эффекта на несокеты TCP. –  ane 24 February 2010 в 18:48

Теги

Похожие вопросы