Автор Тема: Нужна помощь по Postfix!!! "Дуются" почтовые логи! Видимо от меня летит СПАМ  (Прочитано 4551 раз)

Оффлайн bo4karev

  • Участник
  • *
  • Сообщений: 116
была похожая проблема в январе, мне помогали здесь:
http://forum.altlinux.org/index.php/topic,9528.msg128752.html#msg128752

после установки всех запретов, нужно очистить накопившуюся в системе очередь из спама

Оффлайн aha

  • Участник
  • *
  • Сообщений: 52
была похожая проблема в январе, мне помогали здесь:
http://forum.altlinux.org/index.php/topic,9528.msg128752.html#msg128752

после установки всех запретов, нужно очистить накопившуюся в системе очередь из спама
остановить SMTP  и очистить очередь печати я догадался,
щаз вроде спама нету
в main.cf в строке mynetworks - только моя сеть, мало того, указанная не диапазоном, а "дискретно" - 8 конкретных айпишнегов (именно столько почтовых клиентов)

читал внимательно логи, из логов уходил по айпишнегу письма в каталог deferred,
находил там письмо
в теле этого письма, кроме как таких "неопределенных" строчек типа:
2011091222134347.D1E2D3BF@maindomain.ru
которые бы могли с гораздо большей точностью определить внутреннего юзера-спамера - не нашел...

Все тесты на ОПЕН-Релей - пройдены успешно, релей закрыт...

Спам прекратился... в след. раз (ТТТ, чтоб его не было!!!) буду методом исключения вычислять "крота"

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
в теле этого письма, кроме как таких "неопределенных" строчек типа:
2011091222134347.D1E2D3BF@maindomain.ru
Там обязаны быть строки Received, хотябы одна, от этого сервера, которая добавлена в момент приёма.

Оффлайн aha

  • Участник
  • *
  • Сообщений: 52
в теле этого письма, кроме как таких "неопределенных" строчек типа:
2011091222134347.D1E2D3BF@maindomain.ru
Там обязаны быть строки Received, хотябы одна, от этого сервера, которая добавлена в момент приёма.
Я отправил вам в личку сообщение, гляньте пожалуйста!

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
в теле этого письма, кроме как таких "неопределенных" строчек типа:
2011091222134347.D1E2D3BF@maindomain.ru
Там обязаны быть строки Received, хотябы одна, от этого сервера, которая добавлена в момент приёма.
Я отправил вам в личку сообщение, гляньте пожалуйста!
Вот что нужно было найти в письмах:

Received: by xxxxxxxxx (Postfix, from userid 121)N6     id 04E2D709C; Fri, 23 Sep 2011 08:49:54 +
0600 (YEKST)

Очевидно, локальная отправка, раз "from userid". Там веб-сервер ещё ? Похоже, сайт поломали, либо форма есть какая-то без капчи и т.п.

Оффлайн aha

  • Участник
  • *
  • Сообщений: 52
http - поднят, но я пользуюсь только для управления по https:\\local: 8080
форму для регистрации пользователей не "поднимал" - всех юзверей завожу руками

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
http - поднят, но я пользуюсь только для управления по https:\\local: 8080
форму для регистрации пользователей не "поднимал" - всех юзверей завожу руками
а userid 121 - это кто ? grep 121 /etc/passwd
ещё можно /usr/sbin/sendmail переименовать в какой-нибудь sendmail.main.webEFGs и положить рядом скрипт sendmail, что-то вроде такого:

#!/usr/bin/perl

use Env;
use Sys::Syslog;

my $ScriptName = "sendmail-wraper";
my $SysLogFacility = "mail";
my $SysLogPriority = "info";

my $mailprog = '/usr/sbin/sendmail.main.webEFGs';

my $uid = $>;
my @info = getpwuid($uid);

openlog("$ScriptName" . "[$$]", "ndelay", $SysLogFacility);

syslog($SysLogPriority, "Directory: $PWD, info: @info, args: @ARGV");

my $needsetfrom = 1;

foreach (@ARGV) {
    if ($_ =~ /-f(<.*>)/) {
        $arg="$arg" . " -f'" . "$1" . "'";
    } else {
        $arg="$arg" . " $_";
    }

    if ($_ =~ /-f(\S*)/) {
        $needsetfrom = 0;
        syslog($SysLogPriority, "-f exist: $1");
    }
}

if ($needsetfrom) {
    syslog($SysLogPriority, "-f not exist. Set to <>");
    $arg="$arg" . " -f'<>'";
}

syslog($SysLogPriority, "$arg");

if (! open (MAIL,"|$mailprog $arg")) {
    syslog("err", "cannot open $mailprog: $!");
    closelog;
    die "cannot open $mailprog: $! \n";
}

closelog;

print MAIL "X-Abuse-MTA-Caller-Dir: running from $PWD\n";

while (<STDIN>) {
        print MAIL;
}

close (MAIL);

« Последнее редактирование: 23.09.2011 08:04:09 от asy »

Оффлайн aha

  • Участник
  • *
  • Сообщений: 52

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
http - поднят, но я пользуюсь только для управления по https:\\local: 8080
Я зашёл на сайт по тому имени хоста, который записан в Received. И это имя соответствует имени из лога. Так что там не только https на 8080, но и обычный http на 80. Формы, правда, не вижу сходу. Но я бы посмотрел логи Апача на тему, кто там куда лазиет, и netstat -apn | grep -v unix на тему открытых портов и кто слушает.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
userid 121 - это "_vebuilder"
интересно... но копать надо где-то тут. В общем, если махинацию со скриптом сделать, то в лог и в заголовок начнёт писаться каталог, откуда вызывается /usr/sbin/sendmail.

Оффлайн aha

  • Участник
  • *
  • Сообщений: 52
http - поднят, но я пользуюсь только для управления по https:\\local: 8080
Я зашёл на сайт по тому имени хоста, который записан в Received. И это имя соответствует имени из лога. Так что там не только https на 8080, но и обычный http на 80. Формы, правда, не вижу сходу. Но я бы посмотрел логи Апача на тему, кто там куда лазиет, и netstat -apn | grep -v unix на тему открытых портов и кто слушает.
Кстати, на входе у меня стоит роутер, и по 80 порту он пробрасывает на совершенно другую машину в нашей внутренней сети...но никак не на машину с почтой...

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
Кстати, на входе у меня стоит роутер, и по 80 порту он пробрасывает на совершенно другую машину в нашей внутренней сети...но никак не на машину с почтой...
Понятно. Тогда веб отпадает. Значит скрипт в первую очередь и смотреть, из какого каталога вызывается.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
В общем, более внимательной изучение почтового лога показало достаточно известную проблему. В принципе, это правильное, когда-то, поведение почтового сервера, только вот, в наше время, его уже надо избегать.

1. Постфикс принимает сообщение для пользователя домена и оно попадает в очередь.
2. Начинают работать всякие фильтры, может быть пользователя не сущестует и т.п. В какой-то момент принимается решение не доставлять сообщение.
3. Правильный почтовый сервер обязан сформировать боунс отправителю.

И вот она, проблема. Спаммер использует в mail from чужие E-Mail, сервер формирует по ним спам из боунсов.

Фактически, требуется перенастроить сервер так, чтобы все проверки проходили до попадания в очередь и Postfix, при необходимости, выдавал 5xx на этапе получения сообщения. В этом случае проблема боунса будет проблемой сервера отправителя. Другой путь - не формировать боунсы, но это совсем плохой путь.