Dovecot + Webmin + SELinux 環境での pop3のフェイル

Linux,Mail

事象

SELinuxが有効時(Enforcing)に、Webminで作成したユーザーのpopログインが失敗する。

Dovecotのログ(maillog)

Dec 31 16:17:45 sv12 dovecot: pop3(testuser01): Error: file_dotlock_create(/home/testuser01/Maildir/dovecot-uidlist) failed: Permission denied (euid=1002(testuser01) egid=1002(testuser01) missing +w perm: /home/testuser01/Maildir, UNIX perms appear ok (ACL/MAC wrong?))

audit.log

type=AVC msg=audit(1546240713.290:3762): avc:  denied  { read } for  pid=30208 comm="pop3" name="Maildir" dev="dm-2" ino=126 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:unlabeled_t:s0 tclass=dir permissive=1
type=SYSCALL msg=audit(1546240713.290:3762): arch=c000003e syscall=257 success=yes exit=16 a0=ffffffffffffff9c a1=555e143b4488 a2=90800 a3=0 items=0 ppid=1799 pid=30208 auid=4294967295 uid=1002 gid=1002 euid=1002 suid=1002 fsuid=1002 egid=1002 sgid=1002 fsgid=1002 tty=(none) ses=4294967295 comm="pop3" exe="/usr/libexec/dovecot/pop3" subj=system_u:system_r:dovecot_t:s0 key=(null)
type=PROCTITLE msg=audit(1546240713.290:3762): proctitle="dovecot/pop3"

前提条件

  • SELinuxが有効(Enforcing)
  • メールスプールはMaildir形式(/home/UserName/Maildirに保存する)
  • Webminでユーザー作成時に /home/UserName/Maildir/{new,cur,tmp}を作成する
    (「ホームディレクトリを作成しますか?」はい、「ホームディレクトリにファイルをコピーしますか?」はい)
  • SKELを使用してユーザー作成時に/home/UserName/Maildir/{new,cur,tmp}を自動作成する

原因

webminでユーザーを作成時に作成されるMaildirディレクトリのコンテキスト(ファイルタイプ)がDovecotに参照権限がないタイプ “unlabeled_t" が指定されている。以下にuseraddコマンドで作成した場合と比較して示す。

Webminでユーザー作成

$ sudo ls -laZ /home/testuser01/Maildir
drwx------. testuser01 testuser01 unconfined_u:object_r:unlabeled_t:s0 .
drwxr-xr-x. testuser01 testuser01 unconfined_u:object_r:user_home_dir_t:s0 ..
drwx------. testuser01 testuser01 unconfined_u:object_r:unlabeled_t:s0 cur
drwx------. testuser01 testuser01 unconfined_u:object_r:unlabeled_t:s0 new
drwx------. testuser01 testuser01 unconfined_u:object_r:unlabeled_t:s0 tmp

useraddでユーザー作成

$ sudo ls -laZ /home/testuser02/Maildir
drwx------. testuser02 testuser02 unconfined_u:object_r:mail_home_rw_t:s0 .
drwxr-xr-x. testuser02 testuser02 unconfined_u:object_r:user_home_dir_t:s0 ..
drwx------. testuser02 testuser02 unconfined_u:object_r:mail_home_rw_t:s0 cur
drwx------. testuser02 testuser02 unconfined_u:object_r:mail_home_rw_t:s0 new
drwx------. testuser02 testuser02 unconfined_u:object_r:mail_home_rw_t:s0 tmp

解決方法

Maildirディレクトリのコンテキスト(ファイルタイプ)を “mail_home_rw_t" に変更する

$ sudo chcon -t mail_home_rw_t /home/testuser01/Maildir/ -R
$ sudo ls -laZ /home/testuser01/Maildir
drwx------. testuser01 testuser01 unconfined_u:object_r:mail_home_rw_t:s0 .
drwxr-xr-x. testuser01 testuser01 unconfined_u:object_r:user_home_dir_t:s0 ..
drwx------. testuser01 testuser01 unconfined_u:object_r:mail_home_rw_t:s0 cur
drwx------. testuser01 testuser01 unconfined_u:object_r:mail_home_rw_t:s0 new
drwx------. testuser01 testuser01 unconfined_u:object_r:mail_home_rw_t:s0 tmp

これで Dovecotから正常にpopログインが可能となる。

恒久対策

Webminで ユーザーを作成時に作成されるhomeディレクトリのコンテキスト(ファイルタイプ)の初期値を変更する

1.  [User and Group] の左上の歯車をクリック


2.  [SElinux Context for new home directories] を変更


変更前 ●[user_u:object_r:user_home_dir_t]
 ↓
変更後 ●System default

これでWebminでユーザー作成時に作成したhomeディレクトリのファイルタイプはuseraddで作成した場合と同じとなる。( “mail_home_rw_t" )

2019年6月30日Linux,Maildovecot,Permission denied,SELinux,webmin

Posted by senchan