Fedora Core 4 Mail


Postfixとは?

PostfixとはSMTPサーバーのひとつ。
Fedoraには標準でsendmailが装備されています。
受信形式がMailbox形式のほか、Maildir形式もサポートされ高機能かつ設定が容易に行えることで人気のSMTPです。

Postfixのインストール

まずRPMパッケージがインストールされているか確認します。

# rpm -qa | grep postfix
postfix-2.2.2-2

と表示されればインストールされています。(数字の部分はバージョンですので異なる場合があります。)

インストールされていない場合は yum を使ってインストールします。

# yum install postfix

FedoraのFTPサーバーに問い合わせがかかり、最新版のPostfixがダウンロードされます。
最後にインストールしていいか(y/n)と聞かれるので y でインストールします。

sendmailの停止

すでにsendmailが動いているのでこれを停止させ、自動起動しないように設定を変更します。

# /etc/rc.d/init.d/sendmail stop
# chkconfig --del sendmail

SMTPの切り替え設定

SMTPをsendmailからPostfixに切り替える設定です。

# alternatives --config mta

There are 2 programs which provide 'mta'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix

Enter to keep the current selection[+], or type selection number:

ここで 2 [enter] を選択入力し、postfix が標準SMTPになるようにします。

基本設定 main.cf の修正

Postfix の設定は /etc/postfix/main.cf で行います。
修正・追記した箇所を抜粋して記載します。

  • myhostname にメールサーバのFQDNを設定します。
    DNSで解決できる名前で泣ければなりません。
    myhostname = mail.mydomain.com
  • メールサーバのドメインを設定します。
    mydomain = mydomain.com
  • ローカルからのメール送信時に、送信元アドレスの@以降に付加するドメインを設定する。
    myorigin = $mydomain
  • メールを受け取るネットワークインタフェースのアドレス範囲を指定する。
    #inet_interfaces = localhost
    inet_interfaces = all
  • 届いたメールが自分宛てかを判断するパラメータ。
    ドメイン全体で運営するメールサーバであれば全てのメールを受信できるように下記の設定にする。
    #mydestination = $myhostname, localhost.$mydomain
    mydestination = $myhostname, localhost.$mydomain $mydomain
  • 第三者中継を防止する設定。
    ここでは、サーバと同じサブネットのみを許可するようにする。mynetworks で細かく対象を指定することもできます。
    #mynetworks_style = class
    #mynetworks_style = subnet
    #mynetworks_style = host
    mynetworks_style = subnet
    
    #mynetworks = 168.100.189.0/28, 127.0.0.0/8
    #mynetworks = $config_directory/mynetworks
    #mynetworks = hash:/etc/postfix/network_table
    mynetworks =  192.168.0.0/28, 127.0.0.0/8
  • リレーを許可するドメインを指定
    #relay_domains = $mydestination
    relay_domains = $mydestination
  • # メールBOXの形式を指定。Maildir形式を指定。
    #home_mailbox = Mailbox
    #home_mailbox = Maildir/
    home_mailbox = Maildir/
  • sendmail互換プログラムの修正
    CGIとの整合が取れない場合があるので修正する。
    #sendmail_path = /usr/sbin/sendmail.postfix
    sendmail_path = /usr/sbin/sendmail

携帯メール対策

携帯電話各社にメールを送る場合いろいろ制限がかかっていて、、自宅サーバの postfix からメールが届かないことがあります。
これら宛のメールはプロバイダのメールサーバにリレーして送信するように設定をしま。

#transport_maps = dbm:/etc/postfix/transport
#transport_maps = hash:/etc/postfix/transport
#transport_maps = hash:/etc/postfix/transport, nis:transport
#transport_maps = hash:/etc/postfix/transport, netinfo:/transport
transport_maps = hash:/etc/postfix/transport

特に近頃はプロバイダ側で迷惑メール対策として Outbound Port 25 Blocking(OP25B) 対策を実施しているところが増えています。
その場合は、認証設定(POP BEFORE SMTP または SMTP-AUTH)や送信ポート番号を指定する必要があります。
ここでは、SMTP-AUTHの設定を記述します。
mail.cfへ下記を追記します。

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/provider_mail
smtp_sasl_security_options = noanonymous

新規にプロバイダのメール設定を記述したファイルを作成します。
ここでは provider_mail という名前を使います。
他ファイルを重複しない名前にします。

# vi /etc/postfix/provider_mail

下記の内容を記述します。
記述内容はプロバイダのSMTPサーバー名、メールアカウント、メールパスワード(SMTP)です。(下記は例ですので各自の環境に合わせて変更してください。)

smtp.provider.ne.jp   mail_id:password

設定した内容をDBに反映させます。

# postmap /etc/postfix/provider_mail

最後に携帯メールのリレー用に /etc/postfix/transport に、下記内容を追加する。
[  ] 内には契約しているプロバイダのSMTPサーバを記述する。

docomo.ne.jp          :smtp.provider.ne.jp
.docomo.ne.jp         :smtp.provider.ne.jp
ezweb.ne.jp           :smtp.provider.ne.jp
.ezweb.ne.jp          :smtp.provider.ne.jp
vodafone.ne.jp        :smtp.provider.ne.jp
.vodafone.ne.jp       :smtp.provider.ne.jp

ここでOutbound Port 25 Blocking対策で別のポート番号を指定されている場合は、SMTPサーバー名の後ろにポート番号を記述してください。

例 docomo.ne.jp          :smtp.provider.ne.jp:587

postmap で作成したリレーデータを反映させてtransport.dbを作成する。

# postmap /etc/postfix/transport

header_checksの修正

メールのヘッダー部(Received行)ローカルIPアドレスが表示されないように設定を変更します。
※[192\.168.*\]の箇所は各自のローカルネットワークの環境に合わせて変更してください。

# vi /etc/postfix/header_checks
/^Received:\sfrom .*\[127\.0\.0\.1\]|^Received:\sfrom .*\[192\.168.*\]/ IGNORE

また、未承諾広告メール(件名に「未承諾広告※」と表示されているメール)の受信を拒否するようにする場合は以下を追加します。

/^Subject:\ =\?ISO-2022-JP\?B\?GyRCTCQ\+NUJ6OS05cCIoGyhC\?=.*/ REJECT

変更を反映させます。

# postalias /etc/postfix/header_checks

aliasesの修正

RPMパッケージでインストールするとroot宛てのメールはpostfix宛てに配送されます。
postfixユーザを新規に追加するか、一般ユーザ宛に転送する必要があります。
転送設定は/etc/postfix/aliasesで行います。
エディタで/etc/postfix/aliasesを作成。

# vi /etc/postfix/aliases

転送先(エイリアス)を記述。

postfix:   UserName

同様にして root 宛メールを一般ユーザー宛に転送させておくと便利です。
下記を追記してください。

root: UserName

最後に newaliases を実行し反映させます。

# newaliases

SMTP Autheticationの設定

SMTP Autheticationの方法はいくつかありますが、ここではsasl パスワード(/etc/sasldb2)による認証方式を使用します。
この方法は UNIXのshadowパスワードとは別にパスワードを使用することができるで、セキュリテイ的にも向上します。

  • /usr/lib/sasl2/smtpd.conf を sasldb2 で行うように変更します。
    pwcheck_method: auxprop
  • パスワードデータベースを作成。
    パスワード作成は、以下のように行います。
    HostNmaeには main.cf で設定した $myorigin と同一のドメイン(ホスト)名を指定すること。
    一致しないと認証に失敗します。
    # saslpasswd2 -c -u HostName UserName
    パスワードを削除する場合
    # saslpasswd2 -d -u HostName UserName
    パスワードの確認する場合
    # sasldblistusers2
    UserName@mail.mydomain.com: userpassword
  • Postfixでsasldbを利用できるようにグループを変更し、パーミッションを変更します。
    # chgrp postfix /etc/sasldb2
    # chmod 640 /etc/sasldb2

Postfixの起動設定

RPMパッケージでインストールすると、/etc/rc.d/init.d配下に自動実行スクリプトが組み込まれます。
あとはランレベル設定を行います。

# chmod 755 /etc/rc.d/init.d/postfix
# chkconfig --add postfix
# chkconfig --list postfix
postfix      0:off  1:off   2:on   3:on   4:on   5:on   6:off

Postfixを起動させます。

# /etc/rc.d/init.d/postfix start

不正中継確認

下記のサイトで不正中継のチェックなどを行っています。
よく利用方法・注意書きを読んで利用してください。

有限会社 長崎ネットワークサービス http://www.nanet.co.jp/
NETWORK ABUSE CLEARINGHOUSE[Mail relay testing]



Last-modified: 2015-04-23 (木) 15:19:24 (964d)