>Ну например я спамер и знаю что есть ящик user@myserver.ru
>я могу указать при в настройках своей почтовой программы smtp - smtp.myserver.ru
>и послать письмо, и оно дойдет. хотя на ящик user@otherserver.ru ак
>полсать уже нельзя
Это разрешает любой почтовик - прямая доставка почты локальному клиенту непосредственно через почтовый сервер получателя.
Если хочешь это запретить - в sendmail.mc добавь и пересобери sendmail:
LOCAL_CONFIG
LOCAL_RULESETS
HReceived: $>+CheckReceived
Запоминаем текущее состояние подзаголовков "Received:". Если рассылка произведена непосредственно через ваш почтовик, то на вход набору правил CheckReceived не будет подано ничего, нижеследующее правило не сработает, и переменная {ReceivedCheck} окажется пустой.
SCheckReceived
R$* $: $(storage {ReceivedCheck} $@ OK $) $1
Scheck_eoh
# Проверяем $&{ReceivedCheck}:
R$* $: < $&{ReceivedCheck} >
R$* $: $(syslog $&{ReceivedCheck} $1 $) $1
# Очищаем эту переменную для следующего сообщения:
R$* $: $(storage {ReceivedCheck} $) $1
#Если переменная не пустая, то пропускаем письмо:
R< $+ > $@ OK
#Разрешаем также почту из нашей локальной сети:
R$* $: < $&{client_addr} >
R< $* $=R $* > $@ OK
#Чтобы предыдущее правило сработало, нужно релей разрешать через файл /etc/mail/relay-domains
## Разрешаем почту с локального адреса - root@localhost (имеет место при отсутствии файла submit.cf):
#R$* $: <$&_>
#R $@ OK
# Разрешаем почту, прошедшую smtp-авторизацию:
R$* $: < $&{auth_authen} >
R< $+ > $@ OK
# Во всех остальных случаях блокируем письмо:
R$* $#error $: "553 You are not a local user and you cannot send a letter to my server directly."
>ще вопрос: Каким образом в спамерские рассылки попадают ящики со сложными названиями и негде не засвеченные?(тоесть ими почти не пользовались)
Среди спамеров телепатов нет, значит, все-таки засвеченные либо высчитанные спамером путем перебора.
Ты же, наверное, видишь в логах кучу сообщений "User unknown"