URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 42715
[ Назад ]

Исходное сообщение
"Как заставить sendmail работать на одном IP?"

Отправлено manowar , 09-Апр-04 11:08 
Может это и ламерский вопрос, но не могу найти ответ. Ситуация такая
На шлюзовой машине (FreeBSD 5.1) распложен DNS и почтовик (Sendmail 8.12.11)
Так вот хочется чтоб почтовик отправлял с внутреннего (реального) IP, а не с IP провайдера который, а иначе на некоторые хосты почта не уходит говорит "You gonna use your ISP mail relay to send mail". Если я конечно правильно понял, что ошибка в этом :)
Если нет то первый вопрос все равно остается для образования и второй от чего такая ошибка? :)

Содержание

Сообщения в этом обсуждении
"Как заставить sendmail работать на одном IP?"
Отправлено temny , 09-Апр-04 11:25 
>Может это и ламерский вопрос, но не могу найти ответ. Ситуация такая
>
>На шлюзовой машине (FreeBSD 5.1) распложен DNS и почтовик (Sendmail 8.12.11)
>Так вот хочется чтоб почтовик отправлял с внутреннего (реального) IP, а не
>с IP провайдера который, а иначе на некоторые хосты почта не
>уходит говорит "You gonna use your ISP mail relay to send
>mail". Если я конечно правильно понял, что ошибка в этом :)
>
>Если нет то первый вопрос все равно остается для образования и второй
>от чего такая ошибка? :)

У меня где-то таже проблема. Но решить её пока не удалось. Скорее всего буду переносить почтовик со шлюза.
Чтоб сделать то, о чём ты спрашиваешь, необходимо в mc добавить следующее:
DAEMON_OPTIONS(`Addr=a.b.c.d,M=b')
Далее
make cf
make stop
make install
make start

В результате sendmail слушает только на a.b.c.d и при отправке почты использует только тот ip, через который он получил почту(опция M=b).

Только далее возникает неприятный момент с loopback интерфейсом и почтой с localhosta. Мне это пока победить не удалось.


"Как заставить sendmail работать на одном IP?"
Отправлено manowar , 09-Апр-04 11:33 
>Только далее возникает неприятный момент с loopback интерфейсом и почтой с localhosta.
>Мне это пока победить не удалось.
Может тогда поставить чтоб он и на
127.0.0 слушал?

"Как заставить sendmail работать на одном IP?"
Отправлено temny , 09-Апр-04 11:47 
>>Только далее возникает неприятный момент с loopback интерфейсом и почтой с localhosta.
>>Мне это пока победить не удалось.
>Может тогда поставить чтоб он и на
>127.0.0 слушал?
В этом случае возникает другая проблема. На этот раз с опцией M=b. sendmail получив почту через 127.0.0.1, будет пытаться отправить её с этого же интерфейса. И, если получатель, к примеру, ежедневных отчётов, не локальный пользователь - ничего не выйдет.
Разбиралки с этим вопросом я пока отложил - другие вопросы появились, т.е. в ближайшее я врядли подскажу что-то новое.

Была мысль попробовать поковырять в сторону указания не ip, а hostname и прописывания в /etc/hosts чего-то хитрого. Но попробовать на практике пока не удалось.


"Как заставить sendmail работать на одном IP?"
Отправлено manowar , 13-Апр-04 09:44 
Может кто-нибудь знает как решить эту проблему?
Перенести почтовик на отдельную машину нету возможности :(


"Как заставить sendmail работать на одном IP?"
Отправлено lavr , 13-Апр-04 11:40 
>Может это и ламерский вопрос, но не могу найти ответ. Ситуация такая
>
>На шлюзовой машине (FreeBSD 5.1) распложен DNS и почтовик (Sendmail 8.12.11)
>Так вот хочется чтоб почтовик отправлял с внутреннего (реального) IP, а не
>с IP провайдера который, а иначе на некоторые хосты почта не
>уходит говорит "You gonna use your ISP mail relay to send
>mail". Если я конечно правильно понял, что ошибка в этом :)
>
>Если нет то первый вопрос все равно остается для образования и второй
>от чего такая ошибка? :)

такое бывает при отсутствии резолва или реверса, про DAEMON_OPTIONS
тебе уже отписали. Если не понимаешь или не знаешь, повесь на нужный тебе
IP, а с провайдером договорись что ты будешь использовать его mail-relay
как SMART_HOST для передачи, ну а принимать можешь на свой реальный
IP в том случае, если к нему ЕСТЬ ДОСТУП с ВНЕШНЕГО МИРА, если нет,
то первым MX'ом с минимальным весом у тебя должен быть провайдерский
mail-relay и опять же ты должен с ним об этом договориться - чтобы
он принимал твою почту и отдавал тебе(ну или ты забирал ее - игра слов).

Как только появится ПОЛНОЕ представление, проблемы твои МОМЕНТОМ будут
решены.


"Как заставить sendmail работать на одном IP?"
Отправлено manowar , 13-Апр-04 13:07 
Будет ли нормально функционировать sendmail если я соберу cf с DAEMON_OPTIONS на внутренний реальный видимый из мира и прописанный в днс IP или я столкнусь с проблемой про которую говорил temny? И нужно ли добавлять 127.0.0.1 также как и внутренний IP в cf?
Или только релэем через провайдера возможно избежать защиты от проверки на реверс зоны?

"Как заставить sendmail работать на одном IP?"
Отправлено Chris , 13-Апр-04 16:03 
Блин... поставь ты Ехim и не мучайся :-) Честно тебе скажу!

"Как заставить sendmail работать на одном IP?"
Отправлено temny , 13-Апр-04 16:11 
>Блин... поставь ты Ехim и не мучайся :-) Честно тебе скажу!
Было бы интересно узнать - а как в случае с exim решать эту проблему?

"Как заставить sendmail работать на одном IP?"
Отправлено temny , 13-Апр-04 16:05 
Вот, провёл небольшой опыт - результаты, отчасти, положительные 8)
Добавил следующие две строчки.
DAEMON_OPTIONS(`Addr=a.b.c.d,M=b')
DAEMON_OPTIONS(`Addr=127.0.0.1')
А теперь, что это нам даёт:
Первая - мы слушаем только на одном внешнем ip и вся почта, которую мы получаем на этот ip (имеется в виду почта от клиентов) уйдёт с негоже (M=b). Т.е. то, что мы хотели, хотим и, возможно, будем хотеть 8)
На приём почты извне данные опции никоим образом не влияют. Т.е. sendmail принимает почту на том ip, что прописан mx-ом (a.b.c.d).

Вторая сточка даст возможность отправлять почту, полученную от себя же через loopback и-фейс. Опция M=b отсутствует для того, чтоб почта, по надобности, уходила во внешний мир (т.е. не с fake ip 127.0.0.1 а с реальным).
Это и плюс и минус - т.е. почта с loopback _будет_ ходить - это плюс. Но ходить будет не от того ip, что хотелось бы (в моём случае это "служебный адрес" карточки радиоэзернета) - это минус.

Однако в моём случае это решает 95% всей проблемы.
Если у кого-то есть решения/дополнения по поводу loopback - было бы очень интересно выслушать.


"Как заставить sendmail работать на одном IP?"
Отправлено tin , 13-Апр-04 16:23 
Посмотри в сторону
ClientPortOptions

"Как заставить sendmail работать на одном IP?"
Отправлено temny , 13-Апр-04 17:26 
>Посмотри в сторону
>ClientPortOptions
Да - а вот слона-то я и не заметил 8)
Похоже, что проблема решилась. Предположительно на 100% 8) Хотя это только вскрытие покажет 8)
Делал следующее:

DAEMON_OPTIONS(`Addr=a.b.c.d')
...
DAEMON_OPTIONS(`Addr=127.0.0.1')
Т.е. перечисляем все адреса на которых хотим слушать. Наличте опции M=b теперь совсем не обязательно, а иногда это может даже оказаться лишним.

CLIENT_OPTIONS(`Family=inet,Addr=a.b.c.d')

Здесь мы явно указываем тот ip, который должен использовать sendmail при отправке почты, т.е. в тех случаях когда он выступает в роли клиента а не сервера.


ЗЫ Вопрос не в тему, а кто как думает sendmail это "он" или "она"? 8) Исходя из имени, так вроде "он", но столько внимания иногда требует что начинаю сомневаться 8)


"Как заставить sendmail работать на одном IP?"
Отправлено manowar , 14-Апр-04 06:44 
Всем огромное спасибо !!!

А sendmail помоему она :)