Рейтинг:1

После добавления нового DNSBL в Sendmail, как я могу повторно отправить электронное письмо, чтобы увидеть, будет ли оно отклонено?

флаг cn

TL;DR

Как я могу обмануть свой собственный sendmail, заставив его думать, что электронное письмо приходит с определенного IP-адреса, чтобы оно отклоняло сообщение из-за совпадения DNSBL?

Подробности:

У меня есть собственный почтовый сервер, и большая часть спама блокируется черными списками DNS (DNSBL), которые я добавил в /etc/mail/sendmail.mc следующим образом:

dnl FEATURE(`dnsbl',`dnsbl.sorbs.net',`"554 Rejected " $&{client_addr} " найдено в dnsbl.sorbs.net"')dnl
dnl FEATURE(`dnsbl',`b.barracudacentral.org',`"554 Rejected " $&{client_addr} " найдено в b.barracudacentral.org"')dnl

Сегодня пришел спам (прохождение всех тестов), и после проверки Набор инструментов MX и Информация DNSBL мог видеть, что добавление одного из нескольких DNSBL заблокировало бы этот конкретный спам.

Итак, я добавил еще один DNSBL, и теперь я хочу протестировать его, повторно отправив это письмо в Sendmail, но в этом и заключается проблема: оно не будет приходить с правильного IP-адреса, и DNSBL не увидит его как плохое.

Вот команда, которую я обычно использовал:

formail -s /usr/sbin/sendmail -oi -t < testmail.mbox

Прежде чем я попытаюсь изобрести велосипед, я подумал, что сначала спрошу здесь. Возможные идеи:

  • Есть ли опция CLI для sendmail для подделки исходного IP-адреса?
  • Может быть, создать файл сообщения в очереди и поместить его в очередь напрямую?
  • Возможно, настроить другой IP-адрес на моей машине и отправить с ним себе?
  • Будет ли туннель OpenVPN или SSH быстрым решением?
  • Возможно, общая библиотека может быть загружена для перехвата системных вызовов, а-ля LibFakeTime?
  • Dtrace выглядит мощно, может ли он изменить вызовы getockopt(2) вот так?

Спасибо!

флаг in
SMTP использует TCP-соединения, которые не могут иметь поддельные IP-адреса (кроме «владения» IP-адресом). Черный список, как вы сказали, запускается при получении, поэтому его нелегко повторно протестировать. Вы можете добавить этот IP-адрес в свою собственную сеть для проверки, но вам нужна правильная маршрутизация. Как правило, это больше работы, чем оно того стоит, попробуйте найти какой-нибудь другой тестовый сервис или просто подождите, пока снова не придет спам.
PFudd avatar
флаг cn
Оказывается, решением было «владеть» IP-адресом, и пока IP-адрес был добавлен на тот же хост, что и sendmail, маршрутизация осуществляется автоматически. При этом я не уверен, хочу ли я попробовать это с Docker или какой-либо другой виртуальной машиной, поскольку маршрутизация там становится очень сложной.
Рейтинг:1
флаг cn

После сна на нем решение оказалось тривиальным:

ssh мой почтовый сервер

# Добавьте 1.2.3.4 в качестве псевдонима (eth1:0) к интерфейсу eth1:
sudo ifconfig eth1:0 1.2.3.4 сетевая маска 255.255.255.255

# Используйте 1.2.3.4 в качестве исходного IP-адреса, подключитесь к порту 25 на локальном хосте:
нк -с 1.2.3.4 0.0.0.0 25

ПРИВЕТ 1.2.3.4
ПОЧТА ОТ: [email protected]
RCPT КОМУ: [email protected]
ДАННЫЕ
Тема: это действительно из 1.2.3.4?

Тест от 1.2.3.4
.
УВОЛИТЬСЯ
^ С

# Удаление 1.2.3.4 из eth1:
судо ифконфиг eth1:0 0.0.0.0

Вуаля, результирующий заголовок:

Возвратный путь: <[email protected]>
Получено: из 1.2.3.4 ([1.2.3.4] (может быть подделано))
    от earth.com (8.15.2/8.15.2) с идентификатором SMTP 1731SlYY013775
    для <[email protected]>; Пн, 2 авг 2021 18:29:14 -07:00
Результаты аутентификации: the-force.com; dkim=permerror (неверный формат сообщения/подписи)
Дата: Пн, 2 августа 2021 г., 18:28:47 -07:00
От: <[email protected]>
Идентификатор сообщения: <[email protected]>
Тема: Подопытный

Также выяснилось, что IP-адрес не блокируется (DNSBL не работает?), так что в этом смысле тест прошел успешно. :-/

Обновление: D'oh! Вместо этого строки в sendmail.mc должны быть такими:

FEATURE(`dnsbl',`dnsbl.sorbs.net',`"554 отклоненных " $&{client_addr} " найдено в dnsbl.sorbs.net"')dnl
FEATURE(`dnsbl',`b.barracudacentral.org',`"554 отклоненных " $&{client_addr} " найдено в b.barracudacentral.org"')dnl

Другими словами, «dnl» в начале закомментировал все строки DNSBL. :-(

Ааааа это Вот почему мы тестируем, дамы и господа.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.