harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

GNU/Linux infra MAIL postfix

postfix SMTP-auth設定

投稿日:2004年12月13日

Last Updated on 2022年3月13日 by かんりにん

[pukiwiki]

&topicpath;
 

**▼SMTP-auth設定 [#e44ccef9]
 (会社編)
 ※自宅サーバ編は別途編集。

postfix+cyrus-SASLの組み合わせでのSMTP-authの実装です…が、いろいろあって検証環境ではまだ途中です
(本番環境ではすぐいけそうな感じだけど、重要インフラなので気をつけて…)

※当初cyrus-SASLをソースコンパイルしたものを使用するつもりでしたが、いまいち動作がおかしい(コンパイル時のオプションがおかしい?)ので
 おとなしくRPMパッケージで設定しました。

**1)cyrus-SASLのインストール確認 [#r2d7d4bc]
RPM版でインストールを完了しているのでそのまま使用する。

▼saslデータベース

sasl認証のパスワードファイル。
sasldb :/etc/sasldb
確認コマンド # strings /etc/sasldb

▼パスワードファイルの設定

Postfixがsasldbを利用できるようにグループに登録し、
パーミッションを変更します。

# chgrp postfix /etc/sasldb
# chmod 640 /etc/sasldb

▼saslパスワード登録コマンド

パスワード登録 saslpasswd :/usr/sbin/saslpasswd
パスワード確認 sasldblistusers :/usr/sbin/sasldblistusers

▼パスワードファイルの設定

Postfixがsasldbを利用できるようにグループに登録し、
パーミッションを変更します。

# chgrp postfix /etc/sasldb
# chmod 640 /etc/sasldb

**2)postfixの再コンパイル [#r5cab32c]

$ cd /usr/local/src/postfix-2.0.16/
$ make tidy ←注
以前にインストールしたソースディレクトリで作業を行う場合に必要です。
$ make makefiles CCARGS=”-DUSE_SASL_AUTH -I/usr/include” \
AUXLIBS=”-L/usr/lib -lsasl”
$ make
$ su
# make install

▼main.cfの編集

変更箇所は以下の項目
main.cfの最後のあたりへ追記する。

# Other configurable parameters.
smtpd_sasl_auth_enable = yes ←SMTP Authの利用を許可する
smtpd_sasl_local_domain = $mydomain ←SMTP認証するlocal domainの指定。
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,\
check_relay_domains, reject
smtpd_sasl_security_options = noanonymous ←anonymous接続を拒否する
broken_sasl_auth_clients = yes ←OutlookExpressから利用する

※注意
 mynetworkディレクティブによって認証なしで送信を許可するネットワークを
 指定する。
 社内のIPが指定されていることを必ず確認すること。

▼main.cfの書式チェック

書式チェック
# postfix check
エラーがなければ、プロンプトが戻ってくる。

▼postfix再起動
# postfix start あるいは reload

**3)送受信確認 [#q3f46ef9]

コンパイルに成功したら、コマンドプロンプトから
telnetでポートを指定して確認する。

$ telnet localhost 25 <-- 入力し、エンター Trying 127.0.0.1... Connected to localhost. 220 example ESMTP Postfix EHLO localhost <-- EHLO localhostと入力 250-mail.example.com 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 <-- この行があればOK※ 250 8BITMIME QUIT <-- 確認できたので、QUITコマンドで切断します ※上記と同じメッセージが出力されない場合は  saslの認証に失敗しているので、saslのパスワード登録をやり直し!! ''【AUTH PLAINが出ない場合の対処法】'' 参照元にさせてもらいました↓ [[http://www.kobitosan.net/postfix/ML/arc.3/msg00641.html]] 以下の2つの対処法のうちどちらか、あるいは両方をためして 再度telnetで出力結果を確認。 ***対処1: [#k90eb0ea]  postconfをたたいて、smtpd_sasl_security_optionsが''noplaintext''に  なっているか確認。  ※postconfは、main.cfを読み込んでコンフィグを一覧するコマンド。 [root@example postfix]# postconf | grep smtpd_sasl_security_options smtpd_sasl_security_options = noplaintext, noanonymous [root@example postfix]# この場合、smtpd_sasl_security_optionsからnoplaintextを削除する。 [root@example postfix]# postconf -e smtpd_sasl_security_option=noanonymous とし、noanonymousだけを指定する。 再度確認して消えていればOK。 [root@example postfix]# postconf | grep smtpd_sasl_security_options smtpd_sasl_security_options = noanonymous [root@example postfix]# ***対処2: [#y62edc22]   smtpd.confにmech_list: GSSAPI DIGEST-MD5 CRAM-MD5   と手動設定されていないか     この場合は/usr/lib/sasl/smtpd.confを以下のように編集すればOK。 pwcheck_method:sasldb mech_list: LOGIN PLAIN GSSAPI DIGEST-MD5 CRAM-MD5 設定が完了したら、出力確認 [root@example postfix]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.example.com ESMTP Postfix EHLO localhost ←リクエストを入力 250-mail.example.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI ←出力されました! 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI ←出力されました! 250 8BITMIME QUIT ←ログアウト 221 Bye Connection closed by foreign host. [root@example postfix]# ちなみにまだ本運用を開始していないので このページも完全ではありません。 [/pukiwiki]

-GNU/Linux, infra, MAIL, postfix

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

nagios​/plugin​/SNMP​/mem監視

  [pukiwiki] *snmpでのメモリ監視(物理メモリ、仮想メモリ) [#h1ad6570] メモリの監視用プラグインは軒並みRAMとSwapのステータスを同時に取得するタイプばかりで RAM …

no image

LinkStation rootアカウントのリセットとtelnetログイン

職場のLinkStationが不調になったとの連絡があり、フォルダにアクセスできなくなったり、起動してしばらくするとエクスプローラーからの応答が無くなったり、管理画面へのアクセスもタイムアウトする始末 …

no image

[メモ]FreeBSDでsendmail→postfixへの切り替え

[pukiwiki] FreeBSDでのsendmail→postfix切り替えの作業ログ。 お客さんの会社で、長らく管理人不在のまま使用していたFreeBSDのWebサーバーでハードウェア障害が起き …

RTX1200 事前共有キー/pre-shared-key で使用できる文字列について

  RTX1200へVPNクライアントソフト(YMS-VPN7)を使用してのIPsec接続のセットアップに際して 共有キーの文字列を乱数で生成してtextで登録し、接続テストをしたところ認証失敗のメッ …

no image

script/曜日の判定(if文とdateオプション)

曜日を判定する勉強用スクリプト。 dateコマンドのオプション”%u”で曜日を数値で出力し、あらかじめ決めた曜日に合致するか否かで メッセージを切り替える。 デフォルト曜日は日 …

宅麺