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) вот так?
Спасибо!