iRedMailサービスを構成してSamba4ADDCに統合する方法-パート11


このチュートリアルでは、メールサービスを提供するiRedMailメインデーモン、メール転送に使用されるPostfix、およびアカウントのメールボックスにメールを配信するDovecotを変更して、両方をSamba4 ActiveDirectoryドメインコントローラーに統合する方法を学習します。

iRedMailをSamba4AD DCに統合することにより、次の機能を利用できます。ユーザー認証、管理、およびSamba AD DCを介したステータス、ADグループとRoundcubeのグローバルLDAPアドレスブックを使用したメールリストの作成。

  1. Install iRedMail on CentOS 7 for Samba4 AD Integration

ステップ1:Sama4AD統合用にiRedMailシステムを準備する

1.最初のステップでは、DHCPサーバーによって提供される動的IPアドレスを使用している場合に備えて、マシンに静的IPアドレスを割り当てる必要があります。

ifconfigコマンドを実行して、マシンのネットワークインターフェイス名を一覧表示し、正しいNICに対してnmtui-editコマンドを発行して、カスタムIP設定で適切なネットワークインターフェイスを編集します。

root権限でnmtui-editコマンドを実行します。

# ifconfig
# nmtui-edit eno16777736

2.ネットワークインターフェイスを編集用に開いたら、適切な静的IP設定を追加し、マシンからレルムを照会するために、DNSサーバーのSamba4 ADDCのIPアドレスとドメインの名前を必ず追加します。以下のスクリーンショットをガイドとして使用してください。

3.ネットワークインターフェイスの構成が完了したら、ネットワークデーモンを再起動して変更を適用し、ドメイン名とsamba4ドメインコントローラーのFQDNに対して一連のpingコマンドを発行します。

# systemctl restart network.service
# cat /etc/resolv.conf     # verify DNS resolver configuration if the correct DNS servers IPs are queried for domain resolution
# ping -c2 tecmint.lan     # Ping domain name
# ping -c2 adc1            # Ping first AD DC
# ping -c2 adc2            # Ping second AD DC

4.次に、ntpdateパッケージをインストールしてSambaドメインコントローラーと時刻を同期し、次のコマンドを発行してSamba4マシンのNTPサーバーにクエリを実行します。

# yum install ntpdate
# ntpdate -qu tecmint.lan      # querry domain NTP servers
# ntpdate tecmint.lan          # Sync time with the domain

5.現地時間をSambaADタイムサーバーと自動的に同期させたい場合があります。この設定を実現するには、crontab -eコマンドを発行して、1時間ごとに実行するようにスケジュールされたジョブを追加し、次の行を追加します。

0   */1	  *   *   *   /usr/sbin/ntpdate tecmint.lan > /var/log/ntpdate.lan 2>&1

ステップ2:iRedMail統合のためにSamba4 ADDCを準備する

6.ここで、このチュートリアルで説明されているように、Samba4 ActiveDirectoryを管理するためにRSATツールがインストールされているWindowsマシンに移動します。

DNSマネージャーを開き、ドメインの前方参照ゾーンに移動して、iRedMailシステムのIPアドレスを指す新しいAレコード、MXレコード、およびPTRレコードを追加します。以下のスクリーンショットをガイドとして使用してください。

レコードを追加します(それに応じてiRedMailマシンの名前とIPアドレスを置き換えます)。

MXレコードを追加します(子ドメインを空白のままにして、このメールサーバーに10の優先度を追加します)。

逆引き参照ゾーンに展開してPTRレコードを追加します(それに応じてiRedMailサーバーのIPアドレスを置き換えます)。これまでにドメインコントローラーの逆引きゾーンを構成していない場合は、次のチュートリアルをお読みください。

  1. Manage Samba4 DNS Group Policy from Windows

7.メールサーバーを正しく機能させるための基本的なDNSレコードを追加したら、iRedMailマシンに移動し、bind-utilsパッケージをインストールして、以下の抜粋に示すように、新しく追加したメールレコードをクエリします。

Samba4 AD DC DNSサーバーは、前の手順で追加されたDNSレコードで応答する必要があります。

# yum install bind-utils
# host tecmint.lan
# host mail.tecmint.lan
# host 192.168.1.245

Windowsマシンから、コマンドプロンプトウィンドウを開き、上記のメールサーバーレコードに対してnslookupコマンドを発行します。

8.最後の前提条件として、Samba4 AD DCでvmailという名前の最小限の特権を持つ新しいユーザーアカウントを作成し、このユーザーの強力なパスワードを選択して、このユーザーのパスワードが期限切れにならないようにします。

vmailユーザーアカウントは、iRedMailサービスがSamba4 AD DC LDAPデータベースにクエリを実行し、電子メールアカウントをプルするために使用されます。

vmailアカウントを作成するには、以下のスクリーンショットに示すようにRSATツールがインストールされたレルムに結合されたWindowsマシンからADUCグラフィカルツールを使用するか、次のトピックで説明するようにドメインコントローラーから直接samba-toolコマンドラインを使用します。

  1. Manage Samba4 Active Directory from Linux Command Line

このガイドでは、上記の最初の方法を使用します。

9. iRedMailシステムから、以下のコマンドを発行して、Samba4 AD DCLDAPデータベースを照会するvmailユーザーの機能をテストします。返される結果は、以下のスクリーンショットに示すように、ドメインのオブジェクトエントリの総数になります。

# ldapsearch -x -h tecmint.lan -D '[email protected]' -W -b 'cn=users,dc=tecmint,dc=lan'

注:それに応じて、Samba4 ADのドメイン名とLDAPベースdn( ‘cn u003d users、dc u003d tecmint、dc u003d lan‘)を置き換えます。

ステップ3:iRedMailサービスをSamba4 ADDCに統合する

10.次に、Samba4ドメインコントローラーにメールアカウントを照会するために、iRedMailサービス(Postfix、Dovecot、Roundcube)を改ざんします。

変更される最初のサービスはMTAエージェントのPostfixです。次のコマンドを発行して、一連のMTA設定を無効にし、ドメイン名をPostfixローカルドメインとメールボックスドメインに追加し、Dovecotエージェントを使用して受信したメールをユーザーのメールボックスにローカルに配信します。

# postconf -e virtual_alias_maps=' '
# postconf -e sender_bcc_maps=' '
# postconf -e recipient_bcc_maps= ' '
# postconf -e relay_domains=' '
# postconf -e relay_recipient_maps=' '
# postconf -e sender_dependent_relayhost_maps=' '
# postconf -e smtpd_sasl_local_domain='tecmint.lan'	#Replace with your own domain
# postconf -e virtual_mailbox_domains='tecmint.lan'	#Replace with your own domain	
# postconf -e transport_maps='hash:/etc/postfix/transport'
# postconf -e smtpd_sender_login_maps='proxy:ldap:/etc/postfix/ad_sender_login_maps.cf'  # Check SMTP senders
# postconf -e virtual_mailbox_maps='proxy:ldap:/etc/postfix/ad_virtual_mailbox_maps.cf'  # Check local mail accounts
# postconf -e virtual_alias_maps='proxy:ldap:/etc/postfix/ad_virtual_group_maps.cf'  # Check local mail lists
# cp /etc/postfix/transport /etc/postfix/transport.backup	# Backup transport conf file
# echo "tecmint.lan dovecot" > /etc/postfix/transport		# Add your domain with dovecot transport
# cat /etc/postfix/transport					# Verify transport file
# postmap hash:/etc/postfix/transport

11.次に、お気に入りのテキストエディタでPostfix /etc/postfix/ad_sender_login_maps.cf 構成ファイルを作成し、以下の構成を追加します。

server_host     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email protected]
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,dc=lan
scope           = sub
query_filter    = (&(userPrincipalName=%s)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= userPrincipalName
debuglevel      = 0

12.次の構成で /etc/postfix/ad_virtual_mailbox_maps.cf を作成します。

server_host     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email protected]
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,dc=lan
scope           = sub
query_filter    = (&(objectclass=person)(userPrincipalName=%s))
result_attribute= userPrincipalName
result_format   = %d/%u/Maildir/
debuglevel      = 0

13.以下の構成で /etc/postfix/ad_virtual_group_maps.cf を作成します。

server_host     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email protected]
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,dc=lan
scope           = sub
query_filter    = (&(objectClass=group)(mail=%s))
special_result_attribute = member
leaf_result_attribute = mail
result_attribute= userPrincipalName
debuglevel      = 0

3つの構成ファイルすべてで、server_host、bind_dn、bind_pw、およびsearch_baseの値を置き換えて、独自のドメインカスタム設定を反映します。

14.次に、Postfixメイン設定ファイルを開き、次の行の前にコメントを追加して、iRedAPDcheck_policy_serviceとsmtpd_end_of_data_restrictionsを検索して無効にします。

# nano /etc/postfix/main.cf

次の行にコメントします。

#check_policy_service inet:127.0.0.1:7777
#smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:7777

15.次に、次の例に示すように一連のクエリを発行して、既存のドメインユーザーとドメイングループを使用してSambaADへのPostfixバインディングを確認します。

結果は、次のスクリーンショットに示されているようになります。

# postmap -q [email protected] ldap:/etc/postfix/ad_virtual_mailbox_maps.cf
# postmap -q [email protected] ldap:/etc/postfix/ad_sender_login_maps.cf
# postmap -q [email protected] ldap:/etc/postfix/ad_virtual_group_maps.cf

それに応じて、ADユーザーアカウントとグループアカウントを置き換えます。また、使用しているADグループにいくつかのADユーザーメンバーが割り当てられていることを確認してください。

16.次のステップで、Samba4 AD DCにクエリを実行するために、Dovecot構成ファイルを変更します。編集用にファイル /etc/dovecot/dovecot-ldap.conf を開き、次の行を追加します。

hosts           = tecmint.lan:389
ldap_version    = 3
auth_bind       = yes
dn              = [email protected]
dnpass          = ad_vmail_password
base            = dc=tecmint,dc=lan
scope           = subtree
deref           = never
user_filter     = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_filter     = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_attrs      = userPassword=password
default_pass_scheme = CRYPT
user_attrs      = =home=/var/vmail/vmail1/%Ld/%Ln/Maildir/,=mail=maildir:/var/vmail/vmail1/%Ld/%Ln/Maildir/

Samba4 ADアカウントのメールボックスは、Linuxシステムの/var/vmail/vmail1/your_domain.tld/your_domain_user/Maildir/の場所に保存されます。

17.dovecotメイン構成ファイルでpop3およびimapプロトコルが有効になっていることを確認します。ファイル /etc/dovecot/dovecot.conf を開いて、quotaおよびaclメールプラグインも有効になっているかどうかを確認し、これらの値が存在するかどうかを確認します。

18.オプションで、ドメインユーザーごとに最大500 MBのストレージを超えないようにグローバルハードクォータを設定する場合は、/ etc/dovecot /dovecot.confファイルに次の行を追加します。

quota_rule = *:storage=500M 

19.最後に、これまでに行ったすべての変更を適用するには、root権限で以下のコマンドを発行して、PostfixデーモンとDovecotデーモンのステータスを再起動して確認します。

# systemctl restart postfix dovecot
# systemctl status postfix dovecot

20. IMAPプロトコルを使用してコマンドラインからメールサーバー構成をテストするには、以下の例に示すようにtelnetまたはnetcatコマンドを使用します。

# nc localhost 143
a1 LOGIN [email protected]_domain.tld ad_user_password
a2 LIST “” “*”
a3 LOGOUT

Samba4ユーザーアカウントを使用してコマンドラインからIMAPログインを実行できる場合、iRedMailサーバーはActiveDirectoryアカウントのメールを送受信する準備ができているようです。

次のチュートリアルでは、RoundcubeWebメールをSamba4AD DCと統合し、グローバルLDAPアドレスブックを有効にし、Roudcubeをカスタマイズし、ブラウザーからRoundcube Webインターフェイスにアクセスし、不要なiRedMailサービスを無効にする方法について説明します。