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

Исходное сообщение
"Exim4: запретить отправку выбранным локальным пользователям"

Отправлено rx10nth , 05-Янв-16 18:48 
Доброго времени.
Есть необходимость запретить некоторым локальным пользователям отправку сообщений, т.е. только тем, кто дёргает бинарник /usr/sbin/exim4 (из php или как-то иначе, не важно), есть ли какие-то варианты организовать это на уровне ОС, или только непосредственно в самом exim?
Если только второй вариант, то подскажите пожалуйста, как так сделать, чтобы в определенном файлике могли лежать локальные юзеры по одному на строчку, а exim им запрещал бы отправку.

Содержание

Сообщения в этом обсуждении
"Exim4: запретить отправку выбранным локальным пользователям"
Отправлено reader , 05-Янв-16 19:35 
> Доброго времени.
> Есть необходимость запретить некоторым локальным пользователям отправку сообщений, т.е.
> только тем, кто дёргает бинарник /usr/sbin/exim4 (из php или как-то иначе,
> не важно), есть ли какие-то варианты организовать это на уровне ОС,
> или только непосредственно в самом exim?

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

> Если только второй вариант, то подскажите пожалуйста, как так сделать, чтобы в
> определенном файлике могли лежать локальные юзеры по одному на строчку, а
> exim им запрещал бы отправку.

через condition определяется к кому применять правила acl, роутеры.
пару вариантов как залезть в файл можно подсмотреть
http://www.opennet.me/openforum/vsluhforumID1/90343.html

а в документации наверно есть и более оптимальный вариант для Вас


"Exim4: запретить отправку выбранным локальным пользователям"
Отправлено BV , 06-Янв-16 15:35 
1 >кто дёргает бинарник /usr/sbin/exim4
  Никто бинарник не дергает , почитайте про Exim и вообще про SMTP

2  /tmp/users
   a@xxx.com
   c@yyy.com

в exim.conf в секции acl_smtp_rcpt
drop  condition = ${lookup{$sender_address}lsearch*@{/tmp/users}{yes}{no}}
      message = Deny send mail for $sender_address

  

> Доброго времени.
> Есть необходимость запретить некоторым локальным пользователям отправку сообщений, т.е.
> только тем, кто дёргает бинарник /usr/sbin/exim4 (из php или как-то иначе,
> не важно), есть ли какие-то варианты организовать это на уровне ОС,
> или только непосредственно в самом exim?
> Если только второй вариант, то подскажите пожалуйста, как так сделать, чтобы в
> определенном файлике могли лежать локальные юзеры по одному на строчку, а
> exim им запрещал бы отправку.


"Exim4: запретить отправку выбранным локальным пользователям"
Отправлено rx10nth , 09-Янв-16 17:35 
Дело в том, что на сервере почтовых ящиков как таковых вообще нет, локальные пользователи могут отправлять сообщения только через обращение к бинарнику exim4, например из php, если в php.ini задано

sendmail_path = "/usr/sbin/sendmail -t -i -f user@domain.com"

А /usr/sbin/sendmail это линк на /usr/sbin/exim4.

Вот меня и интересует тот факт, можно ли запретить отправку именно заданным локальным пользователям, а не по адресу отправителя, т.к. этот адрес может быть произвольным.


"Exim4: запретить отправку выбранным локальным пользователям"
Отправлено Golub Mikhail , 11-Янв-16 10:18 
> Дело в том, что на сервере почтовых ящиков как таковых вообще нет,
> локальные пользователи могут отправлять сообщения только через обращение к бинарнику exim4,
> например из php, если в php.ini задано
> sendmail_path = "/usr/sbin/sendmail -t -i -f user@domain.com"
> А /usr/sbin/sendmail это линк на /usr/sbin/exim4.
> Вот меня и интересует тот факт, можно ли запретить отправку именно заданным
> локальным пользователям, а не по адресу отправителя, т.к. этот адрес может
> быть произвольным.

acl_smtp_mail = check_smtp
acl_not_smtp = check_not_smtp

check_smtp:
discard condition = ${if match_local_part{$authenticated_id}{lsearch;/usr/local/etc/exim/acl/blocked_senders} }
...

check_not_smtp:
discard condition = ${if match_local_part{$authenticated_id}{lsearch;/usr/local/etc/exim/acl/blocked_senders}}
...

И "враг" не пройдет :)
По smtp добавить авторизацию.
В файле "blocked_senders" - логины локальных юзеров.