Dovecot + Webmin + SELinux 環境での pop3のフェイル
事象
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" )
関連記事
SELinux使用時にWordPressでFTP、メール送信する方法
WordPressからFTPサーバーへ接続できない 管理しているブログの記事が増 ...
ディスカッション
コメント一覧
まだ、コメントがありません