Postfixを導入する (CentOS 6.5)

| メール

CentOS6.5でやっているLinuxサーバー設定関連の続き記事。

今度はメール関連の設定について残していきます。最初はPostfixの導入から。

スポンサードリンク

当サイトでのPostfix導入目標について

PostfixというのはSMTP(Simple Mail Transfer Protocol)サーバでSMTPとしては有名なsendmailとの置き換えを目的に開発されたソフトウェアです。

今回のPostfixの導入では外部(宅内ルーターの外)からメール送信用のサーバとしてのアクセスは目的としません。

簡単に言ってしまうと、Redmineからの連絡メールを送信(受け取る場所を用意)したいね。っていうのが導入しようとしたキッカケになります。そのため、OP25Bとか一切意識していないのであしからず。

(そのうち気が向いたら外部へのメール送信ぐらいは可能にするかもしれません)

インストールと起動設定

いつも通りのyumコマンドでインストール(CentOS 6.5の場合はアップデートでもOK)を行います。

# yum install postfix

普段ならサービスの自動起動設定などを行う所ですが、Postfixはインストールした時点で自動起動されます。念のため確認しておきます。

# chkconfig --list postfix
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off

基本設定

Postfixの主要な設定は「/etc/postfix/main.cf」で行います。

長いのでコメント部分は省きます。

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix

myhostname = smtp.cross-ring.org ・・・・・・ (1)
mydomain = cross-ring.org

inet_interfaces = all ・・・・・・ (2)
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ・・・・・・ (3)
unknown_local_recipient_reject_code = 550

mynetworks = 192.168.1.0/24, 127.0.0.1 ・・・・・・ (4)

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

home_mailbox = Maildir/ ・・・・・・ (5)

debug_peer_level = 2
debugger_command =
     PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
     ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES

# SPAM config ・・・・・・ (6)
smtpd_soft_error_limit = 5
smtpd_error_sleep_time = 30
smtpd_hard_error_limit = 10
smtpd_client_connection_count_limit = 10

anvil_rate_time_unit = 1d
smtpd_client_connection_rate_limit = 60
smtpd_client_recipient_rate_limit = 60
smtpd_client_message_rate_limit = 20

smtpd_client_event_limit_exceptions = $mynetworks

※前後行に空白を入れている個所は「# SPAM config」の行以下以外はコメントアウトされている設定です。

(1) コメントアウトされている myhostname と mydomain を有効化し、ホスト名とドメイン名を指定します。実際にドメインを持っていない場合はコメントアウトのままで運用します。その場合、ドメインはlocalhostで運用します。

(2) メールを受け取る事を許可するアドレスを指定します。外部からも受け取れるようにするには「all」を指定します。(LANポートが複数あり、特定のLANポートからのメールを受け取りたくない場合は受け取り許可するIPを設定します。)

(3) 受信アドレスの設定を行います。こちらで設定したドメイン宛へのメールを受け取った場合メールを内部のファイルへ書き出します。

(4) メールのリレー(中継)を許可するアドレスを指定します。サーバー自身と宅内からのメールのみ転送を許可します。

(5) ローカルへのメール配送設定を行っています。

  • 初期設定(設定が無効な状態)では「/var/spool/mail/<username>」か「/var/mail/<username>」というファイルへメールが配送されます。(ファイルはユーザー毎に全メールが1ファイルで管理される)
  • 最後に’/’を付けない場合は、各ユーザーのhomeディレクトリに その名称のファイルが作成され全メールが1ファイルで管理されます。
  • 最後に’/’を付けた場合は、各ユーザーのhomeディレクトリにその名称のディレクトリが作成され、1メール1ファイルとして管理されます。

(6) SPAMメール送信対策用の設定です。

smtpd_soft_error_limit 指定した回数のエラーが発生したときに応答遅延を行います。
smtpd_error_sleep_time smtpd_soft_error_limitで指定した回数のエラーが発生したときの応答遅延の時間をを秒数で設定します。
smtpd_hard_error_limit 指定した回数のエラーが発生するとSMTP接続を切断します。
smtpd_client_connection_count_limit 同じメール送信元からの同時接続数の制限を行います。
デフォルト(未設定時)は50になっています。
anvil_rate_time_unit クライアントの使用率を測定するための期間を設定します。
値に次の文字を付ける事で、s:秒、m:分、h:時間、d:日、w:週単位で指定できます。
smtpd_client_connection_rate_limit anvil_rate_time_unitで指定した期間に同じ接続元からの接続回数を指定します。
デフォルト(未設定時)は0(無制限)になっています。
smtpd_client_recipient_rate_limit anvil_rate_time_unitで指定した期間に同じ接続元から送信可能な宛先数を指定します。
デフォルト(未設定時)は0(無制限)になっています。
smtpd_client_message_rate_limit anvil_rate_time_unitで指定した期間に同じ接続元から送信可能なメール数を指定します。
デフォルト(未設定時)は0(無制限)になっています。
smtpd_client_event_limit_exceptions 上記で設定した制限の除外対象となるアドレスを指定します。
デフォルト(未設定時)は$mynetworksになっています。

 

設定が完了した後はPostfixを起動 or 再起動します。

# service postfix restart

起動に失敗した場合は「/var/log/maillog」を確認します。

# vi /var/log/maillog

内容を確認して原因を探ります。

 

ファイアーウォールの設定

SMTPはTCP 25番ポートを使います。ファイアウォールの設定を行います。

変更するファイルは「/etc/sysconfig/iptables」です。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

設定が完了した後はiptablesの再起動を行います。

# service iptables restart

動作確認

メール受け取りユーザーの作成

メールを受け取るユーザーを作成します。「user_name@cross-ring.org」というメールアドレスを作ろうとすると「user_name」というユーザーを作成する必要があります。

# useradd -s /sbin/nologin user_name
# passwd user_name
Changing password for user user_name.
New password: <パスワード入力>
Retype new password: <パスワード入力>
passwd: all authentication tokens updated successfully.

ローカルからのメール送信

メール送信テストを行います。

# yum install mail ・・・・・・ (7)
・・・(略)・・・
# mail user_name@cross-ring.org ・・・・・・ (8)
Subject: Test mail
I write the contents of the e-mail here.
.
EOT
# cat /home/user_name/mailbox/new/* ・・・・・・ (9)
Return-Path: <root@cross-ring.org>
X-Original-To: user_name@cross-ring.org
Delivered-To: user_name@cross-ring.org
Received: by cross-ring.net (Postfix, from userid 0)
        id ~~~
Date: ~~~
To: user_name@cross-ring.org
Subject: Test mail
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain: charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <~~~@cross-ring.org>
From: root@cross-ring.org (root)

I write the contents of the e-mail here.

(7) mailコマンドが実行できなければインストールを行います。

(8) mailを送ります。応答形式でメールの内容を入力できるので適当に入力を行います。
内容部分の終わりは’.’だけを入力してEnterキーで終了になります。

(9) 届いたメールの確認を行っています。

 

ただ、現状は誰でもメールを送れてしまうので次回、認証設定を行います。

トラックバック

トラックバックURL:

トラックバック & ピンバック

コメントはまだありません。

作ったもの

種牡馬メモサイト

フリーダムウォーズ素材メモサイト

月別アーカイブ

つぶやき

更新記録カレンダー

2019年10月
« 1月    
 123456
78910111213
14151617181920
21222324252627
28293031  

参考書籍

XHTML/HTML+CSSスーパーレシピブックXHTML/HTML+CSSスーパーレシピブック
エ・ビスコム・テック・ラボ

毎日コミュニケーションズ
売り上げランキング : 74419

Amazonで詳しく見る
現場のプロから学ぶXHTML+CSS現場のプロから学ぶXHTML+CSS
益子 貴寛,堀内 敬子,小林 信次,千貫 りこ,伊藤 学,山田 あかね,西畑 一馬,CSS Nite

毎日コミュニケーションズ
売り上げランキング : 39400

Amazonで詳しく見る