OP25Bを越えてメールの送信を可能にする手順
この記事の所要時間:約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 reload
。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 (出力は中略) 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を取得して、とりあえずサブのアドレスとしてホームページに飛ん
-
rsyncで毎日自動差分バックアップを構成
毎日の明け方に、外付けHDDにrsyncバックアップをするようにした。rsyncを実行するシェルスク
-
Twitterで自動フォロー返しをするPHPコード
Apple信者の毒舌な妹botで使用している自動フォロー返しのコードをメモ。前提は Githu
-
Cent OSサーバを起動するたびにいろいろとプロセスがクラッシュする問題
いつからか、Cent OSサーバを再起動するたびに件名が" full clash repor
-
最近の自宅サーバ事情
最近一番問題なのが、以前までMac miniの方で起きていた不定期にネットが切断される現象が、サーバ
-
/tmpパーティションの領域の拡大をしてみる
今回拡大するのは/tmpパーティション。学校のデータベースの講義でDB2 express-cを使うか
-
NVR500でフレッツサービス情報サイト(NGN IPv4)に接続するための設定
安定性に定評のあるYAMAHAのNVR500たんを買ってもう3ヶ月になりますが、やっとこさフレッツサ
-
Twitterbotのlogファイルの肥大化を防ぐためのlogrotateの設定
abrAsus 保存するメモ帳 / ytoApple信者の毒舌な妹botはcronで定期的にphpを
-
Apacheの起動が失敗する
ブログの重さが改善されるかと思いapacheのKeepAliveをonにして、restart。 し
-
/tmp/orbit-ユーザ名以下の謎のファイルが/tmpパーティションを圧迫する問題
これも以前から解決していなかった問題。tmpwatchの設定を変更することで解決した。 cronか