-1 - みる会図書館


検索対象: UNIX MAGAZINE 1998年11月号
254件見つかりました。

1. UNIX MAGAZINE 1998年11月号

図 2 複数のプロセスが危険領域に入る例 ( 1 ) プロセス 1 0 を読み込む 0 プロセス 2 に 切り替わる プロセス 2 ( 2 ) プロセス 1 プロセス 2 1 を書き込む 0 を読み込み、 切り替わる プロセス 1 に ( 3 ) にロック変数の値を読み込み、まだ 0 であることを石忍し て 1 を書き込むと同時に危ド頁域に突入します ( 図 2 ー 2 ) 。 こて再度フ。ロセスの切替えカ起こり、最初のプロセスが 実行されるとしましよう。この段階では、実際には変数の 値が 1 になっているのですが、プロセスはさきほど読み込 んだときの値、つまり 0 だと思って処理を続けます。変 数に 1 を書き込んで、危険領域に入ります ( 図 2 ー 3 ) 。 の段階で 2 つのプロセスが危険領域に入ってしまったわ けです。 こでの間題は、検査してから値を代入するまでのあ いだにフロセスの切替えか起きるかもしれないという点で す。これをみごとに鮹夬した Peterson のアルゴリズムと いうものがあります。ここでそれを紹介しておくことにし ましよう。 2 つのプロセスはそれぞ危ド剱頁域に入りたいことを 示すのに begin-critical を呼び出し、危険領域から出る ときには end-critical を呼び出します。このときの引数 は自分を示すプロセス番号 ( 0 か 1 ) で、外部変数はプロ セスが共有する変数です。 int interested[2] ; int turn ; void begin—critical(int int other ; other 1 ー proc; interested[proc] turn = proc; proc) while (turn proc & & interested[other] ) VOid end—critical(int proc) interested [proc] 118 プロセス 1 ↓ 1 を書き込む 共有配列変数 interested の中身は、初期値として 0 が 入っています。 プロセス 0 が危険領域に入ろうとする場合を考えます。 このとき interested[()] を 1 とし、 turn を 0 として最後 の while 文を実行します。 turn は 0 ですが interested[l] は 0 のままなので、この while 文の実行は終了し、関数 自身も終了して危ド貞域に入ることができます。 この状態で、同じようにプロセス 1 も危険領域に入ろう としたとしましよう。こちらも interested[l] を 1 とし、 turn を 1 として最後の while 文を実行します。すると、 turn は 1 で、 interested[()] も 1 ですから while 文の条 負 : が成立してしまい、 while のループを繰り返すことにな ります。 このループを抜けることができるのは、プロセス 0 が危 険領域を抜けて end-critical を呼び出したときです。 のとき interested[()] に 0 を代入するため、プロセス 1 が 実行している while ループの条件が成立しなくなり、関 数を終了して危険領域に入ることができます。 もっと間題の起きそうな状況を考えてみます。 2 つのフ ロセスがはとんど同時に begin-critical を呼び出した場 合です。この場合、 interested[()] と interested [ 1 ] の両 方が 1 となっているでしよう。さらに、 turn には最後 にこの行を実行したプロセスの番号かオ褓内されているはす です。ここでは 1 としておきましよう。この状態でそれ ぞれのフロセスか最後の while を実行したと仮定します。 プロセス 0 は turn 変数の値が自分のプロセス番号とは異 なるため、 while をすぐに終了して危ド頁域へと入ってい くことができます。一方、プロセス 1 は while で足止め をくってしまいます。このアルゴリズムはたいへんよくで きていて、 2 つのプロセスがどんなタイミングで実行され たとしても、危ド頁域には 1 つのプロセスしか入らないよ 1 プロセス 2 UNIX MAGAZINE 1998.11

2. UNIX MAGAZINE 1998年11月号

連載 /FreeBSD/ ートーの 図 4 ルールセットの列 ( 3 ) F{Loca11P} /etc/mai1/Loca11P F{Re1ayTo} /etc/mai1/Re1ayTo Scheck—rcpt # first : get client addr RO 引 $ * R$={LocaIIP}$* 引 $ * # not 10Ca1 , check rcpt $ > 3 $ 2 # remove 10Ca1 part , maybe repeatedly $ : $>removelocal $ 1 # stiII something left? $#error $@ 5 . 7 . 1 $ : 550 we do not relay # remove Re1ayTo part (maybe repeatedly) R$* く@$*$={Re1ayTo}.>$* $ > 3 $ 1 $ 4 $ : $>removelocal $ > 3 $ 1 $ 3 $@ $ 1 く@$ 2 > $ 3 # dequote 10Ca1 part $ : $ > 3 $(dequote $ 1 $ ) $ : $>removelocal $ 1 く@$ 2 > $ 3 ときに、その内容とともに呼び出される。 check-mail の場合と同様に、具イ勺なルールセットの 例をみてみよう ( 図 4 ) 。 図中の /etc/mail/LocalIP はメールの中継を許可する ローカルなホスト、 /etc/mail/RelayTo は中継先として 午可するホストのリストである。 送信元ホストの実際のアドレスを朱な変数から抽出し て、ます LocalIP と照合する。ー・ - ・致するものがあれは宛 先にかかわらす受信を許可する。 一致しなかった場合、送り先から RepIyTo に登録され たアドレスやローカルのアドレスがあれは削除する。削除 できない部分か残った場合は、不正な中継としてメールの 受信を拒否する。 check-rcpt にはこのほかにもいろいろな定義があるが、 この上は交的素朴な定義と本質的な部分は変わらないと考え てよいだろう。 check ー * ははかのルールセットとは独立に機能するた こでみたような定義を既存の sendmail.cf に単純 め、 に追加するだけでもよい。また、 sendmail. cf を自重加勺に 生成する方法でも SPAM 対策を組み込むことができる。 以下ではその手順についてもみることにしよう。 " ” $&{client-addr} $ ) 引 $ 1 Ⅱ 0 client addr : directly invoked from $(dequote $@ ok $@ ok sendmail.cf を生成するフログラムとしてもっともひろ く使われているのは、 sendmail のパッケージに含まれて いる、、 cf " である。 cf というフログラムがあるわけではなく、 sendmail の パッケージを展開すると cf というディレクトリ以下に置 かれる、 sendmail.cf を生成するための m4 マクロの総 称である。サイトごとの設定を言当求した、、 . mc " ファイル を用意しておけは、 sendmail のバージョンが変わって も m4 コマンドを実行するだけて新しい sendmail 用の sendmail. cf を生成することができる。 ます、通常の sendmail. cf を生成する手順をみておこ う。 FreeBSD の場合、ごく一ヨ殳的な設疋では次のような ファイルを sendmail / 、ツケージのディレクトリ cf/cf (FreeBSD のデフォルトでは /usr/src/usr. sbin/send- mail/cf/cf) に myhost. mc として用意する。 divert(-l) VERSIONID( '@(#)myhost.mc May 19 98 ' ) OSTYPE(bsd4.4 ) dnl DOMAIN (generic)dnl MAILER(10ca1)dn1 MAILER(smtp) dnl こで、マクロ処理のための m4 コマンドを呼ぶ。 二一一卩 57 UNIX MAGAZINE 1998 ユ 1

3. UNIX MAGAZINE 1998年11月号

CAFE BABE g2d. setC010r(getForeground() ) ; textLayout. draw(g2d, 0 , 0 ) ; public void caretPositionChanged(InputMeth0dEvent event) { } public Rectang1e getTextLocation(TextHitInf0 offset) { return getBounds ( ) ; public TextHitInfo getLocationOffset(int x, int y) { return TextHitInfo .1eading(0) ; public int getlnsertPositionOffset ( ) { return 0 ; public AttributedCharacterIterator getCommittedText (int beginlndex , int endlndex , 」 ava. text. AttributedCharacterIterator. Attribute ロ attributeNames) { return (AttributedCharacterIterator)nu11 ; public int getCommittedTextLength() { return 0 ; public AttributedCharacterIterator getSe1ectedText (AttributedCharacterIterator. Attribute ロ attributeNames) { public AttributedCharacterIterator return (AttributedCharacterIterator)nu11 ; cance1LatestCommittedText (AttributedCharacterlterator. Attribute ロ attributeNames) { return (AttributedCharacterIterator)nu11 ; void mouseExited(MouseEvent e) { } void mouseEntered (MouseEvent e) { } void mouseReIeased(MouseEvent e) { } public void mousePressed(MouseEvent e) { } void mouseCIicked(MouseEvent e) { this . requestFocus() VOid keyReIeased(KeyEvent e) { } void keypressed (KeyEvent e) { } public public public public public public super("Passive C1ient l)emo") , public PassiveC1ientDemo() { class PassiveC1ientDemo extends Frame { import java. uti1. * ; import java. text . * ; lmport j ava. awt . event . * ; import 」 ava. awt. font . * ; import java. awt. * ; リスト 4 パッシプ・クライアント・コンポーネントの実装例 PassiveTextComponent component = new PassiveTextComponent ( ) ; add (component) ; public static void main(String args ロ ) { new PassiveC1ientDemo() ; Fra.me frame . setSize(300, 100 ) ; frame . setVisib1e(true) ; 114 UNIX MAGAZINE 1998.11

4. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸ知恵袋ーの 図 3 WIDE DHCP サーパーの言聢ファイル # define a g10ba1 entry which specifies the stuff every host uses . : ! snmk=255.255.255.0 : tmof = 32400 : \ global : :dnsd=sharp. co ・ jp:dnsv=10.1.1.1: # define different master entries for each subnet . = global : dhtl = 500 : dht2 = 850 : brda = 10.1.1.255 : rout = 10.1.1.1 : :tblc net01 : # entries for manual allocation (DHCP , BOOTP) : ipad=IO. 1 . 1 . 2 :tb1c=net01: clid = " 1 : 0X008098e05C89 ” : tn002 : 10 . 1 . 1 . 3 :tb1c=net01 : clid = ” 1 : 0X00C0f6b05Cd0 " : ipad= tn003 : dynamic allocation (DHCP) # entries for : ipad=10.1.1.10 : dfll = 3600 : maxl = 3600 :tblc=net01 : t Ⅱ 010 : ー 10 . 1 . 1 . 11 : dfll = 3600 : maxl = 3600 :tbIc=netOI : t Ⅱ 011 : : ipad— dynamic / automatic allocation (DHCP) # entries for =Oxffffffff : ipad=10.1.1.20 :tbIc=netOI : : maxl t Ⅱ 020 : =Oxffffffff:ipad=10.1.1.21:tb1c=net01: tn021 : :maxl automatic allocation (BOOTP) # entries fO て : ipad=10.1.1.30:a1bp=true:tb1c=net01 : t Ⅱ 030 : : ipad=10.1.1.31 : a1bp=true:tb1c=net01 : tn031 : たように、 WIDE DHCP のクライアントでは利用され 設定ファイルの詳細 ませんが、 Windows など他の DHCP クライアントて利 用されることがあります。 s k の前に、 ! " カ咐いていま コンパイル時に明示的に変史していなけれは、設疋ファ す。各キーワードの : 寬こ、、 ! " を付けると、クライアント イル名は /etc/dhcpdb. pool になります。図 3 に設疋フ カイ直を要求してこなくても強制的にサーバーからの応答に ァイルの例を示します。 挿入されるようになります。これは、 RFC2131 に以下の いきなり謎の文字列か現れて戸惑うかもしれませんが、 当があるためです。 意眛カ吩かれば簡単です。設定ファイルは行単位で記述さ かならす次の書式になっています。 The server MUST return to the client: ( 中略 ) : ん e 囮 0 = ゼ佖ん e : [ ん e 司 = ゼ佖ん e : ・ Parameters with non-default values on the label は各行を識別するためのラベルです。設疋行中で、 client's subnet 他の行を参照する際に利用します。ん囮。は DHCP で 図 3 の例では、 IP アドレスとして 10.1.1. xx を用いて 配布する情報に 1 対 1 て対応したキーワードです。 value います。通常、 10. xx. xx. xx のネットワークのサプネット はキーワードに対応した値です。たとえは、キーワードが こでは 255.255.255.0 を マスクは 255.0.0.0 ですが、 リース時間であれは、ん e には秒数を書きます。なお、 使っています。 DHCP クライアントカ墹違ってサプネッ バックスラッシュを行末に付けれは、 1 つのラベルに対す トマスクを設定しないように、強制的にサプネットマスク る設定を複数行にわたって書くことができます。 を提供しなけ川まなりません。 上から順にみていきます。 global ラベルでは、すべて net01 ラベルでは、サプネット単位の設定を記述して の配布情報に共通なキーワードを指定します。 snmk はサ います。 tblc は他の設定行の挿入です。 global ラベル プネットマスクの指定です。ここでは 255.255.255.0 を の設定を各サプネットの設定に反映させるため、 tblc を 設疋しています。 tmof は世界標寺からのオフセットを 使って引用します。曲 tl は再リースを開始するまでの時 秒で指定します。日本は 9 日罸制すれているので、 3 , 600 x 間の割合です。需 % 単位で指定します。 50 % ならば 500 32 , 400 です。 dnsd 、 dnsv はそれぞれ、 DNS の 9 になります。曲 t2 は DHCP サーバーの再探索開始ま ドメイン名と DNS サーバーの IP アドレスです。前述し = 二ロ bel : 74 UNIX MAGAZINE 1998.11

5. UNIX MAGAZINE 1998年11月号

9 , ー 第 0.1 ー ラック対応シャーシ 価格追求型 ( 2 め 4Port ¥囲 , ー æort 鞫 , ー 物を参 全。ロ 1 日 h P 日散 m Ⅱマ X 2 lr P 日血第 1 Ⅱを区 dP 日散 m Ⅱル E(I)ORAtv112a ECX)ORAM 12 旧 ( 218 ) Eæ R △ M2 旧 ( 218 ) 4t1CBX ランク対応モデルランク対応防塵・高耐久型 2 Ⅳ ( Ⅳモデ . ル有 ) X 2 NIC 10 / 18 自動言哉 V ー旧 åv XQ SCSI 352n2 SV€ ( ~ 第可 1 Ⅲ第川第ヨ Ⅲ第Ⅲ第ヨ 高耐久型シャーシ ( め 2 重原モデル有り。 マ・シリア ) レカード 10 / 18 自動言哉カード R 両モデノレ有 1 等有り。 0 0 0 & シン き対。 æort ¥ 178 , ー 団 T 蹴 B 1 田 A ~ 10 / 18S ch まで 重類を揃えます。 FD7420 と併用し、最大 8 台のサーバを制御。 2 Ⅳ X2 ( 重化 ) x 3 サーバ 外イ寸ーシャーシ ( 2 の 原 2 重モデル有り。 サーバ [ 応 2 2 SCSI LEC-CP 圧 C ヨや LEC-LC elP 日散れ 1 Ⅱ 4 マ OR 1 R 、旧 ( 21 ⑩ R 邸 / 2 ( 21 ⑩ 0 tcrM / B SM-XV P&-A 4 X 51 田上 ATA 102 田上 ATA 438 上 ATA A N Tcv ・ x 1 鄲 / A VAI 囲 ,AG) 熱旧の一 P 11 ~ ACP 旧 VKEo CDR&VriteZ><4Ræd=X8)SCSl åv X32ATAPl 35 2 rruk 2 18 、 .3 ~ ( OSta し =-Y14CID, 酊へ変更 = + Y11 , ) OS 田 16 互換カードピーカ ※ ) も表記の面格ま以外全て希望小面格となります。 資料請求 No ℃ 41 サーバ及び PC のみ直販を行っております。 お問い合わせ : ロジカルイフェクト株式会社 ん og 東京都台東区三筋 1 ー 11 ー 1 アイデアルビル Effect T 圧 .03 ー田 22 ー 33 F, ・ 03 ー 22 ー 55 Cor, 〃・ゆ / / Ⅷコ ica 厄 ffæ•t. C011 工ントリー・モデノレ Y2W,(ID D コントローラ搭載型 重化 ( ト m は (hti LEC-æ プロ・ユース向けモデル 川川ⅢⅢ社 川川ⅢⅢ ョ川ⅢⅢい ⅢⅢⅢⅡⅢ ⅡⅢⅢ川Ⅲ L. 田一圧 2 重原対応、高機能型 \ 121 , 独立型世ー / ヾ ¥ 1 ~ 前後ドアは、 ワンタッチ 取外し可 ! 15 , 41U Cåiret デスクトップ 外部仕様共通 ((RT なし )

6. UNIX MAGAZINE 1998年11月号

Daemons & Dragons— 101 リスト 2 newlog スクリプト # ! /bin/sh ARCHIVE= " OLD " if [ $ # —lt 2 ] ; then echO : newlog dir exit 1 の場合、 cron の動作はシステムに付属する syslog. conf ファイル用に設定されている。したがって、 syslog ・ conf を書き換えたときは、その設定に合わせて旧いログファ イルを置き換える方法を用意しなければならない。 そのためには、 syslog のメッセージを一定期間 ( 通常 は 4 ~ 8 週間 ) だけ残しておき、期限を過ぎたものを単 純に削除する設定にすれはよいだろう。このような処理 # calculate suffix for current 10g files は、週に 1 回ファイルを置き換え、期限を過ぎたファ suffix= ' date + % y% 迎 % d ' イルを削除することで実現できるはすだ。システムによ # move t0 specified 10g directory っては、ファイルに番号の拡張子 (syslog. 0 、 syslog. 1 、 cd $ 1 ・・・ ) を付けることにより、ファイルの古さ syslog. 2 、 shift が分かるようにしているものもある。しかし、拡張子は # iterate through each named 10g file 日付 ( sysl 。 g. 970723 など ) にしたほうが分かりやすい while [ x$ 1 ! = x ] ; do のではないだろうか。また、アーカイプを OLD などの mv —f $ 1 $ARCHIVE/$I . $suffix cp /dev/null $ 1 名前を付けたサプディレクトリに置くようにすれはファ $ 1 chmod 640 イルを参照しやすくなる。障害が発生してログを参照す shift る場合も、たくさんのアーカイプか邪魔になって原因の 究明が遅れるようなことがなくなる。 上記のような処理を考えると、任意の数のログファイ ルを任意の期間扱うことができ、しかも置き場所を指定 できるような柔車層生の高いシェル・スクリプトが欲しく なる。リスト 2 に示した newlog は、そのような機能 をもつシェル・スクリプトである。 newlog には、注目 してはしい部分がいくつかある。このスクリプトは、使 用中のログファイルをコピーするのではなく、ファイル を移動してから新しいものを作る仕組みになっている。 は、アーカイプを OLD というサプディレクトリに置く syslog は HUP シグナルを受け取るまで旧い ( 移動さ ように記述されている。これは簡単に変更できるが、コ れた ) ファイルを開いているので、この方法ならアーカ マンド行オプションて指定するように改造してもいいだ イプ作成中に記録されるログメッセージも失われない。 ろう。拡張子が日付になっているので、 newlog スクリ アーカイプの圧縮は、 syslog が HUP シグナルを受け取 プトを使って 1 日に 2 回以 . E アーカイプを作成するこ って出力ファイルを切り替えたあとでおこなわれる。な とはできない。しかし、拡張子に日付だけでなく時刻も お、このスクリプトは date コマンドが文字列のフォー 用いるように改造すれは、 1 日に何回でもログファイル マットを指定できることを想定している。また、旧い口 を置き換えることができる。 グファイルを削除するようには書かれていない。 newlog newlog を使用するための crontab の例をリスト 3 に スクリプトがファイルを削除するように書き直す方法も 示す。 1 行目ではいくつかのログファイルを週に 1 回置 あるが、升 nd を使って削除するような単純なスクリプト き換え、 2 行目では mail のログファイルを 1 日に 1 回 を別に用意してもいいだろう。 置き換えている。最後の行では、 3 週間以十経ったログ newlog の 1 番目の引数には、ログファイルが置か のアーカイプをすべて削除している。 れているディレクトリを指定する。続く引数には、アー カイプにするファイルを列挙していく。このスクリプト done # tickle syslog t0 get it tO use the new # 10g files kill ー 1 'cat /etc/syslog ・ pid' # wait for syslog tO switch over sleep 5 # now compress the freshly archived logs compress $ARCHIVE/* . $suffix 101 UNIX MAGAZINE 1998.11

7. UNIX MAGAZINE 1998年11月号

Microsoft' BackOffice@ 何がニュースなんだ。 づゥを 0 低いコストで、高い投資利率 ( ROI) を実現。 従来型のメールから移行することで 1 人あたり年間 $ 2 , 393 もの利益をもたらします 米国の調査会社℃ iga lnformation Group' は、 cc : Ma ⅱなどの従来型のメール環境 から Exchange Server の環境に移行することにより、どれだけの TEI ( To ね 1 Economic lmpact 経済的影響の総計 ) が生じるかを調査し発表しました。※ 1 これによると、 Exchange Se Ⅳ er に移行することにより最初の 1 年だけでユーザー 1 人あたり 2 , 393 ドル もの利益につながることがわかりました。 ※ 1 : 詳細な調査結果は http ・ //www.microsoft.com/presspass/press/1998/Sept98/EXMECpr.htm をご覧ください。 Exchange の全世界での販売数、 2 期連続第 1 位。 ザー数は全世界で 1 , 600 万人に達しています いマーケットシェアを獲得しましたま 2 ユー で Notes の販売数を大きく上まわり、高 販売し、第一四半期につづいて 2 期連続 Exchange Se Ⅳ er は 360 万ユーザーを L0tus N0tes は 310 万ユーザーに対し ると、今年の 4 月 ~ 6 月第二四半期は Reports lnternational の調査によ 米国の調査会社 Telecommunications Exchange Se Ⅳ e 「のユーサー数は、全世界で 1 , 600 万人に 「 EMMS : Sept4, 98 」 第 1 期第 2 期第 3 期第 4 期第 1 期第 2 期第 3 期第 4 期第 1 期第 2 期 96 年 96 年 96 年 96 年 97 年 97 年 97 年 97 年 98 年 98 年 0 2 4 6 8 10 12 14 16 全世界でのユーサー数 ( 単位 : 百万 ) 18 います※ 3 この調査によると、 Exchange を のメッセージングシステムとして使用して 29 社が Exchange Se Ⅳ er を全社規模 が選ぶ全米のトップ企業 50 社のうち、一 L0tusN0tes24% ExchangeServer&()thers6% 代表的な米国のビジネス誌「 Fortune 」 29 社が Exchange を選択。 フォーチュンのトップ 50 社のうち、 ※ 2 : 「全世界で 1 , 所ユーザー、年第二四半期では〔 3 聞万対 310 万〕で N 確 s を凌駕。」 h叩://“晴既m断0純化C0mなXCh加ge な ommunity/fortuneoasp の、トし、しでユ・ - す一 を豊。ルな第ト、 050 選択した企業は、航空会社 / 銀行 / コン ピュータ会社 / エレクトロニクス関連会社 / 食品会社 / 保険会社 / 商社 / 自動車会社 / 石油会社 / 電気通信関連会社 / たばこ 会社 / セキュリティ関連会社などさまざま な業種に及んでいます Exchange Server 52 % ℃ omorateEmailSystemswithinFortune50Corporations: Current Standards and Future Deployment Plans", July 1 的 8 コ 1 肥 Radic Group,Inc ※ 3 : 「 Fortune 50 社のうちで Ex 曲 an が圧倒的シェアー位」 http://mvw.microsoft.com/exchange/community/fortune50.asp ※ 1 、 2 、 3 に関するマイクロソフト株式会社のニュースリリース ( 日本語 ) は、 h叩:〃wnw響.a山.microso.com/ja国ⅳi雨/「el物陸、/個10歓ch.h血でご覧になれます ・製品に関するお問い合わせ / カタログのご請求は : カスタマーインフォメーションセンタ 電話東京 ( 03 ) 5454-2300 大阪 ( 06 ) 245-6995 ・ Exchange Se Ⅳ e 「のさらに詳しい情報をインターネットでご覧ください。 http: ″ www.asia.microsoft.com/japan/bkoffice/exchang

8. UNIX MAGAZINE 1998年11月号

トーの 連載 /FreeBSD/— 図 2 ルールセット列 ( 1 ) F{SpamDomains} /etc/mai1/SpamDomains F{Spammer} /etc/mai1/Spammer Scheck_mai1 R く $={spammer}> R く $={Spammer}. > R$* く@$={SpamDomains}.>$* R$* く@$={SpamDomains}>$* 図 3 ルールセット列 ( 2 ) Scheck_mai1 $#error $ 5 .7 . 1 $ : $#error $ 5 .7 $#error $ 5 . 7 . 1 $ : $#error $@ 5 . 7 . 1 $ : " 550 ” 550 We ” 550 " 550 We We We don' t don't don' t don' t accept accept accept accept j unk J unk from mail from domain' $ : $ 1 引 $(dequote ー # check IP in Pau1 Vixie's MAPS RBL $&{client-addr} $ ) $ : $ 1 引 $ 2 $>check-rbl $ 2 $ : $ 1 引 $ 2 $>check-orbs $ 2 $ : $ 1 引 $ 2 $#error $@ 5 . 7.1. $ : ” 550 MaiI refused, see http://maps.vix.com/rbl/" R$ + 引 $* . com. # check in dorkslayer ) s RBL R$ + 引 $*OK # remove the OK # remove OK R$ + 引 $*OK Scheck_rb1 # lookup an Scheck_orbs # lookup an $#error $@ 5.7.1. $ : " 550 Mai1 refused, see http: //www.dorkslayers . com/orbs/" $ : $ 1 引 $ 2 $ : $(host $4.$3.$2.$1. orbs . dorkslayers ・ com $:OK $ ) ip address in dorkslayer ' s Open Re1ay B10cking System $ : $ (host $ 4. $ 3 . $ 2. $ 1 . rbl ・ maps ・ vix. com $ : OK $ ) ip address in the Rea1time Blackh01e List . SPAM ではこういった情報はほは間違いなく偽装されて は着信を拒否されることになる。 RBL も同様の方法でプ して適当な IP アドレスが返ってくる。この場合、メール なけれは照合は失敗する。イ求されていると、照合は成功 解決を DNS で試みる。プラックリストに登録されてい 97.114 なら 114.97.160.210.orbs.dorkslayers.com の ORBS の場合、たとえば相手のアドレスが 210.160. 工夫がある。 メールの着信を拒否する。この照合のところにおもしろい ぞれのプラックリストと照合して、登録されていた場合は 図 3 のルールセットでは、送信元の IP アドレスをそれ ルを配信するサイトのプラックリストを提供している。 こともできる ( 図 3 ) 。これらのサイトでは、 SPAM メー 別の方法として、 ORBS や MAPS RBL を利用する きない。 いるので、これではそのようなメールはとらえることがで 56 ラックリストを参照することかできる。 こういった照合方法ではメール着信のたびに DNS を参 照するため、そのぶんのトラフィックが生しることに注意 こういったプラックリストを利用する際は、その趣旨や運 営方針、具イ勺な運営の内容をきちんと理解して、自分のサイ トの運営責任者やユーサーの合意を得ておくことが必要だろう。 なお、私自身は自分の運営するサイトでプラックリストによる 着イ幇巨否はおこなっていない。このようなシステムは、たしか に SPAM への牽制にはなると思う。しかし、こういった系目織 の信頼性についての疑問や翡枚があったときの副作用の大きさ とくらべて、実効性は薄いと考えるからである。 次に、 check-rcpt をみてみよう。これも check-mail と同しく、 SMTP 経山でメールを受け取る際に呼び出さ れる。 check-rcpt は、 MAIL コマンドの次の RCPT コ マンド ( メールの受取人のアドレスを指定する ) を受けた UNIX MAGAZINE 1998.11

9. UNIX MAGAZINE 1998年11月号

連載 / 倉敷芸術科学大学のネットワーク構築ーの 図 5 CF のキットの展開 # tar xvf CF—3.7Wpre7. tar blocksize 256 x CF—3.7Wpre7/ x CF—3.7Wpre7/Copyright , 664 bytes , 2 tape blocks x CF—3.7Wpre7/ChangeLog, 32283 bytes , 64 tape blocks 図 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 7 28 29 30 31 32 33 34 35 36 37 38 sendmail.def ファイル ( 倉敷芸科大での言聢部分 ) CF_TYPE=R8V8 VERSION=3.7W VERSION_SEPARATOR= , / , LOCAL_VERSION=' KUSA-I . 11 ' OS TYPE=osf 1 MX_SENDMAIL=yes MY_DOMAIN=kusa. ac ・ JP MY_NAME=mai1gate MY_ALIAS=ms01 ACCEPT_ADDRS= 'kusa. ac ・ jp ckp ・ or ・ jp ACCEPT_LOWER=yes LOWER_MATCH_ STYLE= any LOWER_NAMES= ' soft chem arts 1as hq libs www po ' ACCEPT_BESTMX=no BESTMX_DOMAINS=a11 SPECIAL_FROM= ' ckp. or ・ jp SPECIAL_USERS= ' /etc/sendmail. specialusers ' SPECIAL_FROM_REWRITE=yes SECONDARY_DOMAIN= ' ckp. or ・ jp ' SECONDARY_USERS=/var/adm/sendmai1/sendmai1. specialusers USE_SECONDARY_DOMAIN_FROM=yes BITNET=auto ALIAS_FILE_PATH= ' /var/adm/sendmail/aliases ' ERROR_MSG_FILE_PATH= ' /var/adm/sendmail/sendmail . oE' HELP_FILE_PATH= ' /var/adm/sendmail/sendmail . hf ) CHECK_ALIASES=' Fa1se ' LOCAL_HOST_IPADDR=/var/adm/sendmai1/sendmai1. aip LOCAL_HOST_DOMAIN=kusa. ac . jp ALLOW_RECIPIENT_DOMAIN=/var/adm/sendmai1/sendmai1. aa sendmail.aa で、ユーサー名は sendmail.specialusers て指定しています。もちろん、 sendmail.def でもそのた めの設定を j 助日します ( 図 6 の 14 行目以降 ) 。 最近、メールサーバーの中継機能を悪用して SPAM メールを配送する不逞の輩か読出しています。 sendmail がメールの中継を受け付ける IP アドレスやドメイン を CF てオ旨定して (LOCAL-HOST-IPADDR や LO- CAL-HOST-DOMAIN など ) 、これらに対処していま す ( 36 行目以降 ) 。 92 sendmail.cf ファイルはいとも簡単に作成できます ( 図 8 ) 。 CF を展開しているディレクトリで、 sendmail.cf フ ァイルを引数に指定して make コマンドを実行します。作 成された sendmail.cf ファイルを、 /etc や /var/adm/ sendmail ディレクトリなど、 sendmail て参照する場所 にコピーすればできあがりです。 sendmail. cf での成疋内容は、 sendmail の起重加芋に 、し み込まれます。 sendmail.cf ファイルを新しく作成したり 修正した場合には、 sendmail を再起動する必要がありま UNIX MAGAZINE 1998.11

10. UNIX MAGAZINE 1998年11月号

, けつま 3 びっ u 図 2 xvidtune 当 : 能 4 VS E : 603 日一 0 を 01 : 加 24 V ー 0 を 0 6 門 国 [ ] [ を司匠 ] れ 1 R をい USE 脈 THIS PR 簡 ( 簡 P ー R 瀬一ー Y 価Ⅱ 司画司區司ヨ ーレれ 0 「 0. 難 Y()J 催 [ 劇一望厭 E 盟第一盟 : 興ー版町一「日 - 司 [ ] 區司 日第望を 1 E お P 費 OV Ⅱ羅 0 ・第、店“ . ー料員編催ハ・催灯 , EXPRfSS 物ー」 EO. INCi&IW Ⅱーし川一 0 間一当新を 5 ー第知コ物旧 .i ー Y. ドⅡ SS ド円ー . 円 PO ー開ー環ー粁一杯走 N ー 感 E 、 'ENT 5 員 1. Kaieb 5. 上ー <or わをれ p 気当 er ) ー「に 0 圏 P ′ 0 は . 能 LlfWLE ドー和 [ 5 0 れを R しⅡ 1 Ⅳ . 雑 1 R 感ーーロ購似コ . 一味 1 ー . 臘 15 ー i FRM, 劇ー環ロ謝粮 : ロー町一一版 5 価 1 町 E ー USE 味 R ーを一に S ー版 S 1 川 E HIT CANCEL NOW. OTHERWISE, HIT OK TO CONTINUE. 」 ( 本プログラムの使用な去を誤ると、モニターおよび / もしくはピ デオカードに永ク朝勺な損傷をえることがあります。 自うゞどんな竹喋をしているのかが分からないのならば、すぐキャ ンセルボタンを押しなさい。 分かっているのなら、 OK ボタンを押して竹喋を続けなさい ) なんと恐ろしいことか書いてあるのでしよう。自分でハ ードディスクを入れたときの経験で、、、言 1 ・算機ってそんな に壊れやすいものでもないんだなあ " なんてのんきにかま えていたところに、いきなり水をかけられた気分でした。 ここでなんとかしないと XFree86 がまともに使 でも、 えません。心を決めてウインドウの調整を始めました。 にしておきました。あとはディスプレイが正しく動いてく ます、間違えたときにすぐにもとに戻せるように画面上 れることを祈るだけです。 の値を紙に書き写しました。それから、ディスプレイの幅 その後いた話によると、「ここで尺する周波数は、 1 や高さが大きくなるように値を変えてみます。ところが、 科澗に何回画面を書き換えるかを示しているので、ディス 大幅に設定を変えたのに、左ー E の画面は大きくなる様子が プレイが対応している範囲でもっとも高い周波数を選んだ ありません。変だなと思って画面本をよく見ると、画面 ほうが目にいい」そうです。やはり、ちゃんと調べてから 全体に広がっている青い部うゞさっきより大きくなったよ 設定しないといけませんれ うです。念のためにもとの設定に戻すと、今度は青い部分 がすこし縮んだように見え、 ウインドウ表示位置の そうか、 ここカ躾際の画面サイズなのか こまでの設定がすべて終ったら、画面位置の得整に 進みます。ます、ウインドウ・マネージャーか起動して と、やっと安仂ゞつきました。実際にはそれほど画面サイズ いない状態の、 X11 ルートウインドウと 1 枚の xterm だ が違っているわけではなく、大幅に各する必要がないと けからなる画面か表示されました。この画面が正しく表示 分かったので、微調整だけですみました。 されれば、これで X11 の設疋は完了です。 以上で設定がすべて無事にすみ、モニターもピデオカー しかし、私にとってはほとんど初めて見た X11 の画面 ドも傷まなかったようです。終ったときには、心からはっ だったので、どの部分で画面サイズを確認するのかか早 としました。 できず、左日こ表示された説明の書かれているウインドウ X が動しない ( つまり xterm) が設定された画面なのだと思いました。 勘違いに気づかす、こんなに小さいのは周波数を尺する 設定をすべて終えたので、 X11 が使えるようになった ときに小さめのを選んでしまったせいかとあわててし はすです。さっそく X11 を起動してみることにしました。 まい、「なんとかここで直さなけれは」と、ウインドウ表 これで、真っ黒な画面ともお別れです。わくわくしながら 示位置の各をすることにしました。 xinit と打ち込んでみると・・ ところが、調整用の xvidtune フログラム ( 図 2 ) の 一瞬、画面が真っ黒になって X を起動している感し 説明には、仰々しく大文字でこんなことか書かれています になります。しかし、途中であきらめてしまうのか、工 ( 訳は筆者 ) 。 ラーメッセージが出力されるだけで ( 図 3 ) 、 X11 は上 「 THE INCORRECT USE OF THIS PROGRAM CAN がってくれません。コンソールに出力されたメッセージ DO PERMANENT DAMAGE TO YOUR MONITOR の未カ吩からなかったので、頼みの綱の『 FreeBSD 徹 AND/OR VIDEO CARD. 底入門』を隅から隅まで読み直してみました。最初のほう IF YOU ARE NOT SURE WHAT YOU ARE DOING, Ⅳに「 t ソ日 155 UNIX MAGAZINE 1998.11