/usr/lib/sendmail-cf/cf/
このディレクトリにcfファイルが複数用意されています。
/usr/lib/sendmail-cf/cf/sendmail.mc
を修正してsendmail.cfを生成することにします。取り敢えずディレクトリ/usr/lib/sendmail-cf/cf 内にあるsendmail.mcをバックアップしておきます。
次にsendmail.mcを適当なエディタで開いて下さい。修正個所を以下に示します。
また環境によっては全く設定の必要のない項目も含まれています。修正の内容については後述します。
divert(-1)dnl
dnl This is the macro config file used to generate the /etc/sendmail.cf
dnl file. If you modify thei file you will have to regenerate the
dnl /etc/sendmail.cf by running this macro config through the m4
dnl preprocessor:
dnl
dnl
dnl cd /usr/lib/sendmail-cf
dnl m4 m4/cf.m4 @THIS-FILE@ > @SOMEWHERE@/sendmail.cf
dnl
dnl You will need to have the sendmail-cf package installed for this to
dnl work.
VERSIONID(`linux setup for Turbolinux')dnl
OSTYPE(`linux')dnl
DOMAIN(generic)dnl
define(`ALIAS_FILE',`/etc/mail/aliases')
define(`confDEF_USER_ID',`8:12')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',`true')dnl
define(`confDONT_PROBE_INTERFACES',`true')dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`LOCAL_MAILER_ARGS',`procmail -Y -a $h -d $u ')dnl
define(`STATUS_FILE', `/var/log/sendmail.st')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db'')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn')dnl
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
FEATURE(`redirect')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`local_procmail')dnl
FEATURE(`access_db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`nocanonify',`canonify_hosts')dnl
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
dnl
dnl MASQUERADE
dnl
dnl MASQUERADE_AS(`turbolinux.gr.jp')dnl
dnl MASQUERADE_DOMAIN(`otherhost1.turbolinux.gr.jp')dnl
dnl MASQUERADE_DOMAIN(`otherhost1.turbolinux.gr.jp')dnl
MASQUERADE_DOMAIN_FILE(`/etc/mail/masq-domains')dnl
dnl FEATURE(`masquerade_entire_domain')dnl
dnl FEATURE(`masquerade_envelope')dnl
dnl EXPOSED_USER(`root postmaster')dnl
dnl
dnl SMTP Auth --4.
dnl
define(`confRUN_AS_USER', `root:mail')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN GSSAPI DIGEST-MD5 CRAM-MD5 KERBEROS_V4')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN GSSAPI DIGEST-MD5 CRAM-MD5')dnl
dnl
dnl If you want to use IPv6, please remove the string "dnl" before
dnl the string "DAEMON_OPTIONS(`Name=MTA-v6 Family=inet6')"
dnl
dnl DAEMON_OPTIONS(`Name=MTA-v4 Family=inet')dnl
dnl DAEMON_OPTIONS(`Name=MTA-v6 Family=inet6')dnl
MAILER(`smtp')dnl
MAILER(`local')dnl
上記変更箇所の説明です。
FMLを利用してメーリングリストを運営していた場合に必要な変更です。FMLを利用していなければ変更の必要ありません。 このサイトで紹介してる Sendmail 8.9.3 を使いFMLを利用してメーリングリストサーバーを立ち上げている場合はこの設定が必要になります。二つの aliases を指定しています。
define(`ALIAS_FILE',`/etc/mail/aliases,/var/spool/ml/etc/aliases')
このsendmail.mcではsmtpコマンドに対して制御されていません。 セキュリティ上好ましくないのでコメントを外して有効にします。 この設定で抑制されるsmtpコマンドは以下の通りです。
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn')dnl
コメントを外すだけで結構です。その場合、SMTPの認証に対応したメーラでも、GSSAPI DIGEST-MD5 CRAM-MD5 KERBEROS_V4 アルゴリズムに対応していなければ接続できません。動作確認のとれているMUAに関してはSendmail公式ページに紹介されているのでそちらを参考にして下さい。
もし、NetscapeやOutlookの設定に対し平文認証を認めるのであればLOGIN PLAYNを追加しますが、STARTTLSを導入しない限り設定しないようにします。
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 KERBEROS_V4')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5')dnl
捕捉
NetscapeはLOGIN認証ですが、これらをここで有効にしなくてもSASLが標準でLOGIN認証を行うようです。LOGINを不許可にするには コンパイルオプションでこれらを有効にしたSASLをインストールする必要があります。
sendmailのバージョンアップを行いましたが、基本的に前回のsendmail.cfは利用できますので必ずバックアップをとるようにして下さい。問題が発生しても代用できる筈です。
これまではdefファイルを編集しCFによりcfファイルの生成を行いました。
# cd /var/src/CF-3.7Wpl2
# make sendmail.cf
このCFを使ってsendmail.cfを生成する方法はsendmail-8.9.3までです。 新しくサポートされた "AUTH SMTP" をサポートしたsendmail.cfファイルを生成することができないので注意して下さい。 "SMTP AUTH" に対応したsendmail.cfファイルを生成するにはM4プリプロセッサを使います。
/usr/lib/sendmail-cf/cf/sendmail.cf が生成されます。 /etc/mail/sendmail.cfと置き換えてSendmailを再起動して下さい。その際、エラーがないか確認します。
今後、sendmail.mc を編集するたびに、この手順で sendmail.cf を生成する必要があるので覚えておいて下さい。
Sendmail-8.9.3以降、仕様の追加に伴い設定ファイルのディレクトリが変更になりました。元来 sendmail.cf にあった設定が部分的に 独立した形式になっており、Spam対策も cf を再構築することなく行えます。最初はちょっと混乱しますが整理され解りやすくなった感じです。 Sendmail の設定は、難解で初心者には敬遠されていますが扱いやすくなりました。
リレーを許可、禁止するホストを指定します。 ここで許可されたホストはSMTP(送信)を無条件に許可されます。たとえ SMTP AUTHにより認証システムを指定していてもこちらが優先されます。
192.168.0. RELAY
192.168.0.1 ~ 192.168.0.244のSMTPの利用を認証なしで許可します。
変更を有効にするには
を実行し/etc/mail/access.db を更新します。
基本的にSPAM対策はここで行う設定で十分です。accessファイルに記述されていないホストからはリレーする事ができません。ただし、 "AUTH SMTP" で許可されたユーザーはこれにあたりません。 local-host-name を除く他の設定ファイルも変更を加えたら同じ手順で更新します。
いちいちsendmail.cfファイルを作り直す必要がないので従来より設定が少しばかり楽になりました。
ローカルホストネームを指定します。ここで自ドメインの指定がなければメールを受け取ることが出来ないので必ず記述します。以下の内容を記述します。
my_domain.homeip.net
mail.my_domain.homeip.net
これで一通りSMTPに関する設定は終わりました。SMTP認証を行うためには専用のアカウントが必要になります。
次は、インストールした認証システム Cyrus-SASL を使ってアカウントを作成します。