Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.
helo www
250 mail.local.lan
auth login
334 VXNlcm5hbWU6
bmljaw==
334 UGFzc3dvcmQ6
cmp5bHuag==
235 2.7.0 Authentication successful
mail from:<>
250 2.1.0 Ok
rcpt to:<nick@mail.local.lan>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
hi
.
250 2.0.0 Ok: queued as 9A211C3C44
helo www
250 mail.local.lan
mail from:<>
250 2.1.0 Ok
rcpt to:<nick@mail.local.lan>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
hi
.
250 2.0.0 Ok: queued as 04306C3C44
Как видно из примера, если я хочу пройти аутентификацию, то прохожу её, а если - нет, то свободно отправляю письмо от имени любого пользователя. Тогда какой смысл от этого Plain Login? Можно ли сделать так, что бы принудительно требовался от пользователя ввод пароля? Либо сразу после команды ehlo, либо до команды data.
а вам именно это нужно? чтобы из внешнего мира вам никто не мог написать?
Почему всё так серьёзно? Помню как то телнетом решил отправить себе же сообщение с mail.ru. Так вот пока не ввёл в base64 логин и пароль даже не смог вводить команды mail from и т.д. Разве это плохо?
paltusssss
обычно в задачи smtp-сервера входит приём почты для обслуживаемых им доменов.
огромное количество спама породило немалое количество препон, чинимых сервером подключившемуся к нему smtp-клиенту.
но требование аутентификации при приёме писем для «своих» доменов — это весьма редкий и специфичный способ использования smtp-сервера.
вот я и уточнил на всякий случай — вдруг вам нужно именно такое специфичное поведение.
Помню как то телнетом решил отправить себе же сообщение с mail.ru.
т.е., вы захотели использовать smtp-сервер mail.ru в качестве релея для отправки письма на какой-то другой домен?
было бы весьма удивительно, если бы mxs.mail.ru его принял.
paltusssss
попробуй в Dovecot добавить срочку:
disable_plaintext_auth = yes
в Postfix main.cf:
smtpd_sasl_security_options = noanonymous
В main.cf нету дирректив связанных с smtpd_*restrictions (smtpd_sender_restrictions)?
Надо добавить:
smtpd_sender_restrictions = permit_sasl_authenticated
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject
Так же какой тип стоит в mynetworks_style?
А вообще если твой сервер работает и на внешку, то при попытке отправки письма с удаленного сервера оно будет отклонено сервером Dovecot-ом, по причине отсутствия аутентификации. В случае если аутентификационные данные были введены верно - письмо отправится. По логам /var/log/mail увидишь сообщение Send = (OK ...)
В случае попытки обхода аутентификации будет сообщение SASL AUTH ERROR.
В случае попытки использовать твой сервер как ретранслятор на другие почтовики, не указанные в мапах, будешь видеть сообщение Relay Access Denied для таких писем.
Спасибо Вам за помощь! Заработало так, как хотелось. В mynetworks_style поставил тип subnet. Это не критично? До кучи решил прикрутить ещё cram-md5 для сравнения. Тоже заработало, но не смог разобраться как проверить его работу. Нашёл описание:
После того, как клиент отсылает команду AUTH CRAM-MD5, сервер шлет в ответ код 334, а вместе с кодом через пробел шлет секретный ключ, закодированный в base64. Клиент берет ключ, раскодирывает и с помощью него вычисляет хэш для пароля по методу HMAC-MD5. После этого клиент создает строку для ответа. Записывает логин, через пробел получившийся хэш, после чего кодирует в base64 и отправляет серверу. Сервер в случае успеха должен ответить кодом 235.
Полученный код я раскодировал, а вот с помощью чего вычисляется хэш - не понятно.