LINUX.ORG.RU
ФорумAdmin

sendmail+SASL авторизация с _определенных ип_


0

0

Доброго времени суток! Господа, может кто подскажет, стоит sendmail к нему прикручена авторизация через SASL (все это прекрасно). Но мне необходимо ограничить диапазон ип клиентов, которые могут отправлять через SMTP почту. Т.е. чтобы кроме проверки на логин/пароль была еще и проверка на хост. Может я что-то не улавливаю - но через access это не решить так как в нем устанавливается RELAY, а его мне тоже не нужно.

Есть идеи как это можно осуществить?

anonymous
Ответ на: комментарий от MiracleMan

спасибо, но по моему это не то, задачи не порешает

более подробно - есть почтовик (как я говорил sendmail+SASL), есть у него web интерфейс, вот через него пускай народ свою почту и отправляет. SMTP должен быть открыт на отправку только для определенной группы сетей и то при условии, что клиент сначала должен пройти авторизацию. Остальных, тех кто попытается авторизоваться и отправить почту, сервер должен аккуратно предупредить "Вам не разрешена отправка через SMTP"

Боюсь что стандартным путем через access лист такое не порешается

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

Ну так и в чём же дело? Просто reject-и остальных с отсылкой им сообщение какого сам пожелаешь... остальные релейным отправления только с локалхоста.... более изящно было бы написать собственный патч к sendmail.cf, но, к сожалению, боюсь, что не смогу найти для этого достаточно свободного времени.. :-(

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

на самом деле все это сработает при условии: если rcpt_check происходит после auth явно надо патчить sendmail.cf но как?

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

кхм... пришлось разбираться самому итак: может кому пригодится, правим sendmail.cf 1. добавляем строку F{LocalIP} /etc/mail/LocalIP 2. ищем SRcpt_ok, там правим правило R$* $| $={TrustAuthMech} $# RELAY на R$* $| $={TrustAuthMech} $:$>check_rcpt_bbn $1

3. после набора правил Rcpt_ok создаем еще 2 набора Scheck_rcpt_bbn R$+ $: $(dequote "" $&{client_addr} $) $| $1 R0 $| $* $# RELAY R$={LocalIP}$* $| $* $# RELAY R$* $| $* $: $>3 $2 R$+ $:$>removelocal $1 R$*<@$*>$* $#error $@ 5.7.1 $: 550 Sorry! Relay only bbn-network

Sremovelocal R$*<@$=w.>$* $: $>removelocal $>3 $1 $3 R$*<@$*>$* $@ $1<@$2>$3 R$- $: $>3 $(dequote $1 $) R$*<@$*>$* $: $>removelocal $1<@$2>$3

сохраняем sendmail.cf файл /etc/mail/LocalIP в формате: 134.245 127.0.0.1

за основу взято http://www.informatik.uni-kiel.de/~ca/email/check.html#check_rcpt

by flex

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

итак: может кому пригодится, правим sendmail.cf
1. добавляем строку F{LocalIP} /etc/mail/LocalIP
2. ищем SRcpt_ok, там правим правило
R$* $| $={TrustAuthMech} $# RELAY
на
R$* $| $={TrustAuthMech} $:$>check_rcpt_bbn $1

3. после набора правил Rcpt_ok создаем еще 2 набора
Scheck_rcpt_bbn
R$+ $: $(dequote "" $&{client_addr} $) $| $1
R0 $| $* $# RELAY
R$={LocalIP}$* $| $* $# RELAY
R$* $| $* $: $>3 $2
R$+ $:$>removelocal $1
R$*<@$*>$* $#error $@ 5.7.1 $: 550 Sorry! Relay only bbn-network

Sremovelocal
R$*<@$=w.>$* $: $>removelocal $>3 $1 $3
R$*<@$*>$* $@ $1<@$2>$3
R$- $: $>3 $(dequote $1 $)
R$*<@$*>$* $: $>removelocal $1<@$2>$3

сохраняем sendmail.cf
файл /etc/mail/LocalIP в формате:
134.245
127.0.0.1

за основу взято
http://www.informatik.uni-kiel.de/~ca/email/check.html#check_rcpt

by flex

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

я решал подобную задачу, у меня стояли следующие предпочтения:
1. авторизация обязательна
2. релей только с разрешенной сети
3. пользователи поделены на две категории, первые корпоративная почта
   доступ только на локальный домен и так же если письмо с наружи то
   user not found, вторым разрешена отправка и прием с как обычно,
   правила хранятся в LDAP.

решил так же через rules.
если интересно могу выложить сюда.

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