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

Исходное сообщение
"Postfix: Запрет на login_mismatch только одному пользователю"

Отправлено Иван К. , 31-Янв-13 22:12 
Добрый день, коллеги.
Подскажите, как лучше реализовать запрет на отправку от имени другого пользователя конкретному аккаунту?

Сейчас использую
check_sender_access hash:/etc/postfix/send_only_to_hr
send_only_to_hr = check_recipient_access hash:/etc/postfix/send_only_to_hr-maps, reject

--/etc/postfix/send_only_to_hr--
e@mail send_only_to_hr

--/etc/postfix/send_only_to_hr-maps--
hr@mail OK

т.е. с адреса e@mail можно отправить только на hr@mail, в остальных случаях reject.

Но, если не используется reject_authenticated_login_mismatch, то отправитель может подменить from: на, к примеру, director@mail и отправить письмо куда угодно.

login_mismatch нужно запретить только для конкретного логина. Подскажите, пожалуйста, решение


Содержание

Сообщения в этом обсуждении
"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено LSTemp , 03-Фев-13 04:09 
>[оверквотинг удален]
> --/etc/postfix/send_only_to_hr--
> e@mail send_only_to_hr
> --/etc/postfix/send_only_to_hr-maps--
> hr@mail OK
> т.е. с адреса e@mail можно отправить только на hr@mail, в остальных случаях
> reject.
> Но, если не используется reject_authenticated_login_mismatch, то отправитель может подменить
> from: на, к примеру, director@mail и отправить письмо куда угодно.
> login_mismatch нужно запретить только для конкретного логина. Подскажите, пожалуйста,
> решение

Вы только конверты писем проверяете. Их содержимое легко модифицируется при отправке.

Различите конверт, письмо и авторизацию почтового пользователя для себя сначало.



"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено Иван К. , 04-Фев-13 10:07 
> Вы только конверты писем проверяете. Их содержимое легко модифицируется при отправке.
> Различите конверт, письмо и авторизацию почтового пользователя для себя сначало.

Спасибо, но об этом я и пишу. Я знаю единственный способ сравнить авторизацию и отправителя "с конверта" - reject_sender_login_mismatch по sender_login_maps. Но штатный способ не предусматривает эту проверку только для одного пользователя.
На ум приходит только некое экзотическое регулярное выражение в prce:sender_login_maps, а-ля
user@mail user
/*любой адрес*/   %любой пользователь КРОМЕ user%
, но как это изобразить я не представляю.

Возможно есть другие средства, но мне они неизвестны.



"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено LSTemp , 05-Фев-13 05:51 
> Возможно есть другие средства, но мне они неизвестны.

давайте сначала:
- какая версия postfix
- как организуется авторизация пользователей


"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено Иван К. , 05-Фев-13 09:30 
> давайте сначала:
> - какая версия postfix
> - как организуется авторизация пользователей

- 2.3.3,
- пользователи представляют собой реальных пользователей ОС

Вывод postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
bounce_queue_lifetime = 1d
bounce_template_file = /etc/postfix/bounce.cf.2013
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
delay_warning_time = 1h
html_directory = no
inet_interfaces = all
local_recipient_maps = unix:passwd.byname $alias_maps
mail_owner = postfix
mailbox_command = /usr/bin/procmail
mailbox_size_limit = 2048000000
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
maximal_queue_lifetime = 1d
message_size_limit = 21233664
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, my-mail-domain.ru
mydomain = my-mail-domain.ru
myhostname = mail.my-mail-domain.ru
mynetworks = x.x.x.x/28, 127.0.0.0/8
mynetworks_style = subnet
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
recipient_bcc_maps = hash:/usr/local/etc/postfix/recipient_bcc
relay_domains = $mydestination
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sender_bcc_maps = hash:/usr/local/etc/postfix/sender_bcc
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP mail-domain
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access hash:/etc/postfix/abuse
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access hash:/etc/postfix/abuse, check_helo_access hash:/etc/postfix/wrong_helo_customers_servers, reject_invalid_hostname, reject_unknown_hostname, re
ject_non_fqdn_helo_hostname, reject_unknown_client
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/abuse, check_sender_access hash:/etc/postfix/sender,  permit_mynetworks, permit_sasl_authenticated,reject_unauth_destination,reject_unlisted_recipient, reject_unknown
_recipient_domain, check_helo_access hash:/etc/postfix/wrong_helo_customers_servers,  reject_unverified_recipient, reject_unknown_client, reject_unknown_hostname, reject_unknown_sender_domain, reject_unlisted_sender, check_sender_mx_acces
s cidr:/etc/postfix/wrong_mx
smtpd_restriction_classes = local_only,rmd_send,asia_mars_only
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/abuse, check_sender_access hash:/etc/postfix/sender, permit_mynetworks, permit_sasl_authenticated ,  check_helo_access hash:/etc/postfix/wrong_helo_customers_servers, ch
eck_sender_mx_access cidr:/etc/postfix/wrong_mx
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.my-mail-domain.ru.crt
smtpd_tls_key_file = /etc/pki/tls/private/mail.my-mail-domain.ru.key
smtpd_tls_loglevel = 1
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
smtpd_tls_session_cache_timeout = 3600s
soft_bounce = no
tls_random_source = dev:/dev/urandom
undisclosed_recipients_header = To:
unknown_address_reject_code = 550
unknown_client_reject_code = 550
unknown_hostname_reject_code = 550
unknown_local_recipient_reject_code = 550
unknown_relay_recipient_reject_code = 550
unknown_virtual_alias_reject_code = 550
unknown_virtual_mailbox_reject_code = 550
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550


"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено LSTemp , 05-Фев-13 06:14 
> Спасибо, но об этом я и пишу. Я знаю единственный способ сравнить
> авторизацию и отправителя "с конверта" - reject_sender_login_mismatch по sender_login_maps.
> Но штатный способ не предусматривает эту проверку только для одного пользователя.

- может все же по по smtp_sender_login_maps?
- то есть остальные пользователи могут подменять адрес отправителя как хотят? какой смысл это для одного пользователя делать?


"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено Иван К. , 05-Фев-13 09:33 
> - может все же по по smtp_sender_login_maps?
> - то есть остальные пользователи могут подменять адрес отправителя как хотят? какой
> смысл это для одного пользователя делать?

- если можно через sender_login_maps как-то указать запрет только одному пользователю (например, через regexp), то такой вариант подошел бы, но я не знаю как это сделать.
- остальные пользователи это лояльные компании сотрудники, которые отвечают на письма замещаемых коллег, участвуют в тестировании ПО через этот сервер и пр. Запрет необходимо вводить для недобросовестных сотрудников, подлежащих увольнению (формально нельзя полностью закрыть доступ на прием\отправку до полного увольнения, т.к. это прописано в договоре)


"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено LSTemp , 07-Фев-13 04:50 
>> - может все же по по smtp_sender_login_maps?
>> - то есть остальные пользователи могут подменять адрес отправителя как хотят? какой
>> смысл это для одного пользователя делать?
> - если можно через sender_login_maps как-то указать запрет только одному пользователю (например,
> через regexp), то такой вариант подошел бы, но я не знаю
> как это сделать.

что за sender_login_maps?

> - остальные пользователи это лояльные компании сотрудники, которые отвечают на письма замещаемых
> коллег, участвуют в тестировании ПО через этот сервер и пр. Запрет
> необходимо вводить для недобросовестных сотрудников, подлежащих увольнению (формально
> нельзя полностью закрыть доступ на прием\отправку до полного увольнения, т.к. это
> прописано в договоре)

"лояльные сотрудники" значит адрес отправителя могут подменять?

котлеты от мух начните уже отделять. две задачи:
1) защита от подмены адреса отправителя
2) запрет пересылки между конкретными почтовыми адресами.


"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено Иван К. , 07-Фев-13 09:18 

> что за sender_login_maps?
> "лояльные сотрудники" значит адрес отправителя могут подменять?
> котлеты от мух начните уже отделять. две задачи:
> 1) защита от подмены адреса отправителя
> 2) запрет пересылки между конкретными почтовыми адресами.

Я прошу игнорировать вас эту ветку, т.к. боюсь, что у вас трудности с восприятием печатного текста и знаниями postfix.


"Postfix: Запрет на login_mismatch только одному пользователю"
Отправлено LSTemp , 08-Фев-13 02:44 
>> что за sender_login_maps?
>> "лояльные сотрудники" значит адрес отправителя могут подменять?
>> котлеты от мух начните уже отделять. две задачи:
>> 1) защита от подмены адреса отправителя
>> 2) запрет пересылки между конкретными почтовыми адресами.
> Я прошу игнорировать вас эту ветку, т.к. боюсь, что у вас трудности
> с восприятием печатного текста и знаниями postfix.

Как угодно. Однако я настоятельно рекомендую Вам еще раз перечитать все, что я написал. Несколько раз. До просветления.