Postfixでメール転送

Jan. 28, 2003



fetchmail のところでも書いたように, 筆者が仕事で使っているメールサーバは外部ドメインからのPOPリクエストを受け付けないようになっている. これでは自宅や出先からのメールチェックが出来ないので不便だ. そこで,このサイトを運用している fukunm12 でfetchmailとqpopperを動かし, 定期的にメールサーバからメールをダウンロードしつつ外部ドメインからもPOPできるようにしている.

これまで特に不自由は無かったが,このところネット環境の無い実験室に篭っている時間が長いので, 自分宛てのメールを携帯電話に転送できればなお便利である. そこで,設定が比較的簡単と評判のMTAであるpostfixを使って携帯電話へのメール転送ができるように設定してみた.

postfixのインストールや設定方法に関しては, Postfixのぺーじ が大変役に立つ. 何はともあれ 国内のミラーサイト からソースのtarボールをダウンロードする. 最新版は 2.0 Patchlevel 3 で,ファイル名はpostfix-2.0.3.tar.gz である. 適当な場所でtarボールを展開しmakeする. configureスクリプトは付属していない.

$ tar xvzf postfix-2.0.3.tar.gz
$ cd postfix-2.0.3
$ make

次にユーザpostfixを作成する.残念ながらUNIX系OSに疎いのでこの手順の意味はわからない. 今回は先の Postfixのぺーじ のインストール手順を参考にし, 以下のように設定した.

$ su
# vipw
  postfix:*:12345:12345:Postfix owner:/nonexistent:/sbin/nologin
  (ユーザ postfix をパスワード,ホームディレクトリ,ログインシェルなしで追加)

# vi /etc/group
  postfix:*:12345:
  postdrop:*:54321
  ( postfix グループと postdrop グループを作成)

# vi /etc/aliases
  postfix:  root
  (postfix 宛のメールを root に向ける)
"Postfixのぺーじ" にはpostdropグループの作成は書かれていないが, tarボール付属のインストールマニュアルによると,新しいバージョンでは必須らしい.

ユーザの設定が終わったらpostfixをインストールする. 通常通りsuしてから,

# make install
で終りだ. 途中いくつかの質問があるが,基本的にはすべてデフォルトでOKのようだ. 上でpostdropグループを作成していないと途中でエラーが出た.

以上でインストールは完了である.postfixをスタートさせるには,

# /usr/sbin/postfix start
とする.あとはntsysvあたりで起動時にサービスがスタートするように設定すればよい. ただし,今回インストールしたマシンではntsysvにpostfixの項目が出てこなかった. たぶんfetchmailとの依存関係でsendmailをインストールしていたからだろう(実際には動いていない). ntsysvでsendmailにチェックを入れればpostfixがスタートすると思われるが,再起動が面倒なので確認していない.

さて,設定であるが,デフォルトの設定で同一ドメイン以外からのメール配送は受け付けないようになっている. 今の使い方ならこれで十分である. ただし,同一ドメインに不正リレーを許すホストがあればどうしようもないが.

一応,外部ドメインからのメールリレーができないようになっているかをチェックするため,

% telnet relay-test.mail-abuse.org
とした. これはtelnet先のホストが十数個のメールを当サーバ宛てに送って不正リレーのチェックをやってくれるものである. 結果はOKだった. 念のため,http://www.rbl.jp/svcheck.php のテストも行い, こちらも問題無し. さらに,念には念をということで,オープンリレーのホストのブラックリストを活用することにする. postfixにはブラックリストに載っているホストからのメール中継を拒否する機能がある. ブラックリストについては,dnsを使って参照できるspam対策用ブラックリスト に詳しい情報がある.

具体的には,/etc/postfix/main.cfに以下の設定を追加する.

maps_rbl_domains =
        relays.ordb.org
        inputs.orbz.org
        outputs.orbz.org
smtpd_client_restrictions =
        permit_mynetworks
        reject_maps_rbl
        permit
maps_rbl_domains にブラックリストが参照可能なホストを指定する. main.cf を変更したら
# /usr/sbin/postfix reload
postfix/postfix-script: refreshing the Postfix mail system
として変更を反映させる.

最後は転送の設定であるが,これは簡単である. ホームディレクトリに .forward というファイルを作り,以下のように転送先メールアドレスを書いておくだけである.

akasaka@aaa.bbb.co.jp
なお,転送後メールを残しておく場合は,
\akasaka,akasaka@aaa.bbb.co.jp
とすればよい.
お問い合わせはメールにて: akasaka@klc.ac.jp

戻る
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送