The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как сделать принудительную smtp-аутентификацию?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 11-Янв-06, 14:35  (MSK)
Slackware 10.2, адро 2.6.14. Насколько я понимаю, у меня работает smtp аутентификация при пересылке почты. А как сделать так, чтобы она работала и для локальных пользователей машины, ну т.е. чтобы почта в /var/spool/mail/username попадала только от smtp-аутентифицированных пользователей?

Пока у меня в /var/spool/mail принимается почта от любого пользователя из локальной сети. Нужно, чтобы это можно было делать только при вводе логина и пароля.

Заранее спасибо.

Вот - мои программы и настройки:
# sendmail -d0.1 -bv root | grep "SASL"
                NAMED_BIND NETINET NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF
# sendmail -d0.1 -bv root | grep "Ver"
Version 8.13.4

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 myhost.mydomain ESMTP Sendmail 8.13.4/8.13.4; Wed, 11 Jan 2006 14:28:54 +0300
ehlo localhost
250-myhost.mydomain Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP

========== sendmail-tls-sasl.mc =========

dnl# This is the a sendmail .mc file for Slackware with TLS support.
dnl# To generate the sendmail.cf file from this (perhaps after making
dnl# some changes), use the m4 files in /usr/share/sendmail/cf like this:
dnl#
dnl# cp sendmail-slackware-tls.mc /usr/share/sendmail/cf/config.mc
dnl# cd /usr/share/sendmail/cf
dnl# sh Build config.cf
dnl#
dnl# You may then install the resulting .cf file:
dnl# cp config.cf /etc/mail/sendmail.cf
dnl#
include(`../m4/cf.m4')
VERSIONID(`TLS supporting setup for Slackware Linux')dnl
OSTYPE(`linux')dnl
dnl#
dnl# You will need to create the certificates below with OpenSSL first:
define(`confCACERT_PATH', `/etc/mail/certs/')
define(`confCACERT', `/etc/mail/certs/CA.cert.pem')
define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem')
define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem')
dnl# These settings help protect against people verifying email addresses
dnl# at your site in order to send you email that you probably don't want:
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
dnl# Uncomment the line below to send outgoing mail through an external server:
dnl define(`SMART_HOST',`mailserver.example.com')
dnl# No timeout for ident:
define(`confTO_IDENT', `0')dnl
dnl# Enable the line below to use smrsh to restrict what sendmail can run:
dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
dnl# See the README in /usr/share/sendmail/cf for a ton of information on
dnl# how these options work:
FEATURE(`use_cw_file')dnl
FEATURE(`use_ct_file')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`redirect')dnl
dnl#
dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail:
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl#
dnl# Allow SASL authentication/relaying:
define(`confAUTH_OPTIONS', `A p y')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=E')dnl
dnl#
EXPOSED_USER(`root')dnl
dnl# Also accept mail for localhost.localdomain:
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от Александр Искать по авторуВ закладки(??) on 12-Янв-06, 08:20  (MSK)
smtp-аутентификация - это когда при соединении с сервером исходящей почты необходимо указывать имя и пароль пользователя.
если вам нужно имено это, закройте релей через свой сервер для всех компьютеров вашей локальной сети (для всех остальных - тем более), воленс-неволенс всем отправителям почты через ВАШ сервер придется использовать smtp-аутентификацию
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 13-Янв-06, 00:39  (MSK)
>если вам нужно имено это, закройте релей через свой сервер для всех
>компьютеров вашей локальной сети (для всех остальных - тем более)

А не разъясните поподробнее, как это нужно сделать?

Конф. файл я приводил в предыдущем сообщении. Там, наверное, нужно что-то удалить или добавить. Вот я, собственно, и прошу помощи, т.к. не способен разобраться с таким количеством настроек, их сочетаний и способов их включения, которое наблюдается в sendmail.

Я, конечно, прочитал кучу howto, но из них очень трудно сделать вывод о том, почему sendmail продолжает принимать почту без аутентификации ;(

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от Александр Искать по авторуВ закладки(??) on 13-Янв-06, 08:10  (MSK)
разрешение пересылки почты (или запрет:) через сервер устанавливается в файле access
192.168.0    RELAY
это разрешает пересылку почты через ваш сервер со всех машин сети 192.168.0.0/24
также в файле relay-domains можно указать индивидуальные ip-адреса, с которых разрешается пересылка почты
а для smtp-аутентификации необходимо еще перенастроить почтовый клиент - указать в настройках, что для сервера ИСХОДЯЩЕЙ почты требуется имя и пароль
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 13-Янв-06, 10:55  (MSK)
>разрешение пересылки почты (или запрет:) через сервер устанавливается в файле access
>192.168.0    RELAY
>это разрешает пересылку почты через ваш сервер со всех машин сети 192.168.0.0/24

А у меня этот файл - пустой. Нужно ли в него что-то дописать?

>
>также в файле relay-domains можно указать индивидуальные ip-адреса, с которых разрешается пересылка
>почты

А этого файла нет вообще. Нужно ли его создать? Как сказать sendmail-у, чтобы он потом прочитал из него данные?

>а для smtp-аутентификации необходимо еще перенастроить почтовый клиент - указать в настройках,
>что для сервера ИСХОДЯЩЕЙ почты требуется имя и пароль

Это все сделано. Аутентификация, TLS, SSL - все работает. Я только не могу сделать ее принудительной. Т.е. если я выключаю эту аутентификацию на клиенте, на сервере sendmail все равно продолжает принимать почту от этого клиента. Хочется, чтобы почта принималась _только_ после аутентификации - вот в чем проблема.

Должен пояснить. Этот сервер, по задумке, локальный, т.е. не для пересылки почты, а для обмена почтой внутри группы. Аутентификация нужна именно для приема почты, а не для пересылки. Хотя ф-цию пересылки, в дальнейшем, я планирую тоже включить, но сначала, мне нужно сделать так, чтобы аутентификация _требовалась_ во всех случаях, когда на этот сервер что-то пытаются передать.

Заранее спасибо за ответы.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от Александр emailИскать по авторуВ закладки(??) on 13-Янв-06, 12:12  (MSK)
запрет на пересылку (relaying) почты действует только при попытке отправить письмо ЧЕРЕЗ ВАШ СЕРВЕР куда-то дальше. Пустой файл access в вашем случае означает, что пересылка почты через ваш сервер запрещена для всех. Для собственных локальных пользователей почта принимается всегда (по крайней мере, я не знаю, как это можно запретить).
нужного вам варианта наверное можно достичь, если разнести серверы входящей и исходящей почты на разные компьютеры, но это несколько затратно:)
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 13-Янв-06, 13:10  (MSK)
>Для собственных
>локальных пользователей почта принимается всегда (по крайней мере, я не знаю,
>как это можно запретить).
>нужного вам варианта наверное можно достичь, если разнести серверы входящей и исходящей
>почты на разные компьютеры, но это несколько затратно:)

Да уж. Что-то мне подсказывает, что повальной аутентификации все же можно добиться. sendmail - такая гибкая система, и вот на тебе - нет элементарной возможности принимать почту только от аутентифицированных пользователей. Не верится что-то.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от Александр emailИскать по авторуВ закладки(??) on 13-Янв-06, 15:23  (MSK)
>Да уж. Что-то мне подсказывает, что повальной аутентификации все же можно добиться.
>sendmail - такая гибкая система, и вот на тебе - нет
>элементарной возможности принимать почту только от аутентифицированных пользователей. Не верится что-то.
>

сендмайл - очень старая разработка, в недалеком прошлом и релеинг в нем по умолчанию был открытым для всех, а уж в полном доверии к локальным пользователям и сомнений нет. может стоит рассмотреть альтернативные варианты - postfix например или exim

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от lavr emailИскать по авторуВ закладки on 13-Янв-06, 15:48  (MSK)
>>Да уж. Что-то мне подсказывает, что повальной аутентификации все же можно добиться.
>>sendmail - такая гибкая система, и вот на тебе - нет
>>элементарной возможности принимать почту только от аутентифицированных пользователей. Не верится что-то.
>>
>
>сендмайл - очень старая разработка, в недалеком прошлом и релеинг в нем
>по умолчанию был открытым для всех, а уж в полном доверии
>к локальным пользователям и сомнений нет. может стоит рассмотреть альтернативные варианты
>- postfix например или exim

поиск по форуму, ответы уже были с подробностями

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 13-Янв-06, 17:49  (MSK)
>поиск по форуму, ответы уже были с подробностями

Прошу помощи в поиске. Может быть вы вспомните, где это было?

В свое оправдание могу только написать, что:

На самом деле, я уж поискал еще до того как спрашивать. Самое близкое из того что я нашел было здесь: http://www.opennet.ru/base/net/sendmail_sasl2.txt.html
Но это все не то - там только про пересылку, а нужна _тотальная_ smtp - аутентификация. Там вон что было написано:

>Правильно,  пора  подправить  файл  /etc/mail/access.  Там
>наверняка стоит строчка типа:
>192.168.1    RELAY
>Где  192.168.1 - адрес сетки ваших пользователей, а RELAY означает что
>Почту с этой сетки можно отправлять через sendmail. Вот эту строчку-то
>и  надо убрать. Что у нас тогда получится ? А получится то, что никому
>отправлять   почту   наружу   нельзя,   ...   кроме  тех,  кто  прошел
>аутентификацию.

В комментариях к этой статье было еще:

>Да и еще учтите, что установив SMTP-аутентификацию вы не ограничите
>движение почты внутри вашего почтового домена, т.е. адресат >vasya@mydomain.ru спокойно и без авторизации отправит письмо на
>petya@mydomain.ru или kolya@subdomain.mydomainru, т.к. эти адреса будут
>являться конечными для sendmail-а обслуживающего ваш домен mydomain.ru

Т.е. такое решение не подходит.

Вот еще ссылки обсуждений, которые я смотрел, но ничего похожего не нашел ;(
http://www.opennet.ru/base/net/sendmail_sasl2.txt.html
http://www.opennet.ru/base/net/sasl_smtp_auth.txt.html

Вот эта статья тоже неплохая - простенько и со вкусом, но тоже не решает проблемы аутентификации для локальной почты
http://www.opennet.ru/base/net/sendmail_sasl.txt.html

В http://www.sendmail.org/~ca/email/auth.html тоже только для relay. Вчастности, в разделе "Require AUTH" можно прочитать "You can require the use of SMTP AUTH for relaying by simply turning off other means of relaying for incoming mail, e.g., the access map or class R."

Черт возьми, я отказываюсь в это верить. Неужели любая программа в локальной сети может беспрепятственно забивать почтовые ящики локальных пользователей и нет спасенья?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от Medlar Искать по авторуВ закладки on 17-Янв-06, 14:25  (MSK)
Можно дописать правила
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 17-Янв-06, 15:37  (MSK)
>Можно дописать правила

Это было бы здорово! А не подскажете, что посмотреть по написанию правил?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от Medlar Искать по авторуВ закладки on 17-Янв-06, 16:03  (MSK)
Уточню: нужно чтобы почта от локального клиента локальному тоже требовала auth?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 17-Янв-06, 16:36  (MSK)
>Уточню: нужно чтобы почта от локального клиента локальному тоже требовала auth?

Да.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от Medlar Искать по авторуВ закладки on 17-Янв-06, 16:51  (MSK)
Ну получай :) Предупреждаю: не проверялось.
Я буду в инете еще час, так что пробуй скорее.
Между левой и правой частью - TAB
Да, возможно этому есть более правильное решение, то есть без написания правил

LOCAL_CONFIG
Ksyslog syslog

LOCAL_RULESETS
SLocal_check_rcpt
# empty address?
R<>                     $#error $@ nouser $: "553 User address required"
R$@                     $#error $@ nouser $: "553 User address required"

#Добавляем адрес отпрвителя
R$*            $: $1 $| $&f

#Канонизируем адреса
R$* $| $*             $: $2 $| $>Parse0 $>3 $1
R$* $| $*             $: $2 $| $>Parse0 $>3 $1

#Ксли отправитель и получатель локальные, отправляем их на проверку в CheckLocalAuth
R$+<@$=w.>  $|  $+<@$=w.>              $: $>CheckLocalAuth

#Другие варианты fqdn-адресов пропускаем (внеш-внеш, внутр-внеш, внеш-внутр)
R$+<@$+>  $|  $+<@$+> $@ $1

#Алиасы, MAILER-DAEMON и др. лок. получатели без доменной части - в ту же проверку
R$+ $| $+                $: $>CheckLocalAuth

#Контрольная проверка - кто там не охвачен нашими правилами:  если сработает - покажешь, подправим
R$*                     $: $(syslog syslog:PROBLEM: $1 $) $1

SCheckLocalAuth
#Почту  с самого сервера пропускаем
R$*                   $: $&{client_addr}
R127.0.0.1                   $@OK

#Если авторизация имела место - пропускаем
R$*                     $: < $&{auth_authen} >
R< $+ >                 $@ OK

#Все остальное блокируем
R$*   $#error: $: 553 Sorry, you must use smtp-authentication. Please, contact to postmaster.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 17-Янв-06, 17:13  (MSK)
>Ну получай :) Предупреждаю: не проверялось.
>Я буду в инете еще час, так что пробуй скорее.

Не, я прям щас проверять не буду ;) Сначала посмотрю описания настроек, которые там используются, чтобы самому эти правила научиься писать, а то вон как ты шустро из этих закорючек нужные правила набил ;) Заодно и ошибки половлю, ежели они там имеются.

Спасибо.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

18. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от lavr emailИскать по авторуВ закладки on 17-Янв-06, 17:40  (MSK)
>>Ну получай :) Предупреждаю: не проверялось.
>>Я буду в инете еще час, так что пробуй скорее.
>
>Не, я прям щас проверять не буду ;) Сначала посмотрю описания настроек,
>которые там используются, чтобы самому эти правила научиься писать, а то
>вон как ты шустро из этих закорючек нужные правила набил ;)

ну несколько дней вам точно потребуется :)
так что зря упустили шанс который вам предлагали

>Заодно и ошибки половлю, ежели они там имеются.
>
>Спасибо.


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от А.Петров Искать по авторуВ закладки(??) on 13-Янв-06, 15:38  (MSK)
>>разрешение пересылки почты (или запрет:) через сервер устанавливается в файле access
>>192.168.0    RELAY
>>это разрешает пересылку почты через ваш сервер со всех машин сети 192.168.0.0/24
>
>А у меня этот файл - пустой. Нужно ли в него что-то
>дописать?
>
>>
>>также в файле relay-domains можно указать индивидуальные ip-адреса, с которых разрешается пересылка
>>почты
>
>А этого файла нет вообще. Нужно ли его создать? Как сказать sendmail-у,
>чтобы он потом прочитал из него данные?
>
>>а для smtp-аутентификации необходимо еще перенастроить почтовый клиент - указать в настройках,
>>что для сервера ИСХОДЯЩЕЙ почты требуется имя и пароль
>
>Это все сделано. Аутентификация, TLS, SSL - все работает. Я только не
>могу сделать ее принудительной. Т.е. если я выключаю эту аутентификацию на
>клиенте, на сервере sendmail все равно продолжает принимать почту от этого
>клиента. Хочется, чтобы почта принималась _только_ после аутентификации - вот в
>чем проблема.
>
>Должен пояснить. Этот сервер, по задумке, локальный, т.е. не для пересылки почты,
>а для обмена почтой внутри группы. Аутентификация нужна именно для приема
>почты, а не для пересылки. Хотя ф-цию пересылки, в дальнейшем, я
>планирую тоже включить, но сначала, мне нужно сделать так, чтобы аутентификация
>_требовалась_ во всех случаях, когда на этот сервер что-то пытаются передать.
>
>
>Заранее спасибо за ответы.

define(`confAUTH_OPTIONS', `A')

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Как сделать принудительную smtp-аутентификацию?" 
Сообщение от chainik Искать по авторуВ закладки(??) on 13-Янв-06, 16:56  (MSK)
define(`confAUTH_OPTIONS', `A')

а у меня так и есть - все равно пускает без аутентификации.


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]


  Закладки на сайте
  Проследить за страницей
Created 1996-2018 by Maxim Chirkov  
ДобавитьПоддержатьВебмастеруГИД  
Hosting by Ihor