なにかとややこしい、sendmailなので、eximやpostfixが使われることが多くなったが、ここは、こだわって、古典的なsendmail派なんだよねぇ~ってぇな御人も、やはり、sendmail.cfを手動で設定するなどの無謀はしないので、そういう場合の簡単な設定方法を書いておく。
# yum install sendmail # yum install sendmail-cf
これでsendmailのインストールが出来るのであとは、sendmail.mcを編集する。
DAEMON_OPTIONの変更 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl DAEMON_OPTIONS(`Port=smtp, Name=MTA’)dnl
この行は、Addr=127.0.0.1からのメールのみを受け付けるという設定で、これを外しておくか、この行全体をコメントアウトするかしないと、メールを受け付けることができなくなる。 ここでは、Addr=127.0.0.1を外す設定とします。
同様にsubmisshonでも、メールを受け付ける必要がある場合には、以下を同様に変更しておきます。
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea’)dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea’)dnl
初期値ではコメントアウトされているので、行の最初にある dnlを消します。 とりあえず、変更点はこれだけで問題ないのですが、後は、適宜に好みに合わせて設定します。
セキュリティー面では、デフォルト の “/etc/mail/sendmail.mc” では、 FEATURE(`accept_unresolvable_domains’)dnl 「名前解決できない MTA からのメールの受け入れを許可する。」 という設定になっています。 大抵の場合は、問題ないですが、偽装サーバーからのメールを受け付けないようにするためには、この行をコメントアウトしておきます。
dnl FEATURE(`accept_unresolvable_domains’)dnl
この設定を行うことで、スパムメールを減らす効果があるとされています。 特に理由がなければ、コメントアウトしておきましょう。
define(`confMAX_MESSAGE_SIZE’,`10000000′)dnl
この行は初期状態では記載されていませんので、新たに書き足しておきます。 例は、10MBとした場合の設定です。(単位はバイトです。) 商用のメールサーバーでは、概ね5MB~50MBとなっているものが多いですが、20MB程度が妥当なのではないでしょうか。
define(`confMAX_RCPTS_PER_MESSAGE’, `100′)dnl
MUA は普通、大勢の相手に同じ内容のメールを一度に送信する機能を持っています。 この数は多くても100件を超えることは無いでしょうから、通常は50~100で問題ないと思います。
define(`confSMTP_LOGIN_MSG’, `$j Security; $b’)
define(`confRECEIVED_HEADER’, `$?sfrom $s $.$?_($?s$|from $.$_) $.$?{auth_type}(authenticated) by $j (SMTP Server)$?r with $r$. id $i$?u for $u; $|; $.$b’)dnl
黙っていると、メールヘッダーにバージョンが表示されるので、これを隠蔽しておきます。 ここらへんは好み次第で適宜。
筆者の場合は、メールヘッダーにクライアントアドレスが表示されるのが嫌なので、sendmail.cfを直接編集して、該当箇所を、以下のように置き換えています。
[オリジナル] HReceived: $?sfrom $s $.$?_($?s$|from $.$_) --> SMTP $.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.) -->削除 $.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version} --> (SMTP Server) (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u for $u; $|; $.$b [変更後] HReceived: $?sfrom SMTP $.by $j (SMTP Server)$?r with $r$. id $i$?{tls_version} (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u for $u; $|; $.$b
これを実施しておくと、メールが発信された場所の特定が難しくなるので、例えば、このメール旅行先から出されたものだよね。とか言われなくて済む。
一応、ここまで出来たなら、/etc/mailへ移動して、makeを発行して完了。
# cd /etc/mail # make
次回以降もsendmailが起動できるようにserviceに登録しておく。
# chkconfig sendmail on
後は、メールが受信出来るように、local-host-namesにサーバーのホスト名か、ドメインを書き込んだら終わり。
# vi /etc/mail/local-host-names myhost.mydomain.tld :wq!
sendmailがMTAではなかった場合の変更は、以下のようにする。
# alternatives --config mta 2 プログラムがあり 'mta' を提供します。 選択 コマンド ----------------------------------------------- 1 /usr/sbin/sendmail.exim *+ 2 /usr/sbin/sendmail.sendmail Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
上記の場合、exemとsendmailが入っている場合の例。 番号を選んで、ENTERで設定が終わる。
SMTPサーバーとして利用したい場合には、SMTP AUTHの有効化を行うのですが、他に送信用サーバーを持っている場合位は、以下の設定は不要ですが、せっかくだから、SMTPサーバーを作りたいと言う場合には、以下の設定を合わせて実施します。
sasl承認には以下のパッケージが必要になりますので、入っていない場合には、yumでインストールします。
# rpm -qa |grep cyrus-sasl cyrus-sasl-xxxxxxx cyrus-sasl-md5-xxxxxxx cyrus-sasl-lib-xxxxxxx cyrus-sasl-devel-xxxxxxx cyrus-sasl-plain-xxxxxxx
yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-md5
インストールが完了したら、sendmail.mcを編集し、SMTP AUTHを有効にします。
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
一行目は認証許可の仕組みに関する指定、二行目はSendmailが利用する認証方法の指定となります。 記述には暗号化認証などの不必要なものも含まれますが、cyrus-saslで有効にしていない認証方法は実質的に動作しませんのでそのままで構いません。
ここまで設定すれば、587番ポートなどを通じてPLAIN承認が出来ますが、以下の行を有効化すると暗号化承認が可能になるので、sendmail.pemを予め作っておけば、465番ポート(SSL/TLS)による承認が可能になるので、587番ポートを開けたくない場合には設定しておくと良いでしょう。
define(`confCACERT_PATH’, `/etc/pki/tls/certs’)dnl define(`confCACERT’, `/etc/pki/tls/certs/sendmail.pem’)dnl define(`confSERVER_CERT’, `/etc/pki/tls/certs/sendmail.pem’)dnl define(`confSERVER_KEY’, `/etc/pki/tls/certs/sendmail.pem’)dnl
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s’)dnl
SMTP AUTHの設定を行っておくと、適宜、メールクライアントから、SMTPサーバーを利用できるようになりますので、Privateユースで秘匿性が保てるので1つ作っておいても良いでしょう。
WP SuperCache 1800s –> no cache Apache Backend PHP with OPCache
Site Location transfer to JPN. Server Cache Static ON:Accel X ver.1
move to New Location
sendmailの設定をサクッと済ませる方法
なにかとややこしい、sendmailなので、eximやpostfixが使われることが多くなったが、ここは、こだわって、古典的なsendmail派なんだよねぇ~ってぇな御人も、やはり、sendmail.cfを手動で設定するなどの無謀はしないので、そういう場合の簡単な設定方法を書いておく。
sendmailをインストールする
これでsendmailのインストールが出来るのであとは、sendmail.mcを編集する。
/etc/mail/sendmail.mcの編集
この行は、Addr=127.0.0.1からのメールのみを受け付けるという設定で、これを外しておくか、この行全体をコメントアウトするかしないと、メールを受け付けることができなくなる。
ここでは、Addr=127.0.0.1を外す設定とします。
同様にsubmisshonでも、メールを受け付ける必要がある場合には、以下を同様に変更しておきます。
初期値ではコメントアウトされているので、行の最初にある dnlを消します。
とりあえず、変更点はこれだけで問題ないのですが、後は、適宜に好みに合わせて設定します。
セキュリテーを改良する
セキュリティー面では、デフォルト の “/etc/mail/sendmail.mc” では、
FEATURE(`accept_unresolvable_domains’)dnl
「名前解決できない MTA からのメールの受け入れを許可する。」 という設定になっています。
大抵の場合は、問題ないですが、偽装サーバーからのメールを受け付けないようにするためには、この行をコメントアウトしておきます。
この設定を行うことで、スパムメールを減らす効果があるとされています。
特に理由がなければ、コメントアウトしておきましょう。
送信可能なメールサイズに制限を加える(追加)
この行は初期状態では記載されていませんので、新たに書き足しておきます。
例は、10MBとした場合の設定です。(単位はバイトです。)
商用のメールサーバーでは、概ね5MB~50MBとなっているものが多いですが、20MB程度が妥当なのではないでしょうか。
同時に送信できるメールコピーの上限数(追加)
MUA は普通、大勢の相手に同じ内容のメールを一度に送信する機能を持っています。
この数は多くても100件を超えることは無いでしょうから、通常は50~100で問題ないと思います。
sendmailのログイン情報にバージョンを表示させない(追加)
メールヘッダーを好みに合わせる(追加)
黙っていると、メールヘッダーにバージョンが表示されるので、これを隠蔽しておきます。
ここらへんは好み次第で適宜。
筆者の場合は、メールヘッダーにクライアントアドレスが表示されるのが嫌なので、sendmail.cfを直接編集して、該当箇所を、以下のように置き換えています。
これを実施しておくと、メールが発信された場所の特定が難しくなるので、例えば、このメール旅行先から出されたものだよね。とか言われなくて済む。
一応、ここまで出来たなら、/etc/mailへ移動して、makeを発行して完了。
次回以降もsendmailが起動できるようにserviceに登録しておく。
後は、メールが受信出来るように、local-host-namesにサーバーのホスト名か、ドメインを書き込んだら終わり。
sendmailがMTAではなかった場合の変更は、以下のようにする。
上記の場合、exemとsendmailが入っている場合の例。
番号を選んで、ENTERで設定が終わる。
SMTPサーバーとして使うには
SMTPサーバーとして利用したい場合には、SMTP AUTHの有効化を行うのですが、他に送信用サーバーを持っている場合位は、以下の設定は不要ですが、せっかくだから、SMTPサーバーを作りたいと言う場合には、以下の設定を合わせて実施します。
SMTP AUTHに必要なパッケージ
sasl承認には以下のパッケージが必要になりますので、入っていない場合には、yumでインストールします。
インストールが完了したら、sendmail.mcを編集し、SMTP AUTHを有効にします。
/etc/mail/sendmail.mc
一行目は認証許可の仕組みに関する指定、二行目はSendmailが利用する認証方法の指定となります。
記述には暗号化認証などの不必要なものも含まれますが、cyrus-saslで有効にしていない認証方法は実質的に動作しませんのでそのままで構いません。
ここまで設定すれば、587番ポートなどを通じてPLAIN承認が出来ますが、以下の行を有効化すると暗号化承認が可能になるので、sendmail.pemを予め作っておけば、465番ポート(SSL/TLS)による承認が可能になるので、587番ポートを開けたくない場合には設定しておくと良いでしょう。
SMTP AUTHの設定を行っておくと、適宜、メールクライアントから、SMTPサーバーを利用できるようになりますので、Privateユースで秘匿性が保てるので1つ作っておいても良いでしょう。