玄箱HGにFedoraを入れて自宅サーバを構築 - Amonution

メールサーバー構築

概要

メールサーバーを構築する場合、送信メールサーバー(SMTPサーバー)と受信メールサーバー(POP3/IMAPサーバー)の構築が必要になります。
今回は、送信メールサーバーにPostfix、受信メールサーバーにDovecotを使用します。
なお、Postfixはデフォルトでは外部ネットワークから外部ネットワークへの送信 (例えばネットカフェなどで、自宅サーバのメールアドレスから企業のメールアドレス宛)に送信できないようになっています。 これは迷惑メールの不正中継に利用されないようにするためです。 これを回避するため、SMTP-Auth機能(ユーザー認証機能)をもたせます。
また、DovecotはPOP3/IMAPサーバーとして構築し、どちらかを選択できるようにします。

Postfixのインストール

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設定

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

SMTP-Authのインストール

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設定

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します。

Dovecotのインストール

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設定

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起動

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

スポンサード リンク

TOPに戻る / メニューに戻る
Copyright © 1999-2011 Amonution  All rights reserved.
Address