LINUX.ORG.RU

Zimbra sendmail

 , , ,


0

1

Всем привет. Имею сервер на centos6 и zimbra. Есть проблемка с отправкой уведомлений из fail2ban. Сама команда sendmail работает исправно из под рута и отправляет письма, но когда та же команда исполняется из fail2ban получаю в логах вот такою ошибку: «error while loading shared libraries: libcrypto.so.1.0.0: cannot enable executable stack as shared object requires: Permission denied» Подскажите как решить.

Посмотрите на этот момент времени в audit.log есть строчка про ″denied { execstack }″? Если есть, значит мешает selinux. Можете его отключить (на ваш страх и риск), можете поискать как добавить модуль политики (audit2allow, semodule_package, semodule). https://bugzilla.redhat.com/show_bug.cgi?id=1529830

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

В audit ничего подобного нету. libcrypto.so.1.0.0 используется sendmail’ом из под zimbra в lib сомой zimbra (и root тоже отправляет), а не в usr lib. Может в этом проблема. Пытался запустить sendmail с правами zimbra, но в логах не понимает команды su или sudo, хотя в консоли все команды /bin/sh «команда» улетают на ура. Другие скрипты присылают мэйлы с того же sendmail без проблем. Уже не знаю что еще попробовать

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

В audit ничего подобного нету.

Странно. Эта ошибка должны быть связана с «патчами» безопасности (SeLinux, grsec). Файл /var/log/audit/audit.log вобще «живой», в нём есть актуальные по времени записи?

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

А нет. Проверил еще раз, все таки есть: «type=AVC msg=audit(1603438887.839:296180): avc: denied { execstack } for pid=17265 comm=«sendmail» scontext=unconfined_u:system_r:fail2ban_t:s0 tcontext=unconfined_u:system_r:fail2ban_t:s0 tclass=process»

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

Удалил selinux модуль fail2ban, все заработало. Теперь осталось понять как распаковать файл fail2ban.pp, добавить туда разрешение для sendmail и заинсталить назад. С этим не поможете ?

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

Никогда не занимался «разборкой» .pp файлов. Всегда просто добавлял ещё правил ″.te -> .mod -> .pp″. ИМХО, правильнее не трогать системные файлы, а «накладывать» свои сверху. Запускаем audit2allow, убираем лишнее, ..., загружаем модуль политики. Примеров в гугле много.

В принципе, исходники политки должны быть в исходниках fail2ban.srpm. Хотя в пакете checkpolicy была команда dismod или sedismod, которая читает .pp файлы. Но не знаю, насколько её вывод потом получится собрать в .pp-файл.

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

Дэфолтный pp заинсталил с папки из библиотеки. Попытался написать свой модуль, получается какая-то хрень. Ловлю логи, пишу правила для нового модуля с audit2allow, и в один момент получаю изначальную ошибку в логах. Вот после этого (последнее file create):

module fail2ban_sendmail 1.0;

require { type usr_t; type fail2ban_t; class process { execstack execmem getpgid setrlimit }; class file write; class file create; class dir { write add_name remove_name }; }

#============= fail2ban_t ============== allow fail2ban_t:process { execstack execmem getpgid setrlimit };

#============= usr_t ============== allow fail2ban_t usr_t:dir { write add_name remove_name }; allow fail2ban_t usr_t:file write;

Чего то пока не понимаю. Модуль удалил (дэфолтный, теперь знаю как восстановить), пока все работает, а то 4 часа ковырял и без результата

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

Тут:

allow fail2ban_t:process { execstack execmem getpgid setrlimit };

вроде как ″ self″ перед двоеточием пропущено. Но можно и забить на selinux для fail2ban.

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

Думаю забью пока. audit2allow сам подставляет «self» и в целом правит код. Спасибо за помощь

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