Trying to use mailx for logwatch

Daniel J Walsh dwalsh at redhat.com
Mon Jan 6 16:14:51 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/03/2014 12:25 PM, Robert Moskowitz wrote:
> 
> On 01/03/2014 12:03 PM, Daniel J Walsh wrote:
>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>> 
>> On 01/03/2014 11:34 AM, Robert Moskowitz wrote:
>>> On 01/03/2014 11:21 AM, Daniel J Walsh wrote:
>>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>>>> 
>>>> On 01/02/2014 05:29 PM, Robert Moskowitz wrote:
>>>>> And the mail is failing.  Here is what I have done:
>>>>> 
>>>>> I determined that in:
>>>>> /usr/share/logwatch/default.conf/logwatch.conf mailer =
>>>>> "/usr/sbin/sendmail -t"
>>>>> 
>>>>> so in: /etc/logwatch/conf/logwatch.conf mailer = "/usr/bin/mailx
>>>>> -t"
>>>>> 
>>>>> In /etc/aliases I have:
>>>>> 
>>>>> # Person who should get root's mail root:        rgm
>>>>> 
>>>>> and I ran newaliases
>>>>> 
>>>>> 'journalctl |grep -i logwatch' shows the following (along with
>>>>> other lines):
>>>>> 
>>>>> Jan 02 03:32:01 lx120e.htt-consult.com run-parts[16112]: 
>>>>> (/etc/cron.daily) starting 0logwatch Jan 02 03:32:12 
>>>>> lx120e.htt-consult.com run-parts[16429]: (/etc/cron.daily)
>>>>> finished 0logwatch Jan 02 03:32:16 lx120e.htt-consult.com
>>>>> setroubleshoot[16427]: dbus avc(node=lx120e.htt-consult.com
>>>>> type=AVC msg=audit(1388651532.024:734): avc: denied  { write } for
>>>>> pid=16425 comm="mailx" name="root" dev="dm-0" ino=1308161 
>>>>> scontext=system_u:system_r:logwatch_mail_t:s0-s0:c0.c1023 
>>>>> tcontext=system_u:object_r:admin_home_t:s0 tclass=dir 
>>>>> node=lx120e.htt-consult.com type=SYSCALL 
>>>>> msg=audit(1388651532.024:734): arch=40000003 syscall=5 success=no 
>>>>> exit=-13 a0=9b15128 a1=8441 a2=1b6 a3=809134c items=0 ppid=1
>>>>> pid=16425 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0
>>>>> fsgid=0 ses=15 tty=(none) comm="mailx" exe="/usr/bin/mailx" 
>>>>> subj=system_u:system_r:logwatch_mail_t:s0-s0:c0.c1023 key=(null)
>>>>> Jan 02 03:32:16 lx120e.htt-consult.com setroubleshoot[16427]: 
>>>>> AuditRecordReceiver.add_record_to_cache():
>>>>> node=lx120e.htt-consult.com type=AVC msg=audit(1388651532.24:734):
>>>>> avc:  denied  { write } for pid=16425 comm="mailx" name="root"
>>>>> dev="dm-0" ino=1308161 
>>>>> scontext=system_u:system_r:logwatch_mail_t:s0-s0:c0.c1023 
>>>>> tcontext=system_u:object_r:admin_home_t:s0 tclass=dir Jan 02
>>>>> 03:32:16 lx120e.htt-consult.com setroubleshoot[16427]: 
>>>>> AuditRecordReceiver.add_record_to_cache():
>>>>> node=lx120e.htt-consult.com type=SYSCALL
>>>>> msg=audit(1388651532.24:734): arch=40000003 syscall=5 success=no
>>>>> exit=-13 a0=9b15128 a1=8441 a2=1b6 a3=809134c items=0 ppid=1
>>>>> pid=16425 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 
>>>>> fsgid=0 ses=15 tty=(none) comm="mailx" exe="/usr/bin/mailx" 
>>>>> subj=system_u:system_r:logwatch_mail_t:s0-s0:c0.c1023 key=(null)
>>>>> Jan 02 03:32:16 lx120e.htt-consult.com setroubleshoot[16427]: 
>>>>> analyze_avc() 
>>>>> avc=scontext=system_u:system_r:logwatch_mail_t:s0-s0:c0.c1023 
>>>>> tcontext=system_u:object_r:admin_home_t:s0 access=['write']
>>>>> tclass=dir tpath=/root
>>>>> 
>>>>> oh, here are the mail files:
>>>>> 
>>>>> # ls -ls /var/spool/mail/ total 8 0 -rw-rw----. 1 rgm  mail    0
>>>>> Jan 2 16:47 rgm 8 -rw-------. 1 root mail 5886 Dec 31 12:27 root 0 
>>>>> -rw-rw----. 1 rpc  mail    0 Dec 25 13:27 rpc
>>>>> 
>>>>> The content in root mail is from when I had postfix installed.  I
>>>>> have since deleted it to work on getting mailx to work instead.
>>>>> 
>>>>> =================================
>>>>> 
>>>>> 
>>>>> perhaps /var/spool/mail/root needs 660 permissions?
>>>>> 
>>>>> 
>>>> Do you know what mailx is trying to write into the /root directory?
>>> The output of logwatch.  I edited /etc/logwatch/conf/logwatch.conf
>>> 
>>> with the line:
>>> 
>>> mailer = "/usr/bin/mailx -t"
>>> 
>>> To override /usr/share/logwatch/default.conf/logwatch.conf
>>> 
>>> mailer = "/usr/sbin/sendmail -t"
>>> 
>>> 
>> Ok I just added a patch to git to allow logwatch_mail_t to write to the
>> /root directory certain files.
>> 
>> sesearch -T -s logwatch_mail_t | grep mail_home_rw_t type_transition
>> logwatch_mail_t admin_home_t : dir mail_home_rw_t ".maildir"; 
>> type_transition logwatch_mail_t user_home_dir_t : dir mail_home_rw_t
>> ".maildir"; type_transition logwatch_mail_t admin_home_t : file
>> mail_home_rw_t ".esmtp_queue"; type_transition logwatch_mail_t
>> admin_home_t : dir mail_home_rw_t "Maildir"; type_transition
>> logwatch_mail_t user_home_dir_t : file mail_home_rw_t ".esmtp_queue"; 
>> type_transition logwatch_mail_t user_home_dir_t : dir mail_home_rw_t
>> "Maildir";
>> 
>> You could do something similar by adding:
>> 
>> policy_module(mylogwatch, 1.0) gen_require(` type logwatch_mail_t; ')
>> 
>> mta_filetrans_admin_home_content(logwatch_mail_t)
> 
> Dan, you are way beyond me here.  I need pretty clear cookbooks. Changing a
> line in a .conf is one thing, what are you telling me to do here?  Just cut
> and paste from policy... to mta... into a rooted terminal session?
> 
> 


Create a file mylogwatch.te with the following content.

policy_module(mylogwatch, 1.0)
gen_require(`
    type logwatch_mail_t;
')

mta_filetrans_admin_home_content(logwatch_mail_t)

Now execute this command to compile the policy and load it into the kernel

# make -f /usr/share/selinux/devel/Makefile
# semodule -i mylogwatch.pp

Now you should be allowed to run logwatch_mail_t in enforcing mode.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlLK1nsACgkQrlYvE4MpobOQEQCgzKgpSJF/tTwogaAgDYW9BG06
wKsAn31U8IbgmKzjwD61X9tvUr48ZXne
=0RZW
-----END PGP SIGNATURE-----


More information about the users mailing list