LINUX.ORG.RU
ФорумAdmin

Настройка Sendmail


0

0

Здравствуйте! Подскажите, пожалуйста, каким образом можно настроить Sendmail, чтобы осуществлялась проверка на "реальность" почтового адреса на принимающей стороне, и если адреса нет, то тело письма уже не принималось.


Посмотри в гугле "отлуп sendmail" или вот тебе один из рецептов:

Отлуп несущ. пользователю зашит в самом файле sendmail, и sendmail.cf за это не отвечает. Для того, чтобы заставить sendmail.cf проверять поле "RCPT TO:" на наличие несущ. пользователей, нам придется отредактировать /etc/mail/access, прописав в нем существующих пользователей и последней строкой отказав всем остальным именам домена. Итак, для начала редактируем /etc/mail/access, прописав в нем всех своих локальных клиентов и запретив все остальные имена. Напоминаю: для того, чтобы sendmail обращался к этому файлу необходимо в sendmail.m4 включить строку FEATURE(access_db) А для того, чтобы можно было блокировать получение почты локальными клиентами, необходимо еще добавить FEATURE(blacklist_recipients).

#Разрешаем получение почты локальным пользователями user1, user2, etc на любом локальном почтовом домене (обращаю внимание на обязательность знака @ - он сигналит sendmail о том, что это имя локального пользователя (Please note: a local username must be now tagged with an @ (this is consistent with the check of the sender address, and hence it is possible to distinguish between hostnames and usernames) ):

To:user1@ [TAB] OK To:user2@ [TAB] OK .... #Запрещаем почту для всех остальных вариантов почтовых ящиков: To:your-domain.ru [TAB] ERROR:"550 User unknown" To:your-other-name-domain.ru [TAB] ERROR:"550 User unknown"

Schreibikus
()

> чтобы осуществлялась проверка на "реальность" почтового адреса
В описании локального mailer-а не убирать флаг "w" (смотреть "F=..." в Mlocal в sendmail.cf).

http://citforum.ru/operating_systems/sendmail/sendmail_05.shtml#54
w - Пользователь должен иметь действительный бюджет на этой машине, т.е., getpwnam должен быть успешным. Если это не так, почта не будет доставлена. Это требуется для работы ".forward".

Если вы ничего не трогали в sendmail.cf собственноручно, то там должна быть такая проверка ! И вообще, с чего вы взяли, что ваш sendmail принимает почту для несуществующих user-ов ?
Или вам нужна проверка вообще получателя, а не именно вашего ? Т.е. если будет делаться RELAY, то чтоб sendmail знал существует ли удаленный адрес еще до приема письма ?

2 Schreibikus:
> и sendmail.cf за это не отвечает
Все таки отвечает.

spirit ★★★★★
()
Ответ на: комментарий от spirit

<телепат он>
может быть он имеет в виду проверка наличия отправляющего
пользователя на той стороне? типа наш сервер пошел туда
сказал rcpt to: sender@domain.com и оттуда ответили 250 OK?
<телепат офф>

anonymous
()
Ответ на: комментарий от spirit

Мне нужно, чтобы проверка осуществлялась именно на моем почтовике, когда он получает письмо для моего домена. Чтобы он не засасывал его. Совсем. Иначе письмо попадает ассассину, и вследствие того, что фильтр не удаляет письмо, а складывает в отдельный ящик, я это письмо получаю.

jonny
() автор топика
Ответ на: комментарий от jonny

Если так, то sendmail со стандартной настройкой не должен принимать такие письма. Они будут отвергаться на этапе "RCPT TO:".

spirit ★★★★★
()
Ответ на: комментарий от spirit

2 Spirit: спасибо за замечание (Schreibikus процитировал информацию с моей страницы).

В стандартном sendmail.cf нет ни намека на сам отлуп "User unknown",
а в самом коде sendmail "User unknown" присутствует.
Мною упущено из виду, что обращение к /etc/passwd происходит через MDA
, а флаг w, который за это отвечает, выставляется именно в sendmail.cf
в строке Mlocal, P=/bin/mail, F=lsDFMmnPw, S=10, R=20, A=mail -d $u
Получается, sendmail.cf за это отвечает.

Но есть разница между этой проверкой и проверкой, добавленной самостоятельно
в Local_check_rcpt:
при стандартном sendmail.cf, когда наличие юзера проверяется через MDA, обязательно формируется отлуп
от имени MAILER-DAEMON принимающей стороны и отправляется отправителю.
Конечно, это не распростаняется на тот случай, когда локальный юзер отправляет письмо локальному юзеру.

Если же добавить свои правила в Local_check_rcpt, то отлуп произойдет на этапе
RCPT TO:, соединение будет завершено с минимальной работой на принимающей стороне,
ну а отлуп уже сформирует MAILER-DAEMON отправившей стороны и доставит своему юзеру.

Если я ошибаюсь, пожалуйста, поправьте меня.






Sciurus
()
Ответ на: комментарий от Sciurus

> при стандартном sendmail.cf, когда наличие юзера проверяется через MDA,
> обязательно формируется отлуп от имени MAILER-DAEMON принимающей стороны
> и отправляется отправителю.
Странно, никогда такого не видел. Даже сейчас проверил - sendmail сразу (на этапе "RCPT TO:") говорит "Нет такого" и все, письмо не принимает, не говоря уже о том, чтоб слать отправителю уведомление о том, что получателя не существует. Да, для теста брал стандартнейший конфиг без всяких добавлений в Local_check_*.

Да, флаг "w" - он для sendmail-а, а не для MDA, т.е. если sendmail определил, что дальнейшая доставка должна вестись таким-то mailer-ом, и в описании этого mailer-а стоит флаг "w", то существование получателя будет определяться самим sendmail-ом. И если он увидит, что такого пользователя несуществует, естественно он не будет принимать письмо, т.е. до приема письма и передачи его delivery agent-у даже не дойдет (ибо смысл ?).

spirit ★★★★★
()
Ответ на: комментарий от spirit

Спасибо за разъяснение с флагом w, c первым вопросом буду разбираться -
что-то "все смешалось в доме Облонских" :)

Sciurus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.