レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

C5 C6 S6

CentOS(Scientific Linux)で postfix を使ってみる

2013年2月2日 2015年5月14日
postfix centos scientificlinux

Debian(Ubuntu)で postfix を使ってみる では、Debian/UbuntuへのPostfixの対応について書きました。

今回は、CentOS / Scientific Linux の対応についてです。
CentOS / Scientific Linux では、バージョン 6 からデフォルトのMTAとして使用されるようになったことから、 Postfixを普通に利用している方も多いと思います。(バージョン 5 までは、SednmailがデフォルトのMTAでした。)

そういう経緯もあって、この記事は、インストール関連はほとんどがバージョン 5 への対応であり、 初期設定については、すべてのバージョンに共通的な話となっています。

では、早速、Postfixのインストールからはじめてみましょう。

CentOS(Scientific Linux)で postfix を使ってみる

CentOS(Scientific Linux)で postfix をインストールし、簡単な設定を行った後、動作確認まで行ってみます。

  1. postfix をインストールする。

    バージョン 6 以降では、デフォルトのMTAとなったので、ほとんどはインストール済ということもあります。
    まずは、postfix がインストールされているか確認します。

    $ rpm -qa|grep postfix
    postfix-2.3.3-6.el5

    上記の例では、既にインストールされています。
    上記の出力結果で何も出力されないようなら、インストールされていませんから、postfix をインストールします。
    インストール方法は、yumでインストールするだけです。

    $ yum install postfix
    ...
    Install       1 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 3.6 M
    Is this ok [y/N]: y
    ...
    $

  2. 簡単な設定を行う

    postfixは、大きく以下の2つのファイルにて設定することができます。

    • /etc/postfix/main.cf : サイトごとの設定
    • /etc/postfix/master.cf : デーモンプロセスの設定

    ここでは、基本的な設定のみを行いますので、main.cf のみを扱います。
    また、main.cf は、デフォルトの値を変更する分だけを設定します。

    postfixのデフォルトの設定値は、postconfで確認できます。

    # デフォルトの値を全出力する場合は以下のようにします。
    $ postconf -d
    ...
    
    # biff のデフォルトの値だけを確認したい場合は以下のようにします。
    $ postconf -d biff
    biff = yes
    
    # 正確にパラメータ名を覚えていない場合は、単純に grep で出力するのも良いかもしれません。
    $ postconf -d | grep bif
    biff = yes

    以下は、main.cf の設定です。


    /etc/postfix/main.cf

    ...
    # ここは、メールサーバーのホスト名を指定します。
    #myhostname = host.domain.tld
    #myhostname = virtual.domain.tld
    myhostname = mail.exmaple.com
    ...
    # ここは、自ネットワークのIPアドレスを指定します。
    # ここで指定したIPアドレスからのリレーメールは、全て許可されます。
    # あえて許可したいサーバーやローカルエリアなどがあれば設定します。
    # そうでない場合は、無理に設定する必要はありません。デフォルトのままでOKです。
    # mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 11.22.33.44 55.66.77.88
    ...
    # 以下は、ヘッダ情報に出力されるメールサーバー名なので、できるだけシンプルに変更します。
    #smtpd_banner = $myhostname ESMTP $mail_name
    #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
    smtpd_banner = $myhostname ESMTP $mail_name
    
    # メーラーはpostfixという名前を非表示(unknown)にしておきます。
    mail_name = unknown
    
    # 新着メール通知のためのbiffを停止します。
    #  biffは、今は、使われることはほとんどありませんが、
    #  利用しているメールクライアントが、メールチェックにbiffを利用している場合、yesとします。
    biff = no
    
    # ".domain" 情報のないアドレスに文字列 ".$mydomain" を付け加えないようにします。 
    # 一般的にな利用では、ローカルユーザ名だけでのメールやりとりは、ほとんどないと思います。
    append_dot_mydomain = no
    ...
    # メールボックス配送に 外部の配送エージェントを使う場合に設定します。 
    #mailbox_command = /some/where/procmail
    #mailbox_command = /some/where/procmail -a "$EXTENSION"
    # procmail を使う場合
    #mailbox_command = /some/where/procmail -a "$EXTENSION"
    # maildrop を使う場合
    #mailbox_command = /some/where/maildrop -d "$USER"
    ...
    # メールボックスのサイズに制限を持たないようにしたい場合に0を設定します。 
    # デフォルト: 51,200,000 byte (約52MByte)
    mailbox_size_limit = 0
    ...
    # ユーザ名と拡張アドレス (user+foo) の間の区切りを設定します。 
    # これを指定することで、ユーザを追加することなく、拡張メールアドレスをいくつでも作ることができます。
    # 例) taro+hogehoge@exmapl.com , taro+other@exmapl.com  いずれもtaroさん宛のメールアドレスです。
    #     ただし、 ~taro/.forward+hogehoge , ~taro/.forward+other  のように別の配送ができるようになります。
    recipient_delimiter = +
    ...
    # このメールシステムがメールを受け取るネットワークインターフェース アドレス。
    #  外部からメールを受け取る場合は、all  とします。
    inet_interfaces = all
    #inet_interfaces = $myhostname
    #inet_interfaces = $myhostname, localhost
    #inet_interfaces = localhost
    ...
    # 仮想ドメインがある場合は、以下のようにドメインを列挙します。
    virtual_alias_domains = exmaple.com, sample.net
    # 仮想メールアドレスを設定するファイル名を指定します。
    virtual_alias_maps = hash:/etc/postfix/virtual
    ...
    # 迷惑メール対策として、最低でもHELOの応答がない場合は、破棄するようにします。
    smtpd_helo_required = yes
    # HELO or ELO で応答したホスト名をファイルで検索し、該当する名前があれば、その指示に従うようにします。
    smtpd_helo_restrictions = check_helo_access hash:/etc/postfix/helo,permit
    ...
    # Postfix サブシステムや機能に関する構築方法や設定方法、操作方法が 書かれた Postfix README ファイルの場所ですから 
    # あえて公開する必要もないので、ここでは、コメントアウトします。
    # readme_directory: The location of the Postfix README files.
    #
    #readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES

    変更箇所の文字色 あるいは、太字 箇所が編集したところです。

    ここでの設定は、基本的で必要最小限の設定になっています。これでセキュアなメールサーバーとはなっていないので注意してください。
    また、ここで新たに追加されたファイルが2つあります。
    • /etc/postfix/virtual : 仮想ユーザの設定

      以下は、仮想ドメインのsample.netのhogeユーザを定義したものです。 ここでは、hoge@example.comへ転送しています。

      # sample.net
      hoge@sample.net         hoge@example.com

    • /etc/postfix/helo : helo の制御

      以下は、heloであたかもメールサーバーと同じであるかのようにメールサーバーと同じIPアドレスを名乗るスパムサーバーがあります。 その場合は、破棄するように指定したものです。最低限、これくらいはやっておくとスパムは半減します。

      # own reject
      11.22.33.44         REJECT

    いずれも、編集をおえたら、hashデータへ変換します。
    $ postmap /etc/postfix/virtual
    $ postmap /etc/postfix/helo
    上記のコマンドで、拡張子にdbを持つファイルがそれぞれ作成されます。

  3. postfixのテストをしてみましょう

    postfixの設定を終えたら、postfixを起動し、簡単テストを行ってみましょう。

    ただし、CentOS/Scientific Linuxの場合、Sendmailが動作している場合があります。
    まずは、Sendmailが動作している場合は、Sendmailを停止します。

    $ ps aux|grep sendmail
    root       896  0.0  0.1   9372  1888 ?        Ss   14:08   0:00 sendmail: accepting connections
    smmsp      898  0.0  0.1   8284  1520 ?        Ss   14:08   0:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
    root      2185  0.0  0.0   5112   808 pts/0    S+   20:38   0:00 grep sendmail

    上の例では、Sendmailが動作していますので、Sendmailを停止します。

    $ /etc/init.d/sendmail stop
    sm-client を停止中:                                        [  OK  ]
    sendmail を停止中:                                         [  OK  ]

    続けて、postfixを起動します。

    $ /etc/init.d/postfix start
    postfix を起動中:                                          [  OK  ]

    ここで、ドメインのDNS設定でmxの先をメールサーバーのIPアドレスへ変更します。以下はその1例です。

    a mail 11.22.33.44
    mx mail 10

    あとは、確認するだけです。 内部からメールを送信するには、mail コマンドが簡単です。
    シェルから、以下のようにコマンドでテストメールを送信してみましょう。

    $ mail test-taro@yahoo.co.jp 
    Subject: test
    test mail from postfix.
    .
    Cc:
    $ 
    もちろん、宛名は、適当に編集してください。
    また、本文の最後は、ピリオド “.” のみの行Enter キー で終了となります。

    さあ、yahooメールを確認してみてください。ちゃんとメールは届きましたか?

    メール受信

    続けて、yahooメールからメールサーバーへメールを送信してみてください。
    メールが正しく届けばOKです。


  4. postfixをデフォルトのMTAとします

    postfixが正しく動作した場合、Sendmailと共存している場合は、デフォルトのMTAをどちらにするか 以下のようにalternativesコマンドと使って、決めておきます。

    $ alternatives --config mta
    
    2 プログラムがあり 'mta' を提供します。
    
      選択       コマンド
    -----------------------------------------------
    *+ 1           /usr/sbin/sendmail.sendmail
       2           /usr/sbin/sendmail.postfix
    
    Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2return
    alternativesで再起動時の自動起動設定までを行ってくれますので、chkconfigによる起動設定は必要ありません。

いかがだったでしょうか?Sendmailに比べれば、簡単な設定で結構セキュアな設定ができるのはありがたいです。
どうしてもSendmailの設定は、他のアプリケーションの設定と比較しても独特な面がありますから、とっつきにくいのは確かですよね。
その点だけでも、Postfixへの移行は、メリットがあるのかもしれません。
CentOS 6/Scientific Linux 6では、デフォルトのMTAがPostfixになったことも良いきっかけかもしれません。 上記のインストールおよび設定例は、CentOS 5 でもOKなので、切り替えてみられてはいかがでしょうか。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

Debian(Ubuntu)で postfix を使ってみる

Debian(Ubuntu)では、デフォルトのメールサーバー(メール転送エージェント(MTA))として Exim4 がインストールされています。 ...

procmailの代わりに(rpmを作成して)maildropをインストールする(RPM編)

procmailでメールボックスのパーミッションが660になってしまう対処について調べてみた でも指摘したように、procmailには、メンテナ ...

PostfixでSpamhaus のブロックリストを使ったスパム対策をしてみる

今回は、Postfixで Spamhaus のブロックリストを使った スパム対策を行ってみます。 (ブラックリストじゃなくてブロックリストです ...

procmailの代わりに(makeを使って)maildropをインストールする(make編)

procmailの代わりに(rpmを作成して)maildropをインストールする(RPM編) では、CentOS/Scientific Linu ...

Postfix で 外部からメールを送信できないときにチェックすること

今回は、Postfixで外部からメールを送信できないときにチェックすることについて書いてみます。 外部といっても、一般的には、Window ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.1541 [s]