メールサーバーを構築する場合、送信メールサーバー(SMTPサーバー)と受信メールサーバー(POP3/IMAPサーバー)の構築が必要になります。
今回は、送信メールサーバーにPostfix、受信メールサーバーにDovecotを使用します。
なお、Postfixはデフォルトでは外部ネットワークから外部ネットワークへの送信
(例えばネットカフェなどで、自宅サーバのメールアドレスから企業のメールアドレス宛)に送信できないようになっています。
これは迷惑メールの不正中継に利用されないようにするためです。
これを回避するため、SMTP-Auth機能(ユーザー認証機能)をもたせます。
また、DovecotはPOP3/IMAPサーバーとして構築し、どちらかを選択できるようにします。
yumを使用してインストールします。
[root@KURO-F7 ~]# yum -y install postfix Loading "fastestmirror" plugin Determining fastest mirrors fedora 100% |=========================| 2.1 kB 00:00 updates 100% |=========================| 2.3 kB 00:00 primary.sqlite.bz2 100% |=========================| 1.3 MB 00:00 Setting up Install Process Parsing package install arguments Resolving Dependencies --> Running transaction check ---> Package postfix.ppc 2:2.4.5-2.fc8 set to be updated --> Processing Dependency: cyrus-sasl >= 2.1.10 for package: postfix --> Running transaction check ---> Package cyrus-sasl.ppc 0:2.1.22-8.fc8 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: postfix ppc 2:2.4.5-2.fc8 fedora 4.2 M Installing for dependencies: cyrus-sasl ppc 2.1.22-8.fc8 updates 86 k Transaction Summary ============================================================================= Install 2 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 4.2 M Downloading Packages: (1/2): cyrus-sasl-2.1.22- 100% |=========================| 86 kB 00:00 (2/2): postfix-2.4.5-2.fc 100% |=========================| 4.2 MB 00:01 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: cyrus-sasl ######################### [1/2] Installing: postfix ######################### [2/2] Installed: postfix.ppc 2:2.4.5-2.fc8 Dependency Installed: cyrus-sasl.ppc 0:2.1.22-8.fc8 Complete!
Postfixの設定を行います。
[root@KURO-F7 ~]# vi /etc/postfix/main.cf 自分のFQDN名(完全修飾ドメイン名)指定を追加 myhostname = Amonution.com 自分のドメイン名指定を追加、myhostnameと同じで良い mydomain = Amonution.com ローカルからのメール送信時の送信元メールアドレス。@以降にドメイン名を付加する myorigin = $mydomain 接続を許すネットワーク(ローカルネットワークのみ) mynetworks = 192.168.11.0/24 127.0.0.0/8 外部からのメール受信を許可する inet_interfaces = all 自ドメイン宛メールを受信できるようにする mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain メールボックス形式をMaildir形式にする home_mailbox = Maildir/ メールサーバーソフト名の隠蔽化 smtpd_banner = $myhostname ESMTP unknown SMTP-Auth設定を追加する。 mtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 受信メールサイズを制限する。 message_size_limit = 10485760
yumを使用してインストールします。
[root@KURO-F7 ~]# yum -y install cyrus-sasl cyrus-sasl-md5 Loading "fastestmirror" plugin Loading mirror speeds from cached hostfile Setting up Install Process Parsing package install arguments Package cyrus-sasl-lib - 2.1.22-8.fc8.ppc is already installed. Package cyrus-sasl - 2.1.22-8.fc8.ppc is already installed. Package cyrus-sasl-devel - 2.1.22-8.fc8.ppc is already installed. Resolving Dependencies --> Running transaction check ---> Package cyrus-sasl-gssapi.ppc 0:2.1.22-8.fc8 set to be updated ---> Package cyrus-sasl-md5.ppc 0:2.1.22-8.fc8 set to be updated ---> Package cyrus-sasl-sql.ppc 0:2.1.22-8.fc8 set to be updated --> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: cyrus-sasl-sql --> Processing Dependency: libpq.so.5 for package: cyrus-sasl-sql --> Processing Dependency: libmysqlclient.so.15 for package: cyrus-sasl-sql ---> Package cyrus-sasl-ldap.ppc 0:2.1.22-8.fc8 set to be updated ---> Package cyrus-sasl-plain.ppc 0:2.1.22-8.fc8 set to be updated ---> Package cyrus-sasl-ntlm.ppc 0:2.1.22-8.fc8 set to be updated --> Running transaction check ---> Package mysql-libs.ppc 0:5.0.45-6.fc8 set to be updated ---> Package postgresql-libs.ppc 0:8.2.5-1.fc8 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: cyrus-sasl-gssapi ppc 2.1.22-8.fc8 updates 33 k cyrus-sasl-ldap ppc 2.1.22-8.fc8 updates 28 k cyrus-sasl-md5 ppc 2.1.22-8.fc8 updates 53 k cyrus-sasl-ntlm ppc 2.1.22-8.fc8 updates 36 k cyrus-sasl-plain ppc 2.1.22-8.fc8 updates 31 k cyrus-sasl-sql ppc 2.1.22-8.fc8 updates 31 k Installing for dependencies: mysql-libs ppc 5.0.45-6.fc8 updates 1.6 M postgresql-libs ppc 8.2.5-1.fc8 fedora 210 k Transaction Summary ============================================================================= Install 8 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 2.0 M Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: postgresql-libs ######################### [1/8] Installing: mysql-libs ######################### [2/8] Installing: cyrus-sasl-gssapi ######################### [3/8] Installing: cyrus-sasl-md5 ######################### [4/8] Installing: cyrus-sasl-sql ######################### [5/8] error: db4 error(-30987) from dbcursor->c_put: DB_PAGE_NOTFOUND: Requested page not found error: error(-30987) storing record libc.so.6(GLIBC_2.0) into Requirename Installing: cyrus-sasl-ldap ######################### [6/8] Installing: cyrus-sasl-plain ######################### [7/8] Installing: cyrus-sasl-ntlm ######################### [8/8] Installed: cyrus-sasl-gssapi.ppc 0:2.1.22-8.fc8 cyrus-sasl-ldap.ppc 0:2.1.22-8.fc8 cyrus-sasl-md5.ppc 0:2.1.22-8.fc8 cyrus-sasl-ntlm.ppc 0:2.1.22-8.fc8 cyrus-sasl-plain.ppc 0:2.1.22-8.fc8 cyrus-sasl-sql.ppc 0:2.1.22-8.fc8 Dependency Installed: mysql-libs.ppc 0:5.0.45-6.fc8 postgresql-libs.ppc 0:8.2.5-1.fc8 Complete!
SMTP-Authの設定を行います。
サービスを起動する [root@KURO-F7 ~]# /etc/rc.d/init.d/saslauthd start saslauthd を起動中: [ OK ] SMTP-Auth自動起動設定 [root@KURO-F7 ~]# chkconfig saslauthd on SMTP-Auth自動起動設定確認(ランレベル2~5のonを確認) [root@KURO-F7 ~]# chkconfig --list saslauthd saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off sasldb2を使用する設定にする [root@KURO-F7 ~]# vi /usr/lib/sasl2/smtpd.conf sasldb2を使用する設定 pwcheck_method: auxprop 新規ユーザを作成した場合、メールボックス(Maildir)を作成する様にする [root@KURO-F7 ~]# mkdir -p /etc/skel/Maildir [root@KURO-F7 ~]# chmod 700 /etc/skel/Maildir/ 既存ユーザのメールボックスを作成する(ユーザ:fedoraの場合) [root@KURO-F7 ~]# mkdir /home/fedora/Maildir [root@KURO-F7 ~]# chmod 700 /home/fedora/Maildir [root@KURO-F7 ~]# chown fedora:fedora /home/fedora/Maildir
postfixのサービスを開始します。
サービスを起動する [root@KURO-F7 ~]# /etc/rc.d/init.d/postfix start postfix を起動中: [ OK ] postfix自動起動設定 [root@KURO-F7 ~]# chkconfig postfix on postfix自動起動設定(ランレベル2~5のonを確認) [root@KURO-F7 ~]# chkconfig --list postfix postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
以上でサーバのセットアップは終了です。
ルーター側の設定でポート25番をOPENします。
yumを使用してインストールします。
[root@KURO-F7 ~]# yum -y install dovecot Loading "fastestmirror" plugin Loading mirror speeds from cached hostfile Setting up Install Process Parsing package install arguments Resolving Dependencies --> Running transaction check ---> Package dovecot.ppc 1:1.0.5-1.fc8 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: dovecot ppc 1:1.0.5-1.fc8 fedora 1.8 M Transaction Summary ============================================================================= Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 1.8 M Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: dovecot ######################### [1/1] Installed: dovecot.ppc 1:1.0.5-1.fc8 Complete!
Dovecotの設定を行います。
[root@KURO-F7 ~]# vi /etc/dovecot.conf プロトコルの指定を追加 protocols = imap imaps pop3 pop3s メールディレクトリの指定 mail_location = maildir:~/Maildir SSL証明の設定 ssl_cert_file = /etc/pki/tls/certs/server.crt ssl_key_file = /etc/pki/tls/private/server.key
メールアカウント名が「webmaster」や「hostmaster」「info」「support」などの場合、
alias(アカウント名を別名にする)に設定されているアカウントがある場合は、
以下の様に変更しないと別名のアカウントに転送されています。
結果、サーバで正常に受信しているにも関わらず、メールが取れないといった状況になってしまいます。
以下のファイルの「:」の左側のアカウント名が右側のアカウント名に別名定義されています。
例)webmaster: root
webmasterが別名でrootとなっている。よって、webmaster宛てのメールはrootに転送(移動)されます。
[root@among ~]# vi /etc/aliases webmasterアカウント宛にメールが届くようにする。(コメントアウトする) #webmaster: root 修正した内容を反映する [root@among ~]# newaliases
Dovecotを起動します。
サービスを起動する [root@KURO-F7 ~]# /etc/rc.d/init.d/dovecot start Dovecot Imap を起動中: [ OK ] dovecot自動起動設定 [root@KURO-F7 ~]# chkconfig dovecot on dovecot自動起動設定(ランレベル2~5のonを確認) [root@KURO-F7 ~]# chkconfig --list dovecot dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off
以上でサーバのセットアップは終了です。
ルーター側の設定でポート110番、143番をOPENします。
例として、MailUserというユーザーを追加します。
ユーザーを追加します [root@KURO-F7 ~]# useradd -s /sbin/nologin MailUser パスワードを設定します [root@KURO-F7 ~]# passwd MailUser Changing password for user MailUser. 新しいUNIX パスワード: パスワード入力 新しいUNIX パスワードを再入力してください: パスワード入力 passwd: all authentication tokens updated successfully.
SMTP-Authにもユーザーを設定します。
[root@KURO-F7 ~]# saslpasswd2 -u Amonution.com -c MailUser Password: パスワード入力 Again (for verification): パスワード入力 [root@KURO-F7 ~]# sasldblistusers2 MailUser@Amonution.com: userPassword sasldb2所有グループをpostfixに変更する(※最初の1回のみ) [root@KURO-F7 ~]# chgrp postfix /etc/sasldb2
以上で設定は完了です。
クライアントソフトによって異なりますが、下記のように設定します。
メールアドレス:MailUser@Amonution.com
メール受信サーバ:pop
メール受信サーバ名:Amonution.com
ユーザー名:Mailuser
Copyright © 1999-2017 Amonution All rights reserved.