*

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

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

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

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

送信関連でやったことは、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の住み分けがよくわかっていないので、要勉強。

関連記事

no image

ApacheでSSLを有効に(mod_ssl)

動機は、ownCloudをインストールしたこと。自分しか使わないとはいえブラウザでアクセスできるオン

記事を読む

no image

玄人志向のHDDケースを買った。

  先日、ふとしたきっかけで500GBのSATAのHDDが手に入ったので、HDDケー

記事を読む

no image

Apacheの起動が失敗する

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

記事を読む

a1640_000327_m

メールサーバが少しできた。

いよっしゃああああああ!!!! 受信だけは問題なくできるようになりました。受信だけです

記事を読む

http://www.centos.org/

Cent OSサーバを1から再構成しなおした。

リストアしちゃいました。 再構成するきっかけになったのは、/パーティションをなんと2GBしかと

記事を読む

ケーキ

CakePHPディレクトリを他サーバに移転する際に困ったこと

まだ解決できていないが、CakePHPで作ったアプリケーションを別のレンタルサーバーに移転し

記事を読む

no image

Postfixに新規ユーザを追加する場合の手順

送受信どちらも問題なくできるようになり、ひとまず安心。 サブで使ってるユーザアカウントの方のア

記事を読む

a0002_001091

ドメインを取得してとりあえず使えるようにする手順

ドメイン名。ウェブページの顔ですね。ちょっとネットワークに詳しい人なら結構意識していると思います。

記事を読む

LANケーブル

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

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

記事を読む

no image

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

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

記事を読む

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

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

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

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

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

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

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

作りました。 HideNicoVideoNews http:/

Tokyo tower
TOKYO HACKATHONが面白そう

最近発見したTOKYO HACKATHONという学生向けハッカ

→もっと見る

  • follow us in feedly
PAGE TOP ↑