2017/03/18 CentOS6.6
2022/08/07 CentOS7.9





ActiveDirectoryと連携するメールサーバ(追加設定)

ActiveDirecotoryと連携させるメールサーバの構築手順は以下の通りです。

ActiveDirectoryと連携するメールサーバ(MailDir)
ActiveDirectoryと連携するメールサーバ(MBOX)


メールサーバをActiveDirectoryと連携させると、いくつか調整したいことがあります。

・メールアドレスとユーザーアカウントに別の名前を使いたい
・アカウントの確認順序を変更する
・ホームディレクトリの位置を変更する
・複数のサーバでUIDをそろえる
・ユーザーの列挙を無効にする


●メールアドレスとユーザーアカウントに別の名前を使いたい
メールサーバとADを連携しつつも、メールアドレスの@以前には自由なアドレスを指定したいものです。
ActiveDirectory上のユーザー名と、使用するメールアドレスを別の名前にしたい場合はaliaseを指定します。

以下はyamada.taro@example.com宛のメールは、AD上のt.yamadaアカウント宛のメール扱いになります。

/etc/aliases の編集
メールアドレス名  ADアカウント名
yamata.taro:  t.yamada

編集後、コマンドで更新します。
#newaliase


●アカウントの確認順序を変更する
/etc/nsswitch.conf の編集
password: files winbind   → password: winbind  files

winbindを先に書くと、ユーザーの存在確認でwinbindを優先します。
仮にLinux上とActiveDirectory上に同じユーザー名があった場合、どちらのパスワードを優先させるかを指定できます。


●ホームディレクトリの位置を変更する
ホームディレクトリが重要になってくるのはMBox形式のメールサーバの場合です。imapディレクトリが作成されるからです。
Postfixはメールボックスで指定したディレクトリにメールを保存します。
Dovecotは指定された場所からメールを取り出すとき、同時にINDEX用のディレクトリを要求します。通常こちらはホームディレクトリへ生成されます。


・Winbind経由で自動生成されるホームディレクトリのパスは以下のよう変更できます。

/etc/samba/smb.conf の編集

[global]
template homedir  = /home/%U

homedir パラメータを指定しない場合のデフォルト値は /home/$D/$U です。
従って生成されるフォルダのパスは /home/EXAMPLE/winuser1 のようになります。
メールサーバとしての運用しかしないなら、template homedir  = /data/%U というまとめ方のほうが
管理上都合がいいこともあります。


・sssdの場合、ホームディレクトリの指定は以下の箇所で行います。

/etc/sssd/sssd.conf の編集

[domain/ドメイン名]
fallback_homedir = /home/%u@%d

homedir パラメータを指定しない場合のデフォルト値は /home/ユーザー名@ドメイン名です。
従って生成されるフォルダのパスは /home/winuser1@EXAMPLE のようになります。


●複数のサーバでUIDをそろえる
Windowsユーザーに対するUIDの割り当てはログイン順に行われるため、同じユーザーでもサーバーによって異なるUIDが割り当てられます。

サーバ間で同じUIDを割り当てたいことがあります。
中央にLDAPサーバを用いる手段もありますが、小規模ならridバックエンドが使えます。
ridは、各ユーザーのWindowsSIDから一定の計算式でUIDを算出します。
rangeさえそろえておけば同じSIDからはいつも同じUID値が生成されることになるので、どのサーバにログインしても同じUIDが割り当てられます。

/etc/samba/smb.conf の編集

[global]
        idmap config * : backend = tdb
        idmap config * : range=10000-20000
        idmap config EXAMPLE : backend = rid
        idmap config EXAMPLE : range = 50000-69999 ※上のrangeより大きい範囲を指定しておきます。

仕組みは簡単でrangeの50000+WindowsSIDの数字 という風にUIDが割り当てられます
いずれやってくるメールボックスの移行や、NFSを使用した複数サーバ間の連携で有用です。

コマンドから「id winuser01」とすれば、winbindで割り当てられたuidを確認できます


●ユーザーの列挙を無効にする
wbinfo -uなどを実行すると、全ての参照可能なユーザーを出力することができます。
しかし大規模環境だと、全てのユーザーを出力しきるのに数十分かかることになり、その間Winbindは応答を停止してしまいます。
SambaのIDマッピングのマニュアルに は「22,000ユーザを表示し切るのに12分以上かかる」という節があります。(参考
不用意にユーザー列挙をさせないよう、パラメータを設定できます。

/etc/samba/smb.conf の編集

[global]
     winbind enum users = no
     winbind enum groups  = no









prev.gif