今夜勝ちたいpostfix&リレー配送

ジム通いしての筋トレ始めました。
主目的は肩こりの解消と腹筋の強化。

インナーマッスルが弱いとやっぱりダメみたいだしね。
週2~3回通い、メニューは大体以下のような感じ

準備
・ストレッチ(15分ほど)

マシントレーニング
・チェストプレス(胸筋)
・ローワーバック(腰筋)
・ラットプルダウン(背筋)
アブダクション(お尻、外腿)
・レッグプレス(脚)
・アブドミナル(腹筋)
各12~20回×3セット

その他
・ランニングマシン 30分(6mph・傾斜6)
 or スタジオレッスン(45分)
※元々痩せる目的ではないのでランニングはそこまで重視してない

回数に変動があるのは、ジムの体調測定器みたいなのが出してくれる最適回数に合わせてるためです(`・ω・´)

スタジオレッスンも定番のエアロビからヨガ、コアマッスル重視まで広くあって結構楽しいです。

終わったらプロテインを飲みます。ウィダーのココア味美味しい。
夏頃には成果出てくるかな?早くマグりたい。

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

今回は予定を変更して今月実施した
postfix&リレーサーバを利用したメールリレー設定」についてまとめたいと思います。

詳しい解説でなく「とりあえず仕上げたい!今夜勝ちたい(早く帰りたい)!」人向け。

なお、本ブログではCentos7系での設定を前提として記載していきます。
バージョン違いや他OSの方はその辺読み替えてってください。あとpostfixそのもののインストールとか稼働は触れないので自分でやってね!

ざっくり概要

サーバ内にpostfixを設定してメールの送受信を行っていることは多いと思いますが、
送信の際、他のメールサーバを経由(リレー)することが可能です。
昔は色々と意味があったようですが、今ではメリットは減ってきているようです(ちょっとした高速化&スパム対策)

大まかに以下の項目を整備していきます。

メールサーバ側

1.メールサーバ&リレー用ユーザの用意

メインサーバ側

2.cyrus-saslのインストール
3.認証ユーザ情報の整備
4.postfix設定の修正

1.メールサーバ&リレー用ユーザの用意

メールをリレーして配信するという形式上、メールを宛先に送信するメールサーバが必須です。自分でメールをたてずにどこかでメールボックスなどを契約する場合は特にポートがどうみたいな設定はいらないはずです。
また、このメールサーバにリレーする際に必要な認証ユーザの作成も必要です。
正確に言うと作らなくてもリレーは出来ますが、常用の既存ユーザを使うと、そのユーザに常にリレーしたメールが送信として残ってしまうので、特に意図がなければ新規で作ってしまいましょう。

この段階では以下を控えておきましょう

・ ホスト名(IPアドレスでもOK)
・ サブミッションポート(通常587)
SMTP-AUTH対応方式(CRAM-MD5, PLAIN, LOGINとか)
・認証ユーザID&パスワード

2.cyrus-saslのインストール

ここからはメインサーバ側での作業です。
メインサーバから1.で用意したサーバへの認証にSASL認証という機構を使用します。
参考:SASLの設定 - Qiita

SASL認証に必要なcyrus-saslパッケージをインストールし、saslauthdの起動&自動起動設定を行います。
cyrus-sasl-md5、cyrus-sasl-plainがないと安全な認証が出来ません。yumリポジトリ次第ではcyrus-saslをインストールするだけでも入ってくるかも?まあ手動で指定した方が安心です。

$ sudo yum install cyrus-sasl
$ sudo yum install cyrus-sasl-md5 cyrus-sasl-plain $ yum list installed | grep sasl ←インストールの確認 cyrus-sasl.x86_64 2.1.23-15.el6_6.2 @base cyrus-sasl-devel.x86_64 2.1.23-15.el6_6.2 @base cyrus-sasl-lib.x86_64 2.1.23-15.el6_6.2 @base cyrus-sasl-md5.x86_64 2.1.23-15.el6_6.2 @base cyrus-sasl-plain.x86_64 2.1.23-15.el6_6.2 @base $ sudo /etc/init.d/saslauthd start ←起動
saslauthd を起動中: [ OK ]
$ sudo chkconfig saslauthd on ←自動起動設定
$ chkconfig --list saslauthd ←自動起動設定の確認
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

3.認証ユーザ情報の整備

2.で設定したパッケを使用してメールサーバに認証するユーザ情報の設定をします。

/etc/postfix/sasl_passwdの作成&ハッシュ化

サーバ、認証ユーザ、パスワードを記載したものを/etc/postfix/sasl_passwdとして作成します。ここで、1.で控えたホスト名などの情報を設定します。
記載したものをハッシュ化して本項目は終了です。

$ sudo vi /etc/postfix/sasl_passwd
[ホスト名]:587 {認証ユーザ}:{パスワード}
$ sudo postmap /etc/postfix/sasl_passwd

4.postfix設定の修正

大体の下ごしらえは終わったのでいよいよpostfixに設定を加えていきます。

postfixの設定としてetc/postfix/main.cfがあるのでこちらを編集していきます。
以下を追記、編集して下さい。

$ sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.org
$ sudo vi /etc/postfix/main.cf
relayhost = [ホスト名]:587 ←リレー先のホスト&サブミッションポート
smtp_sasl_auth_enable = yes ←SASL認証の使用可否(yes or no)
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd ←認証用ユーザ&パスワード設定ファイルの場所
smtp_sasl_mechanism_filter = cram-md5, plain, login ←リレー先で使用する認証方式の候補(記載順に優先される)
smtp_sasl_tls_security_options = noanonymous, noplaintext ←認証方式の制限(ここでは匿名、平文を使う方式を制限)
smtp_tls_security_level = may ←tls暗号化仕様に関する設定(mayは試行してダメなら平文で通信。encryptだと強制)
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt ←サーバ証明書の格納場所

参考:Postfixで外部のサーバでメールをリレーさせる - Qiita

他にも設定はありますが今回は上記を設定しました。
smtp_sasl_mechanism_filter、smtp_tls_security_levelは要件によっていじりましょう。

smtp_sasl_mechanism_filterは外部のメールサービスを契約して使用する場合は、対応している方式を確認して設定してください。(極力平文での認証は避けたいところですががが)
smtp_tls_security_levelあたりはセキュリティを考えるとencryptにしたいところですが対応していないメールサーバもあるのでmayにしてあります。

試行

ということでここまで設定出来たらpostfixとsaslauthdを再起動してsendmailコマンドなどでメールをしてみましょう。

$ sudo service saslauthd restart
saslauthd を停止中: [ OK ]
saslauthd を起動中: [ OK ]
$ sudo service postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
$ sendmail hogehoge@example.com
From:no-reply@example.com
To:hogehoge@example.com
Subject:Test
テスト配信メールです。
リレー成功してますか?
.

maillogを確認してリレーの結果を確認しましょう。

postfix/smtpのレコードで

relay={指定したメールサーバのホスト}[メールサーバのIPアドレス]:587 ~ status=sent

となっていれば成功しているはずです。

ちなみに

SASL authentication failed; cannot authenticate to server ~: no mechanism available

みたいなエラーが出ている場合はSASLのパッケージが足りていないので確認してみましょう。(実際、最初試した際にcyrus-sasl-md5 cyrus-sasl-plainが入ってなくてエラー出しました

 

ということでざっくり説明でした。
まだ細かい設定はありますがこれでとりあえず動くはず。
ダメな場合は設定ももちろんですが、サーバのポート(通常だと25、587番)とかも怪しいと思うのでそのあたりも見てみましょう。

 

今日も平和!