Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: К вопросу о борьбе со спамом в postfix  (Прочитано 1574 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Karl500

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
К вопросу о борьбе со спамом в postfix
« : 26 Декабря 2013, 17:28:28 »
Коллеги, хотелось бы услышать ваше мнение.

Работает у меня postfix, рубит кучу потенциального спама, в том числе на этапе соединения, HELO, MAIL FROM и RCPT TO.
Но вдруг стало жаль мне свой мэйл сервер, да и шлюз: очень уж много таких вот "отвергнутых" попыток ежеминутно появляется в логах. И прикрутил я к fail2ban еще один фильтр (причем заготовка для него есть в поставке):

# Fail2Ban configuration file
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values:  TEXT
#
failregex = reject: RCPT from (.*)\[<HOST>\]: 550
            reject: RCPT from (.*)\[<HOST>\]: 450
            reject: RCPT from (.*)\[<HOST>\]: 554

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex = reject: RCPT from (.*)\[<HOST>\]: 450 4.2.0

Параметры фильтра в конфиге jail.conf такие:

[postfix]

enabled  = true
port = smtp
filter   = postfix
logpath  = /var/log/mail.info
maxretry = 3
banaction = iptables-allports
bantime  = 3600

Т.е. при трехкратной неудачной попытке послать письмо, закончившейся reject с кодами 550, 450 или 554 IP-адрес получает бан по порту smtp на 1 час. Некоторые особо активные спамеры, правда, успевают сделать несколько больше попыток, но это уже мелочь.

Если же это был "отлуп" из-за грейлистинга, то бана не последует: в строке ignoreregex это событие (с кодом 4.2.0) игнорируется.

Ну и - если это действительно какая-то временная ошибка (например, с DNS), из-за чего мой сервер ответил 450, то через час он готов будет снова попробовать принять это сообщение.

Ваше мнение, коллеги?

Оффлайн oermolaev

  • Старожил
  • *
  • Сообщений: 1479
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #1 : 27 Декабря 2013, 14:40:28 »
А у меня сервер в локальной сети и от fail2ban пришлось отказаться.
Но на шлюзе работает такое правило:
# Борьба со спамом. Забаненные ip можно посмотреть: /proc/net/xt_recent/spamer
iptables -I FORWARD 2 -i ${EXT_IF} -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name spamer --rsource
iptables -I FORWARD 3 -i ${EXT_IF} -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 300 --hitcount 3 --name spamer --rsource -j DROP
т.е. любой ip соединяющийся на 25й порт банится на час после третьей попытки соединения.

Оффлайн Karl500

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #2 : 27 Декабря 2013, 15:09:20 »
А что криминального в трех попытках соединения? Например, при грейлистинге или если просто три раза Вам откуда-то письма пришли?

Оффлайн oermolaev

  • Старожил
  • *
  • Сообщений: 1479
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #3 : 27 Декабря 2013, 15:26:33 »
После того как мой почтовый сервер немного поработал релеем, очень долго долбили китайцы, так что почти парализовали его работу. Этот шаг был спасением. Прошло время, а так и не снял.  :-[

Оффлайн Karl500

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #4 : 27 Декабря 2013, 15:47:02 »
Простите, еще один вопрос. А как связаны утверждения "сервер в локальной сети", "долбили китайцы" и "от fail2ban пришлось отказаться"?

Оффлайн oermolaev

  • Старожил
  • *
  • Сообщений: 1479
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #5 : 27 Декабря 2013, 22:41:46 »
На шлюзе проброшены порты на почтовый сервер (т.е.он в локальной сети).fail2ban видит соединения от адреса шлюза и по срабатыванию блокирует именно его. После того как сервер "побыл" публичным пересыльщиком почты, с двух-трех диапазонов адресов шли непрерывные попытки соединения на 25 порт. По whois - все были китайцы :)
Связалось? :)

Оффлайн Karl500

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #6 : 27 Декабря 2013, 23:20:35 »
Не очень. Обычно почтовый сервер все-таки получает соединения не со шлюза, а от реальных IP...

Оффлайн oermolaev

  • Старожил
  • *
  • Сообщений: 1479
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #7 : 27 Декабря 2013, 23:36:35 »
Я только учусь и многое делаю неправильно. Благо, специфика работы позволяет делать ошибки.
Но я вклинился в тему не столько для того что бы обсуждать их, сколько почерпнуть новые приемы от Вас.
Обычно почтовый сервер все-таки получает соединения не со шлюза, а от реальных IP...
- т.е. бывают обоснованные исключения, или это в любом случае неправильно?
« Последнее редактирование: 28 Декабря 2013, 09:25:33 от oermolaev »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #8 : 28 Декабря 2013, 10:56:39 »
ipset+ipt_recent? fail2ban сильно нагружает систему, запускаясь впустую.

oermolaev, значит, неправильно проброшены, раз сервер видит соединения со шлюза (если только сам шлюз не шлёт почту).
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн oermolaev

  • Старожил
  • *
  • Сообщений: 1479
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #9 : 28 Декабря 2013, 12:03:14 »
делал так: iptables -t nat -A PREROUTING --dst $EXT_IP -p tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -t nat -A POSTROUTING --dst $LAN_IP -p tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP
iptables -t nat -A OUTPUT --dst $EXT_IP -p tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT
по инструкции
AnrDaemon, подскажите как надо что бы сервер видел ip адресата?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #10 : 28 Декабря 2013, 13:18:19 »
Ужас. Тихий. Чтобы пробросить порт, необходимо и достаточно двух правил:
1. Самого редиректа (nat/PREROUTING),
2. Разрешающего правила в filter/FORWARD.
Всё остальное - мусор и расход процессорного времени на чепуху.
Да, на клиенте шлюз должен смотреть на пробрасывающий сервер, как минимум для пробрасываемого трафика.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн oermolaev

  • Старожил
  • *
  • Сообщений: 1479
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #11 : 28 Декабря 2013, 13:53:17 »
AnrDaemon, спасибо, испытаю в каникулы :)

Оффлайн oermolaev

  • Старожил
  • *
  • Сообщений: 1479
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #12 : 06 Января 2014, 00:55:47 »
AnrDaemon, спасибо! Оставил только первую и последнюю строку:
iptables -t nat -A PREROUTING --dst $EXT_IP -p tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT
теперь почтовый сервер видит соединения не со шлюза, а с сервера отправителя

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: К вопросу о борьбе со спамом в postfix
« Ответ #13 : 06 Января 2014, 02:51:25 »
Я обычно делаю ещё проще.
-I FORWARD -m state --state DNAT -j ACCEPT
Если я пробрасываю трафик, наверное, я хочу, чтобы он проходил?...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.022 секунд. Запросов: 22.