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

C5 C6 S6

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

2013年2月2日 2017年8月9日
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 postfixreturn
    postfix-2.3.3-6.el5
    

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

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

  2. 簡単な設定を行う

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

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

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

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

    # デフォルトの値を全出力する場合は以下のようにします。
    $ postconf -dreturn
    ...
    
    # biff のデフォルトの値だけを確認したい場合は以下のようにします。
    $ postconf -d biffreturn
    biff = yes
    
    # 正確にパラメータ名を覚えていない場合は、単純に grep で出力するのも良いかもしれません。
    $ postconf -d | grep bifreturn
    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/virtualreturn
    $ postmap /etc/postfix/heloreturn
    
    上記のコマンドで、拡張子にdbを持つファイルがそれぞれ作成されます。

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

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

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

    $ ps aux|grep sendmailreturn
    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 stopreturn
    sm-client を停止中:                                        [  OK  ]
    sendmail を停止中:                                         [  OK  ]
    

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

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

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

    a mail 11.22.33.44
    mx mail 10

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

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

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

    メール受信

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


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

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

    $ alternatives --config mtareturn
    
    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なので、切り替えてみられてはいかがでしょうか。


関連記事 :


コメントを投稿 :

お名前 *

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

サイトアドレス

コメント *

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




最近投稿の記事

Genymotionとは、 公式サイト(http://www.genymotion.com/)には、以下のように記述があります。 G ...

以下のように Android x86 を仮想マシンへインストールし、色々と試してきました。 仮想マシンを使って Android ...

Android x86とは、 いわゆる Android のPC版OSです。 Android は、Googleによって開発されたスマー ...

Android x86とは、 いわゆる Android のPC版OSです。 Android は、Googleによって開発されたスマー ...

今回は、Mondo Rescue を使って バックアップとリストア(復元)をやってみたいと思います。 いまだに、さくらのVPSは、バッ ...


さくらの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日あります。)



  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ
Time : 0.2153 [s]