*

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実用ガイド”]

関連記事

no image

.htaccessで旧ドメインを新ドメインにリダイレクトさせる設定

apache_server_logo / Álvaro Reig González ドメイ

記事を読む

NVR500のVPN設定にめげるチンパンジー

auのiPhoneから自宅のNVR500にVPN接続は簡単にはできないっぽい

NVR500のVPN設定にめげるチンパンジー[/caption] ここ1週間ぐらい、手持ちの

記事を読む

Postfixの本をちまちま読んでいる

メールサーバはできているものの、OP25Bを乗り越えるのがうまく行かず、メールの送信だけができない状

記事を読む

no image

外付けHDDを起動時に自動マウントする

  前エントリでフォーマットからマウントまでやったが、自動マウントの設定を忘れていた

記事を読む

no image

/var/log/clamav/freshclam.logの所有権がなぜか変わってしまう問題

深夜3時ごろに、Cron Daemonからこういうメールが送られてくる。 ERROR: P

記事を読む

no image

自前のDropbox、ownCloudをインストールしてみる

自前のサーバを用意したら、ファイルサーバを作ってみたいと思うもの。 そこでなんと、ownClo

記事を読む

no image

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

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

記事を読む

no image

USB外付けHDDをext4にフォーマットする手順

前エントリの玄人志向のHDDケースを買った。で出来上がった外付けHDDをフォーマットして、Cent

記事を読む

NVR500にプロバイダの固定IPサービスを設定する手順

ついに私も、固定IPサービスを使うことにしました。ルータへの設定で若干詰まったのでメモ。自鯖

記事を読む

ApacheにDigest認証を設定する方法

私は自鯖でownCloud、phpMyAdmin、Cactiを使っているのですが、外部に外部

記事を読む

ブログを移行しました

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

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

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

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

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

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

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

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

作りました。 HideNicoVideoNews http:/

→もっと見る

  • follow us in feedly
PAGE TOP ↑