このときに,電話回線経由で他人になりすますなどして再配布の
指示を送ることがほとんどであり,広告の内容にも正しい住所を表示していなければ,
誰の行為なのかを特定することはきわめて困難です。
世の中にはspam業者を名乗る発送代行業者もあり,spam
発送用のソフトウエアも売られているそうです。
インターネットの電子メールは,中継の繰り返しにより配送するのが基本ですので,
メールサーバ,あるいはその機能を果たす電子メール配送プログラム (sendmail)
は受け入れたメールを送付先へ向けて送る機能をもっています。
従って,spam業者があなたのワークステーションへ対して中継の形で再配布の
指示を送ってくれば,そこから,最終的な配布先へ自動的に配布してしまいます。
自身から発信,または自身へ着信するメールを扱うほかに,よそから
よそへのメールも中継してしまうことが問題です。
不正に使用されたメールサーバ (*1)
は,一時的に処理負荷が増大する被害を受けるほか,
問題のメールの発信元であるという疑いをもたれる可能性があります。
受けとった人から,その組織の担当者へクレームの電子メールが送られることも少なく
ありません。
sendmail
を起動する行の先頭に
#
を付けて,無効にします。
また,現に走っている sendmail
のプロセスを kill して止めます。その後にそのコンピュータでメールを
読み書きするためには,他のコンピュータをメールサーバとして,
POP対応のメールツールにより利用します。
/etc/init.d/sendmail
や
/etc/rc
など。
sendmail
がデーモンとして動作していない時に,
sendmail
を使用してメールの送信を行うと,
相手先ホストにメール届ける事が出来ない場合には,そのメールは送信元ホストの
mail queue (*4)
へ保存されたまま,再送信されません。これを回避するために,
crontab
等より sendmail
を -q
オプション付きで
定期的に実行 (*5) すれば,mail queue
に保存されたままになっているメールを再送信する事が可能です。
と実行して,# crontab -e root
crontab
(*6)
に
と登録します (*7)。30 * * * * /usr/lib/sendmail -q >/dev/null 2>&1
sendmail
を動作させる必要は無いが送信用に sendmail
は利用したい,
しかし台数が多くすべてのマシンで sendmail
の入れ替えと設定を
するのは面倒,という場合にお薦めです。
/var/spool/mqueue
。
cron
デーモンが扱うテーブル。
crontab -e
を実行すると,エディタによりこのテーブルが編集出来ます。
sendmail
はフルパスで記述する必要があります。
システムにより sendmail
の置かれている場所が異なるので
御注意ください。
gcc
を使用する
ケースについて,DB のインストール方法と併せて説明します
(*9)。
sendmail
や DB のソース・アーカイブを入手します。
たとえば,以下の場所から入手できます。
ftp://ftp.topic.ad.jp/pub/net/sendmail/sendmail.8.9.1.tar.gz以下の説明では,
ftp://ftp.topic.ad.jp/pub/net/db/db-2.4.14.tar.gz
/usr/local/src
へ置いたものとします。
db-2.4.14
というディレクトリが作られます。
次に,作業用のディレクトリへ移ります(*10)。% cd /usr/local/src % gzip -dc db-2.4.14.tar.gz | tar xvf - % cd db-2.4.14
引き続き% cd build.unix
../dist/configure
を実行しますが,
その前に,コンパイラとして gcc
を使用するために,環境変数 CC
へ gcc
を設定します
(*11)。
あとは DB ライブラリを構築し,% setenv CC gcc; ../dist/configure … (csh 系) % CC=gcc ../dist/configure … (sh 系)
root
権限でインストールして完了です。
デフォルトでのインストール先は /usr/local
以下の各サブディレクトリです。
% make % su # make install # exit
sendmail
のソース・アーカイブを展開します。
sendmail-8.9.1
というディレクトリが作られます。
システム毎のデフォルト設定に加えて 独自の設定を行いたい場合には% cd /usr/local/src % gzip -dc sendmail.8.9.1.tar.gz | tar xvf - % cd sendmail-8.9.1
BuildTools/README
と
BuildTools/Site/README
を参考に,
BuildTools/Site/
に設定ファイルを作成します。DB を使用するため,
confMAPDEF
の定義から -DNDBM
を削除して独自の設定を
作ります (*12)。
今回は以下の内容で BuildTools/Site/site.config.m4
を作成しました。
次にdefine(`confLIBDIRS', `-L/usr/local/lib') define(`confMAPDEF', `-DNIS -DNISPLUS -DMAP_REGEX')
sendmail
を構築します。
以上のコマンドを実行すると,% cd src % Build
src
ディレクトリに
obj
で始まる名前のディレクトリが作られ,その中に
sendmail
が作成されます (*13)。
groff
がインストールされていなければ,
オンライン・マニュアルの組版時にエラーが発生しますが,
無視しても構いません。
続いてインストールします。% su # mv /usr/lib/sendmail /usr/lib/sendmail,orig # mv /etc/mail/sendmail.hf /etc/mail/sendmail_orig.hf # mv /etc/mail/sendmail.st /etc/mail/sendmail_orig.st # mv /usr/share/man/man8/sendmail.8 \ /usr/share/man/man8/sendmail_orig.8 # mv /usr/share/man/man5/aliases.5 \ /usr/share/man/man5/aliases_orig.5 # mv /usr/share/man/man1/mailq.1 /usr/share/man/man1/mailq_orig.1 # mv /usr/share/man/man1/newaliases.1 \ /usr/share/man/man1/newaliases_orig.1
メールスプールなどのディレクトリのパーミションを変更します。 sendmail.cf など設定ファイルのあるディレクトリ,mail spool の ディレクトリと,/ からそこまでの途中のディレクトリについて, root 以外が書き換えできないように設定する必要があります (*15)。# cd obj.SunOS.5.5.1.sun4 # make install
これで,sendmailの入れ替えが完了です(*16)。# chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue # chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue # exit
/etc/aliases
を変更してその内容を反映させる場合に,sendmail
自体を再起動する必要がありますが,データベース・ライブラリを組み込んであれば
newaliases
コマンドを実行することで反映されます。
最近の版では,データベース・ライブとして DBM や GDBM ではなく,DB
の使用が強く推奨されており,かつ sendmail-8.9.0 からは DB の版も 2.x が
前提となっています。
build.solaris2.5.1
など) を build.unix
と同じレベルに確保して,移ります。
cc
を使う場合には,環境変数 CC
の設定は不要です。
BuildTools/OS/
os-name
に記述があります。
obj.SunOS.5.5.1.sun4
。}
/usr/lib/sendmail
,
/usr/lib/sendmail.hf
,/etc/sendmail.st
,
/usr/share/man/cat?/*.?
。
sendmail
の動作は sendmail.cf
というファイルで設定しますが,
このファイルは慣れない方々には複雑で扱い難いものです。そこで,TAINS
内で配布されているお薦め版 sendmail.cf
の入手方法と改造方法について説明します。
sendmail.cf
を作成する場合には,
CF というツールが良く使われています。これを用いた方法は,付録で説明します。
che.tohoku.ac.jp
が表示されますが,
後で書き換えて使いますので,ご自分のドメインに読み替えて選択してください。
「東北大学学内のホスト用の中継制限を行なう。」を選択すれば,
TAINS 内で最低限の中継制限を設定した sendmail.cf
を入手することができます。
下の部分に「結果」が現れて,該当するお薦め版http://www.che.tohoku.ac.jp/cgi-bin/cfindex.cgi?relay=tains
sendmail.cf
と生成に使用した CF 用定義ファイルへのリンク,
sendmail.cf
の修正箇所が示されます。
sendmail.cf
などの名前で保存します
(*17)。
という部分の ``# address which should be accepted #FZ/etc/sendmail.aa CZ mail.che.tohoku.ac.jp
mail.che.tohoku.ac.jp
'' という部分を御自身の
メールドメインで書換えます。さらに,
という部分も同様に書換えてください。# default from-address (can be $j, $m or another generic address) DSmail.che.tohoku.ac.jp
sendmail.cf
を所定のディレクトリに移します
(*19)。
以上で,入れ替えが済みました。% su # mv /etc/mail/sendmail.cf /etc/mail/sendmail_orig.cf # mv sendmail.cf /etc/mail/sendmail.cf # exit
sendmail
デーモンを
再起動してください。
sendmail.cf
の修正箇所については割愛させていただきます。
sendmail.cf
としています。
システムの種類により,移すべきディレクトリの所在が変わります。たとえば,
/etc/sendmail.cf
。
メールの中継制限を確認したいメールサーバの FQDN(Fully Qualified Domain Name; 例えば hostname.domainame.tohoku.ac.jp) を入力し,[実行]ボタンを クリックしてください。http://www.topic.ad.jp/cgi-bin/rlytest.cgi
実行結果 : メールの中継は拒否されました。 実行結果 : メールの中継は許可されました。
sendmail.cf
の中に以下の行があり,sendmail.cf
を使用するホストを,SMTP サーバや中継ホストとして指定しているホストの範囲を
指定します。
IP アドレスを列挙したファイルを指定する場合には,この部分に# CONFIG: acceptable (no further checking) clients C{LocalIP} 127.0.0.1 C{LocalIP} 130.34 10 172.16 172.17 172.18 172.19 172.20 ..... C{LocalDom} localhost C{LocalDom} tohoku.ac.jp
という行を追加します。また,ドメイン名を列挙したファイルを指定する場合には,F{LocalIP} ファイル名
を追加してください。F{LocalDom} ファイル名
sendmail.cf
中で指定する場合には,
表 1 を参考に,それぞれ3行目と5行目を修正します。
いずれかの条件を満たす場合には無条件に中継を許可するので御注意ください。
指定内容 │適用範囲
━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━
130.34 │ 130.34.*.*
'130.34.78 130.34.79' │ 130.34.78.*, 130.34.79.*
tohoku.ac.jp │ *.tohoku.ac.jp
'che.tohoku.ac.jp cc.tohoku.ac.jp'│ *.che.tohoku.ac.jp, *.cc.tohoku.ac.jp
この部分では,このホストで扱うべき宛先アドレスの範囲を限定しています。 もしもメールアドレスの範囲を記述した外部ファイルを指定するのであれば,# CONFIG: acceptable destination addresses C{AcceptDom} tohoku.ac.jp
という行を追加してください。F{AcceptDom} ファイル名
sendmail.cf
内でドメイン名を指定する
場合には,この部分の2行目を変更します。
という部分で# CONFIG: list of spammers/spamming domains to be rejected Kspamlist null -m -a@rej@ -o /etc/sendmail.spamlist
/etc/sendmail.spamlist
と定義されています。別のファ
イル名を利用する場合にはこの部分を変更してください。
sendmail.cf
を生成するためのツールとサンプルファイルにより構成されたパッケージです。
以下のサイトから入手しましょう。
ftp://ftp.topic.ad.jp/pub/net/CF/正式リリース版の最新は
CF-3.6W.tar.gz
ですが,sendmail-8.9.1
を使用する場合には CF-3.7Wpre.tar.gz
以降のものを入手してください。
CFの利用にあたっては sed
か perl
がインストールされている必要があり,perl
を利用した方が処理速度が向上します。
sendmail.cf
をそのまま使って
``不正転送を防止するための速攻修正方法''が,CF-3.7Wpre4.tar.gz
に含まれている docs/MANUAL.jpn
に示されています。
sendmail.cf
を新たに作る手間がかからず,簡単ですのでお勧めです。
CF-3.7Wpre4.tar.gz
の使用を前提とします。パッケージを
入手して適当なディレクトリに置き,以下の手順で展開してください。
% gzip -dc CF-3.7Wpre4.tar.gz | tar xvf - % cd CF-3.7Wpre4
perl
のコマンド名が perl
以外の場合には,Makefile
中の PERL
変数へ設定します。もしもコマンドサーチパス中に perl
が見付からない場合には,sed
を使用する様に設定されます。
Tools
以下に
sendmail.cf
作成ツールが生成されます。
% make cleantools % make tools
Standards/
以下に標準定義ファイルが用意されて
いるので,使用する sendmail
のバージョンに合ったファイルを
sendmail.def
としてコピーし,編集します。
定義ファイル内では% cp Standards/sendmail-v7 sendmail.def
(sendmail-8.8.x の場合)% cp Standards/sendmail-v8 sendmail.def
(sendmail-8.9.x の場合)
#
で始まる行がコメント行となり,
標準定義ファイル内で #
一個で始まる行がデフォルトの定義を意味します。また
#
二個で始まる行を有効にしたい場合には,#
を二個とも削除する必要があります。
doc/INTRO.jpn
や docs/MANUAL.jpn
を参考に様々な設定を行っても良いでしょう。
sendmail.cf
を作成する場合でも31行目先頭の
#
を削除して OS_TYPE
を有効とし,
Master/OSTYPE/
ディレクトリにあるファイルの中から,
使用するシステムに該当するものを選択して記述する
(例 : OS_TYPE=bsd4.4
) 必要があります。なお,FreeBSD や
NetBSD,OpenBSD の場合には bsd4.4
を記述してください。
sendmail.cf
を使用するホストの FQDN(Fully Qualified
Domain Name; ドメイン名を含むホスト名)が foo.bar.tohoku.ac.jp
の
場合に,
hoge.tohoku.ac.jp
宛のメールを受信し,
送信時も同様のメールドメインを使用する場合には,61行目の
FROM_ADDRESS
と88行目の ACCEPT_ADDRS
を有効にし,
=
の後に hoge.tohoku.ac.jp
を記述します。
bar.tohoku.ac.jp
宛のメールを受信し,送信時も
同様のドメインを使用する場合には,62行目のFROM_ADDRESS
と84行目の ACCEPT_ADDRS
を有効にします。
sendmail
起動時にネームサーバから取得される内容です。
しかし万が一取得に失敗した場合に備え,設定した方が良いでしょう。
MY_DOMAIN
を有効とし,=
の後にホストの属するドメイン名を記述します。また40行目の MY_NAME
を有効とし,=
の後にドメイン名を除いたホスト名を記述してください。
sendmail.cf
を使用するホストを,SMTP
サーバや中継ホストとして指定しているホストの範囲を指定します。
LOCAL_HOST_IPADDR=
の後にファイル名を記述します。
sendmail.cf
の中に埋め込む場合には,
736行目(sendmail-8.8.x では722行目)を有効にして
LOCAL_HOST_IPADDR=
の後で指定します。
なお,複数記述する場合には ''
で括ってください。
(⇒ 表 1)
LOCAL_HOST_DOMAIN=
の後にファイル名を記述します。
sendmail.cf
の中に埋め込む場合には,
738行目(sendmail-8.8.x では724行目)を有効にして
LOCAL_HOST_DOMAIN=
の後で指定します。
なお,複数記述する場合には ''
で括ってください。
(⇒ 表 1)
736行目(sendmail-8.8.x では722行目)LOCAL_HOST_IPADDR=130.34
738行目(sendmail-8.8.x では724行目)LOCAL_HOST_DOMAIN=tohoku.ac.jp
sendmail.cf
を使用するホストで扱うべき,宛先アドレスの範囲を
指定します。
ALLOW_RECIPIENT_DOMAIN=
の後にファイル名を記述します。
sendmail.cf
の中に埋め込む場合には,786
行目(sendmail-8.8.x では772行目)を有効にして
ALLOW_RECIPIENT_DOMAIN=
の後で指定します。
なお,複数記述する場合には ''
で括ってください。
(⇒ 表 1)
784行目(sendmail-8.8.x では 772行目) ALLOW_RECIPIENT_DOMAIN=tohoku.ac.jp
/etc/sendmail.spamlist
の記述方法
差出し人アドレスの条件を指定して,そのメールの受け取りを拒否することが できます。 デフォルトでは記述内容 │ 適用範囲 ━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━ user1@domain1.jp comment │ user1@domain1.jp からのメールを拒否 domain2.jp comment │ domain2.jp からのメールを拒否 123.45 comment │ 123.45.*.* からのメールを拒否 12.34.56 comment │ 12.34.56.* からのメールを拒否
/etc/sendmail.spamlist
にそのアドレスを列挙しますが,ファイル名を変更する場合には760行目
(sendmail-8.8.x では746行目)を有効とし,
SPAM_LIST=
の後にファイル名を記述してください。
comment
という部分はsendmail
の処理上,ダミーとして記述する必要がある文字列で特に意味はありません。
sendmail.cf
の作成sendmail.cf
を作成してください。
% make sendmail.cf