最近、新しいSSL証明書をインストールし、秘密鍵を読みにくくしてセキュリティを強化することにしました。
これにより exim に問題が発生します。
今、証明書は640で、ユーザーroot
とグループはssl
。このユーザーはDebian-exim
このグループに属しています。
シェルから秘密鍵ファイルにアクセスできます。
#sudo -u Debian-exim cat key
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
ただし、eximログファイルには次のように表示されます。
2012-04-21 00:00:00 <Message-id> unable to open private key file for reading: /.../key
2012-04-21 00:00:00 <Message-id> == some@email <some@email> R=dnslookup T=remote_smtp defer (-1): smtp transport process returned non-zero status 0x0100: exit code 1
2012-04-21 00:00:00 <Message-id> Frozen
使用審査ファイルシステムへのアクセスを確認しました。
time->Sat Apr 21 00:00:00 2012
type=PATH msg=audit(1335027881.290:6): item=0 name="/.../key" inode=1794200 dev=09:01 mode=0100640 ouid=0 ogid=105 rdev=00:00
type=CWD msg=audit(1335027881.290:6): cwd="/var/spool/exim4"
type=SYSCALL msg=audit(1335027881.290:6): arch=c000003e syscall=2 success=no exit=-13 a0=16184f8 a1=0 a2=0 a3=0 items=1 ppid=11831 pid=11847 auid=4294967295 uid=100 gid=102 euid=100 suid=100 fsuid=100 egid=102 sgid=102 fsgid=102 tty=pts1 ses=4294967295 comm="exim4" exe="/usr/sbin/exim4" key="sslkey"
これは失敗したことを示しています(理由はわかりませんが)。比較すると、できるだけ同じ成功した呼び出し(ファイルグループがDebian-exim
代わりに変更されましたssl
)
time->Sat Apr 21 00:00:00 2012
type=PATH msg=audit(1335028586.882:34): item=0 name="/.../key" inode=1794200 dev=09:01 mode=0100640 ouid=0 ogid=102 rdev=00:00
type=CWD msg=audit(1335028586.882:34): cwd="/var/spool/exim4"
type=SYSCALL msg=audit(1335028586.882:34): arch=c000003e syscall=2 success=yes exit=11 a0=24f74f8 a1=0 a2=0 a3=0 items=1 ppid=13958 pid=13961 auid=4294967295 uid=100 gid=102 euid=100 suid=100 fsuid=100 egid=102 sgid=102 fsgid=102 tty=(none) ses=4294967295 comm="exim4" exe="/usr/sbin/exim4" key="sslkey"
何が問題なのかわかりません。。ファイルグループが(Debian-exim
デフォルトユーザーグループ)の場合、Debian-exim
eximデーモンは「キー」ファイルにアクセスできますが、ファイルグループがssl
(セカンダリユーザーグループ)の場合はアクセスできDebian-exim
ないのはなぜですか?
答え1
ユーザーが属するグループはログインプロセスによって付与されます。デーモンの起動後にユーザーとグループに切り替えると、通常はそのユーザーとグループ(次のsetgid
)にのみ切り替えられ、(デフォルトグループ)と(セカンダリグループ)が暗示する他のグループはsetuid
使用されません。 eximにこの動作があるかどうかは確認していませんが、そうでない場合は奇妙です。/etc/passwd
/etc/group
grep '^Groups:' /proc/1234/status
1234
whereはeximプロセスのPIDを実行して、eximプロセスが実行されているグループを確認できます。
Debian-exim
ユーザーまたはグループがキーファイルを読み取ることができるようにする必要がありますDebian-exim
。ACLがオンになっていることを確認してくださいをクリックし、Debian-exim
キーファイルのACLとそのファイルに関連付けられているすべてのプライベートディレクトリに追加します。
setfacl -m group:Debian-exim:r /path/to/key
setfacl -m group:Debian-exim:x /path/to