初めてのmakeserverTOP > 自宅サーバ構築 > MAILサーバ構築

MAILサーバ構築について

 
「Postfix」「Dovecot」とは

「Postfix」とは
MTA(Message Transfer Agent)電子メールを転送するソフトウェアの一つです。
送信したメールを受け取ったり、他のサーバと連携してに目的地まで配送したり、
受信したメールをユーザが受け取るまで保管したりする機能があります。

「Dovecot」とは
MDA(Mail Delivery Agent)電子メールをメール配送するソフトウエアの一つ。
MTAと違い転送はしません。MTAからメールを受信するための機能です。


※SMTP(Simple Mail Transfer Protocol)メール転送プロトコル
※pop3(Post Office Protocol)メールを受信するためのプロトコル


 


●dovecotの設定

# yum -y install dovecot
(「yum」コマンドを使って「dovecot」をインストールします。)







# cd /etc
(「cd」コマンドを使って「/etc」ディレクトリへ移動します。)

# vi dovecot.conf
(「vi」エディタで設定ファイルを編集します。)


#protocols = imap imaps

protocols = imap imaps pop3 pop3s

















#default_mail_env =

default_mail_env = maildir:~/Maildir






 


●「dovecot」の起動

# chkconfig dovecot on

# chkconfig --list dovecot

# /etc/init.d/dovecot start






 


●Postfixのインストール及び設定

# yum -y install postfix
(「yum」コマンドを使ってインストール)















 


●main.cfの設定

# cd /etc/postfix
(「cd」コマンドを使って「/etc/postfix」のディレクトリへ移動します。)

# cp main.cf main.cf.org
(「cp」コマンドを使って設定ファイルのコピーを作成)

# vi main.cf
(「vi」エディタで設定ファイルを編集。)

#myhostname = virtual.domain.tld

myhostname = testlinux.dip.jp
(各環境に合わせてホスト名を入力してください。)









#mydomain = domain.tld

mydomain = dip.jp
(各の環境に合わせてドメイン名を入力してください。)












#myorigin = $mydomain

myorigin = $mydomain
(「#」削除)








inet_interfaces = localhost

inet_interfaces = all
(外部からのメール受信を許可する為「localhost」⇒「all」変更)










# mydestination = $myhostname, localhost.$mydomain, localhost

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
(「#」削除。自分のドメイン宛メールを受信できるようにする為)







#home_mailbox = Maildir/

home_mailbox = Maildir/
(「#」削除。メールボックス形式を「Maildir」形式にする)







#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

smtpd_banner = $myhostname ESMTP unknown
(メールサーバーソフト名表示しないようするため追記)








allow_percent_hack = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
message_size_limit = 20971520
body_checks_size_limit = 20971520
disable_vrfy_command = yes

(「SMTP-Auth設定」「送信メールサイズ」など最終行に追加)









編集が終わったら設定を保存して終了します。

# postfix check
(設定をチェックしてみましょう。何も出なければOKです。)







例)「inet_interfaces = 」を未入力の場合 : エラーが出ます。

 


●「Postfix」の起動

# chkconfig postfix on

# chkconfig --list postfix

# /etc/init.d/postfix start

 


●SMTP-AUTHの設定(不正中継の防止)

まず必要なパッケージのインストールをします。

●インストール

# yum -y install cyrus-sasl-devel
# yum -y install db4-devel


●「saslauthd」の起動

# chkconfig saslauthd on

# chkconfig --list saslauthd

# /etc/init.d/saslauthd start


●ユーザー登録/パスワード設定

# /usr/sbin/saslpasswd2 -u (ドメイン)-c (ユーザー名)
例)/usr/sbin/saslpasswd2 -u testlinux.dip.jp -c test




Password:(ユーザパスワード入力)
Again (for verification):(再度ユーザパスワード入力)


# /usr/sbin/sasldblistusers2
(認証ユーザー確認)



test@testlinux.dip.jp: userPassword


(ユーザー削除の場合)
# /usr/sbin/saslpasswd2 -u (ドメイン)-d ユーザー名

例) /usr/sbin/saslpasswd2 -u testlinux.dip.jp -d test


●saslデータベースの設定

# vi /usr/lib/sasl2/smtpd.conf
(「vi」エディタで設定ファイルに以下を追記。)

auxprop_plugin: sasldb
mech_list: cram-md5 digest-md5 plain login

編集が終わったら設定を保存して終了します。

# cat /usr/lib/sasl2/smtpd.conf






 


●パーミッションの変更

# chown -R root:postfix /etc/sasldb2

# chmod 640 /etc/sasldb2

# /etc/init.d/saslauthd restart






 


●メールサーバー切替え

デフォルトで「sendmail」がインストールされているので、
切り替えないとうまく動作しません。

# alternatives --config mta
(「sendmail」と「postfix」の2つのMTAがでてきます。)






(「2」 ⇒ Enterを押して「postfix」を選択)
 ↓


(「+」が「2」の「/usr/sbin/sendmail.postfix」であることを確認)

(「Ctrl」キーと「Z」キーを同時押しすれば、解除できます。)

# yum -y remove sendmail
(「sendmail」を削除します。)

# /etc/init.d/postfix restart
(「postfix」再起動)

 


●認証テスト

# telnet localhost 25

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 testlinux.dip.jp ESMTP unknown


EHLO localhost
(「EHLO localhost」と入力)
250-server.xxxxx.com
250-PIPELINING
250-SIZE 1024000
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
quit
(「quit」と入力)
221 Bye
Connection closed by foreign host.


220 testlinux.dip.jp ESMTP unknown
メールサーバー名が非表示になっている事を確認
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
この2行の表示でSMTP-AUTH認証の動作はOK















 


●サブミッションポートの設定

サブミッションポートとは送信専用のあて先ポートのこと
OP25B(Outbound Port 25 Blocking)「迷惑メールを送信させないための対策」

上記の設定でメールの送受信が出来なければ、以下の設定を追加してください。
また、設定において各プロバイダの状況も関わるかもしれません。

main.cfの設定

# vi /etc/postfix/main.cf
(「vi」エディタで設定ファイルを編集。)

#relayhost = [an.ip.add.ress]

relayhost = [smtp.*****.***.ne.jp]









(リレーホスト(プロバイダ毎に要確認)を追加)
こちら「サブミッションポート(Port587)」を参考にしてみて下さい。)


編集が終わったら設定を保存して終了します。

master.cfの設定

# cp master.cf master.cf.org
(「cp」コマンドを使って設定ファイルのコピーを作成)

# vi /etc/postfix/master.cf
(「vi」エディタで設定ファイルを編集。)

smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
#     -o smtpd_etrn_restrictions=reject
#     -o smtpd_client_restrictions=permit_sasl_authenticated,reject

smtp inet n - n - - smtpd
submission inet n - n - - smtpd
     -o smtpd_etrn_restrictions=reject
     -o smtpd_client_restrictions=permit_sasl_authenticated,reject

(「#」削除)











編集が終わったら設定を保存して終了します。

# /etc/init.d/postfix restart
(設定を有効にする為「postfix」を再起動)


●root宛のメールを転送

# vi /etc/aliases
(「vi」エディタで設定ファイルを編集。)

root:  <ユーザ名>
(最後に追記。「root」宛のメールはありますので「よく使うユーザ(各)」宛がいいでしょう) 

# newaliases
(「aliases」を編集したら「newaliases」コマンドで読み込む)


●リレーチェック

こちらのサイトでスパムの踏み台にされないかチェックできます。

第三者中継チェック」というのがありますのでクリックして、
ホスト名に各のサーバ名を入力して「check」をクリックしてください。

------------------
>>> QUIT
<<< 421 domomo.dip.jp Error: too many errors
第三者中継テストの結果

全てのテストが行われました, no relays accepted.
------------------
このように出ればOKです

リレーチェックも済んだら、携帯にメールが飛ぶかテストしてみて下さい。無事にメールが着信確認が出来れば、OKです。最高にうれしいものですよ!!!


 

自宅サーバ構築記事一覧

NTPサーバ構築

NTPとは「network time Protocol」は、UDPポートの123番を使用して、ネットワークに接続されている機器などが持つている時計を正しい時刻(標準時刻)へ...

SSHサーバ構築

SSHとは「Secure SHell」は、TCPポートの23番を使用して、ネットワークを通じてサーバなど他の機器にログインしたりコマンドを実行したりするリモートシェルのこと...

FTPサーバ構築

FTPとは「File Transfer Protocol」は、TCPポートの21番を使用して、ファイル転送するためのプロトコルです。実運用でもFTPはよく使われています...

MAILサーバ構築

「Postfix」「Dovecot」とは「Postfix」とはMTA(Message Transfer Agent)電子メールを転送するソフトウェアの一つです。送信...

webサーバ構築

apacheとはアパッチ(Apache HTTP Server)は、世界で最も使われているWebサーバソフトウェアの一つです。ホームページを公開する場合に使用します。 ...

webサーバ間通信暗号化

mod_sslとはSSL(Secure Sockets Layer)を実装するためのモジュール。SSL を実装することで、情報が暗号化されよりセキュアなwebサイトとなる。...

プロキシサーバ構築

SquidとはHTTPなどの通信を中継したりキャッシュしたりプロキシサーバソフト。キャッシュ機能があるので一度アクセスしたWebページをサーバ上に保存することで、次に同じW...