*

OP25Bを越えてメールの送信を可能にする手順

公開日: : 最終更新日:2013/05/01 サーバ運用 ,

この記事の所要時間:約10分23秒

やっと出来るようになりました。この本のお陰ですほんとに。

[amazonjs asin=”4774143758″ locale=”JP” title=”Postfix実践入門 (Essential Software Guide Book)”]

送信関連でやったことは、SMTP-AUTHの設定とOP25B対策、そしてTLSの設定の3つ。忘れないうちにここにまとめておきます。

SMTP-AUTHの設定

/etc/postfix/main.cfに以下を追加。

#デフォルトでcyrusになっているのでdovecotに
smtpd_sasl_type = dovecot
#SASL認証を有効に
smtpd_sasl_auth_enable = yes
#特殊なMUAに対応
broken_sasl_auth_clients = yes
#Dovecot SASLライブラリの認証ソケットファイルの指定らしい。(よく知らない)
smtpd_sasl_path = private/auth

こんどは/etc/dovecot/conf.d/10-master.confに以下を書き込み。たしか欄はあって、そこにちょっと追加するだけだったはず。Postfix実践入門とdovecotの設定ファイルの構成が違っていたから少し焦った。

service auth{

(中略)

  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  # Auth process is run as this user.
  #user = $default_internal_user
}

これでSMTP-AUTHの設定はできたはずなのでpostfix reloadlしてからtelnetで確認。まず準備として、ユーザ名とパスワードのBASE64エンコード値を確認。

# perl -MMIME::Base64 -e 'print encode_base64("ユーザ名\0ユーザ名\0パスワード");'

一見ランダムな文字列が現れて、これをクリップボードにコピーしておく。

# telnet localhost 25
Trying 127.0.0.1...
Connected to locahost.localdomain (127.0.0.1).
Escape character is '~]'
220 (メールサーバのFQDN)(バージョン情報とか)
EHLO (メールサーバのFQDN)
(出力は中略)
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
(出力は中略)
AUTH PLAIN (さっきコピーした文字列)
235 2.0.0 Authentication successful

応答コード235が返ってきたら成功。これで一応SMTP-AUTHを使ってメールを送信できる状態になった。もちろんまだOP25Bを越えてないからこのままじゃ送れないわけだけど。

OP25B対策(サブミッションポートの使用等)

/etc/postfix/master.cfを編集。ほとんどはコメントアウトを解除するだけ。

submission inet n       -       n       -       -       smtpd
#TLSを強制使用させるかどうか。とりあえずコメントアウトさせないでおく。
#  -o smtpd_tls_security_level=encrypt
#SASLを有効にする
  -o smtpd_sasl_auth_enable=yes
#SASL認証できないクライアントを拒否
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

同様にpostfix reloadしてからサブミッションポート587にtelnetする。あ、ポート開放は事前にやっておいてね。

# telnet localhost 587
Trying 127.0.0.1...
Connected to locahost.localdomain (127.0.0.1).
Escape character is '~]'
220 (メールサーバのFQDN)(バージョン情報とか)
EHLO (メールサーバのFQDN)
(出力は中略)
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
(出力は中略)
AUTH PLAIN (さっきコピーした文字列)
235 2.0.0 Authentication successful

同様に235応答が来たら成功。

次に、PostfixをプロバイダのSASLクライアントとして設定する。送信するメールはとりあえずプロバイダのメールサーバsmtp.gmobb.jpに送ってそこから目的地へ送ってもらう。

/etc/postfix/main.cfに以下を設定。

relayhost = [smtp.gmobb.jp]:587

次に認証用のユーザ名とパスワードを記述したファイルを/etc/postfix/isp_passwdとして設定。ファイル名はなんでもいい、と思う。内容は1行だけ。以下のとおり。

[smtp.gmobb.jp]:587 (アカウント名):(パスワード)

postmapコマンドによりルックアップテーブルを作成。

# postmap /etc/postfix/isp_passwd

そんでmain.cfに以下を追加。

#SMTP-AUTHを有効にする
smtp_sasl_auth_enable = yes
#さっきのパスワードデータベースを指定
smtp_sasl_password_maps = hash:/etc/postfix/isp_passwd
#anonymousログインを禁止
smtp_sasl_security_options = noanonymous
#認証方式を設定
smtp_sasl_mechanism_filter = plain, login

“smtp_”で始まる設定はクライアントとしての設定で、対して”smtpd_”で始まる設定はサーバとしての設定。今はプロバイダのメールサーバに対するクライアントとしてPostfixに動いてもらう設定をするので、前者。紛らわしいので注意。

postfix reloadをしたら完了。

TLSの設定

さらにいろいろ/etc/postfix/main.cfに追加。証明書の作成は予めやっておく。ここではserver.crtとserver.keyとしておく。

#TLSを有効に
smtpd_use_tls = yes
#ログレベルを1に
smtpd_tls_loglevel = 1
#証明書と秘密鍵を指定
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/private/server.key
#接続キャッシュファイルを指定。バージョンによって場所が/etc/postfix/smtpd_scacheだったりする?
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
#キャッシュの保持時間
smtpd_tls_session_cache_timeout = 3600s

接続キャッシュファイルの場所があやふやでちょっと怖いから要確認。

あと私の場合、秘密鍵のパスフレーズを削除していないために読み込まれないというエラーが出ていて詰まっていたので、調べて削除した。

そんでpostfix reloadtelnetで確認。

# telnet localhost 587
Trying 127.0.0.1...
Connected to locahost.localdomain (127.0.0.1).
Escape character is '~]'
220 (メールサーバのFQDN)(バージョン情報とか)
EHLO (メールサーバのFQDN)
(出力は中略)
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
(出力は中略)
STARTTLS
220 2.2.0 Ready to start TLS

ここまで成功すれば問題ない。あとは適切にMUAの設定を適切に行うだけ。

まだSMTP-AUTHやTLS、そしてSMTP over TLSの住み分けがよくわかっていないので、要勉強。

[amazonjs asin=”4873111951″ locale=”JP” title=”Postfix実用ガイド”]

関連記事

CentOS6.4でホスト名・ドメイン名の変更に伴う諸々の設定変更

以前に新しいドメインikuwow.comを取得して、とりあえずサブのアドレスとしてホームページに飛ん

記事を読む

no image

rsyncで毎日自動差分バックアップを構成

毎日の明け方に、外付けHDDにrsyncバックアップをするようにした。rsyncを実行するシェルスク

記事を読む

no image

Twitterで自動フォロー返しをするPHPコード

Apple信者の毒舌な妹botで使用している自動フォロー返しのコードをメモ。前提は Githu

記事を読む

Cent OSサーバを起動するたびにいろいろとプロセスがクラッシュする問題

いつからか、Cent OSサーバを再起動するたびに件名が" full clash repor

記事を読む

最近の自宅サーバ事情

最近一番問題なのが、以前までMac miniの方で起きていた不定期にネットが切断される現象が、サーバ

記事を読む

no image

/tmpパーティションの領域の拡大をしてみる

今回拡大するのは/tmpパーティション。学校のデータベースの講義でDB2 express-cを使うか

記事を読む

no image

NVR500でフレッツサービス情報サイト(NGN IPv4)に接続するための設定

安定性に定評のあるYAMAHAのNVR500たんを買ってもう3ヶ月になりますが、やっとこさフレッツサ

記事を読む

no image

Twitterbotのlogファイルの肥大化を防ぐためのlogrotateの設定

abrAsus 保存するメモ帳 / ytoApple信者の毒舌な妹botはcronで定期的にphpを

記事を読む

no image

Apacheの起動が失敗する

ブログの重さが改善されるかと思いapacheのKeepAliveをonにして、restart。 し

記事を読む

no image

/tmp/orbit-ユーザ名以下の謎のファイルが/tmpパーティションを圧迫する問題

これも以前から解決していなかった問題。tmpwatchの設定を変更することで解決した。 cronか

記事を読む

ブログを移行しました

新しいブログはこちら http://queryok.ikuwow.co

ChefとAnsibleの比較 〜Ansibleはじめました〜

今まで個人のMacの環境構築には、Brewfileなるものを作成してい

no image
モチベ低い大学院生でも院進学で得られたもの

つい今月の頭に修士論文を提出して、長いプレッシャーから解放されました。

Apple Thunderbolt Displayを使って30分で理解した利点3つ

今まで研究室ではMac ProとDellのちゃちな21インチモニタで作

ニコニコ動画の動画上部のニュースを非表示にするSafari機能拡張

作りました。 HideNicoVideoNews http:/

→もっと見る

PAGE TOP ↑