リスト 1 SetEnvIf を使う場合の . htaccess 1 2 3 4 5 6 SetEnvIf Referer "*http: //www\ . XXXXXXXX\. jp" く Fi1esMatch "mt—comments\ . cgi$"> order deny , a110W deny from a11 a110W from env=local く /Fi1esMatch> blog 自体は http://www. XXXXXXXX. jp/&foo/blog に生成されるものとします。 access 」 og を読む アクセスしてきた SPAM の特徴を把握するために、ロ グファイルから正規のアクセスと SPAM アクセスの両方 を抽出します。 MovabIe Type では、コメントを投稿す る場合は mt-comments. cgi を、トラックバックをする場 合は mt-tb. cgi を呼び出すので、これらをログから抽出し ましよう。 これは、 grep コマンドを用いて次のようにすればよいで しよう。 $ grep 'mt—comments\ ・ cgi' access—log これによって、 mt-comments. cgi に対するアクセスの 一覧が得られます ( 図 5 ) 。 Apache のログは 1 行に 1 つのエントリで、図 6 に示す 形式になっています。 アクセス日時や記録されていたアクセス元アドレスなど から、図 5 の下線部のエントリが SPAM によるものである ことが分かっているとしましよう。この行をよく見ると、 雹匝の (SPAM ではない ) コメントの場合と決定的に違う 占が 1 つあるのが分かります。それは、、、 Referer ( 参照 元 ) " の部分がないことです。 Web プラウザからの普通のアクセスのパターンでは、い ったん記事を表示し、そこから移動してくることが多いた め、ほばかならずといってよいほど Referer カ泉されま す。これに対し、コメント SPAM は、さきほど述べたよ うに専用のスクリプトなどを用いて mt-comments. cgi に 直接アクセスしてくるため、 Referer の部分がないわけで す。したがって、とりあえすは Referer がないものは受け 付けないという方針で対処できそうです 4 。 4 - ・ - 陪にのプロキシー・サーバーは、 Referer を隠してしまうことがあります。 このようなシステムを経由してアクセスしてくる諸功ゞいる場合、 Referer の有無だけで SPAM を言リするのは問題かもしれません。 UNIX MAGAZINE 2005 . 5 blog を SPAM から守る 10Ca1 Apache で特定のパターンをもとにアクセスを制御する には、 SetEnvIf または mod-rewrite のどちらかを使う ことになります。それぞれについて説明しましよう。 SetEnvIf を利用する mt-comments. cgi のあるディレクトリに . htaccess ファイルを作成します。 この方法では、 Referer をみて、自分のサイトから参照 された ( 自分の blog の記事をクリックし、そこからコメン トを入力しようとした ) かどうかを判断します。自分のサ イトからのアクセスなら mt-comments. cgi へのアクセス を許可し、それ以外の場合はすべて拒否します。 リスト 1 について説明しましよう。 1 行目では、 Referer が正規表現で指定されたパターン ( この例では "hhttp://www\. XXXXXXXX\. jp") に マッチした場合、環境変数 local をセットします。 2 行目で指定したファイルへのアクセスは、この 10Ca1 がセットされているときだけ許可され、それ以外は拒否さ れます ( 3 ~ 5 行目 ) 。 この方法には問題が 1 つあります。 MovabIe Type 3. x で TypeKey 認証を利用している場合、正しく機能しない のです。 TypeKey 言正を受けて戻ってくると Referer が 空にされてしまうため、上記の条件に合致せず、コメント の引寸けカ甘巨否されてしまいます。 TypeKey 言正と併用する場合には、次に紹介する mod -rewrite を使った方法で対処します。 mod-rewirte を利用する mod-rewrite を使うと、才彳定されたパターンにマッチし たリクエスト URI を書き換えて httpd に渡せるため、ア クセスしてきたクライアントに対して、どのようにでもペ ージを見せることができます。リクエストされた URI が 実在しないかのように振る舞うことも可能です。クライア ント側のリクエスト URI から環境変数まで、ほとんどす べての情報に関する条件の設定力可能なため、たいへん柔 リスト 1 の 55
blog を SPAM から守る mod-rewrite の ~ 用途 本文にも書いたように、 mod-rewrite はきわめて性能の高い モジュールです。もちろん、 SPAM を拒否するためだけに書か れたものではありません。 たとえば、 MT4i (http://www.hazama.nu/pukiwiki /index. php?MT4i) などを利用し、 http://www.yyy ・ jp/ -foo/blog/mobile/index. cgi という携帯電話用のページを 用意したとします。このとき、通常の blog の URL (http:// www ・ yyy ・ jpFfoo/blog/) に加えて、携帯電話のような文字 入力に不向きな端末で、 mobile" などの文字列お助日入力させる のは不親切でしよう。そもそも、内容力飼じなのに端末の種別に 応じていちいち URL を変更するのは不便です。 このような場合に mod-rewrite を利用し、携帯電話から http://www ・ yyy ・ jpFfoo/blog/ へのアクセスがあったら http://www.yyy ・ jp/&foo/blog/mobile/ ヘリダイレクト します。こうしておけば、アクセスする端末の種類ごとに異なる リスト A キ歸電話用のページへの自重辰分け URL の入力を強いる必要がなくなります。 下記のリスト A のように、ユーザー・エージェントが DDI - POCKET (Air-EDGE) 、 DoCoMo (i モード ) 、あるい は UP. Browser (au) のいずれかであったら、 /&foo/blog /index. html へのアクセスを / ~ f00 / blog / mob ⅱ e / ー、振り替 えます。 なお、 Movable Type 3. x の動的ページ生成機能を利用して いるのなら、 index. html は index. php に、 Vodafone も仲 間に加えるのであれば 4 行目の前に、 Rewr it eCond %{HTTP—USER—AGENT} J—PHONE/ [NC , OR] お劭ければうまくいくはずです。 なお、 RewriteCond の行末の、 [NC]" は英文字の大小を無 視して比較するという指定で 3- 。、 [ OR ] " は脚注 5 でも触れたよ うに、列記した牛を AND ではなく OR で結ぶ指定で 3- 。 1 2 3 4 5 6 RewriteEngine on RewriteRuIe Aindex. html$ mobile/ [L,R] RewriteBase / ~ f00 / blog RewriteCond %{HTTP—USER—AGENT} UP\ . Browser [NC] RewriteCond %{HTTP—USER—AGENT} DoCoMo [NC , OR] RewriteCond %{HTTP—USER—AGENT} DDIPOCKET [NC , OR] 図 8 SPAM アクセスを拒否 [ 13 / Mar / 2005 : 06 : 56 : 05 + 0900 ] "GET /%7Efoo/mt/mt—comments . cgi?=> XXX . XXX . XXX . XXX ー —mode=cmtr—name—js HTTP/I . 0 " 403 295 " ー "MVAC1ient ” 図 9 トラックバック SPAM と正常なアクセス下線部が SPAM アクセス ) [ 09 / Mar / 2005 : 08 : 11 : 31 + 0900 ] "POST /-foo/mt/mt-tb. cgi=> proxy3. XXXXXXXX. net HTTP/I . 0" 200 79 " ー [ 09 / Mar / 2005 : 15 : 13 : 15 + 0900 ] "POST "foo/mt/mt—tb. cgi / 1125 - XXX . XXX . XXX . XXX ー HTTP/I . 1 " 200 91 " ー " "So—net blog ” なお、 2 行目の RewriteBase は、物理的なディレク トリの位置と Web サーバー経由で渡されるアクセスパス が異なる場合に指定しますにれがないと、 URL を正し く操作することができません ) ーーには、 Web サーバー からみた、そのディレクトリへのアクセスパスを言古杢しま す。この例では、、 / ~ f 。。 " になります。ただし、今回の例で は URL を書き換えるのではなく、単純にアクセスを禁止 しているので、この指定がなくても問題はありません。 ルールが定義できたら、正しい ( 許可されるべき ) アクセ スをおこなってみて、それカ飄って拒否されないかを確認 します。さらに、アクセスログを見て、不正アクセスが適 UNIX MAGAZINE 2005.5 切に排除されているかを確かめましよう。正しく拒否され ていれば、図 8 のように、、 403 " というコードが返されてい るはずです。 トラックバックについても調べる トラックバックは、 mt - tb. cgi ヘアクセスしておこなわ れます。そこでます、アクセスログから該当するアクセス を抽出し、トラックバック SPAM とそうでないものとの 相違を調べます。 図 9 に示したように、 SPAM が mt-tb. cgi を単純に呼 び出しているだけなのに対し、正常なアクセスはトラック 57
図 7 SPAM と TypeKey 店 & 斉みのアクセスの違い aaaaa . XX . C om [ 16 / Mar / 2005 : 08 : 38 : 15 + 0900 ] "GET "foo/mt/mt—comments . cgi? —m0de=hand1e—sign—in&static=I&entry—id=1138&ts=1110929890 & email = # # # # # # # # # # # # # # # # # # # # # # # # # # # "Mozi11a/5.0 (Windows ; U; Windows NT 5 . 1 ; en—US; rv: 1 . 7.6 ) Geck0 / 20050225 - HTTP/I . 1" 200 115 Firefox/1.0.1" [ 16 / Mar / 2005 : 08 : 04 : 10 + 0900 ] "POST /Nfoo/mt/mt—comments . cgi HTTP/I . 0 " - XXX . XXX . XXX . XXX " Mozi11a / 4.0 (compatible; MSIE 6.0 ; Windows NT 5.1 ; SVI)" 200 295 " リスト 2 mod-rewrite を使う場合の . htaccess への〕賠 5 分 1 2 3 4 5 6 RewriteEngine on RewriteBase / ~ f00 RewriteCond %{SCRIPT-FILENAME} mt—comments\ . cgi$ RewriteCond %{QUERY—STRING} ! ——mode=handle—sign_in RewriteCond %{HTTP—REFERER} !Ahttp : //www\ . XXXXXXXX\ . jp [F , L] RewriteRu1e コメント SPAM と mode=handle-sign-in コメント SPAM が一 -mode=handle-sign-in を付けてア クセスしてくる可能性はないのでしようか。これは、、可能性があ る " というレベルではなく、実祭にそういう SPAM があります。 しかし、このようなアクセスは、いまのところかならず Referer に問題があるので、そこで落とすことができます。万一、アクセ スされても、正しいパラメータ (sig など ) カ当寸いていないので、 mt-comments. cgi でアクセスを拒否されるはずです。このパ ラメータが言 / 鯏くされたとしても、ガードカ皮られることはまずな いと思います。 一方、トラックバックのほうは、リクエスト URI を、 mt- tb. cgi / 1234 " のように変更しただけですり抜けられてしまうた め、もうすこし有効な対策を考える必要があるでしよう。 軟にルールを構築することができます。 難点をいえば、 mod-rewrite の機能力且み込まれていな い web サーバーも少なくないことでしよう。自分で構築 したサーバーに mod-rewrite が組み込まれていない場合 は、パッケージを導入するか、 Apache を再構築する必要 があります。 ところで、 Referer 部のない SPAM アクセスと、 Type- Key 認証を介したアクセスとではどこが違うのでしよう か ? さきほどと同様に、 grep コマンドでパターンを抜き 出してみましよう。 図 7 は、 SPAM と TypeKey 認証後のアクセスの違い を示しています。下線部が SPAM からのアクセスです。 TypeKey 認証後のアクセスでは、 URI にさまざまな引数 カ咐いているのが分かります。これを利用すれば、両者を 56 うまく区別できそうです。 これを、リスト 2 のようにルールとして言古杢し、 SetEnv- If のときと同じく . htaccess に書き加えます。 1 行目は mod-rewrite を利用する亘言です。 3 ~ 5 行目 がルールです。ルールは、基本的に AND として扱われま す 5 。この例では、 3 ~ 5 行目のすべてにマッチした場合、 6 行目のアクションを実行します。 条件を順にみていきましよう。 3 行目では、アクセス 対象のスクリプト名を mt-comments. cgi に限定してい ます。これ以外のものへのアクセスは、このルールの対 象としません。 4 行目で、 mt-comments. cgi へのクエリ ーに --mode=handle-sign-in が含まれていない ( 、、 ! " で NOT) もの、 5 行目で、 Referer が自サイトではないも のに絞り込みます。これで、 Referer 部がおかしかったり、 正当な認証を受けていないアクセスを最後のアクションの 対象にします。 6 行目に言杢されているアクションは、リクエスト URI のうち、指定されたパターン C. * $ ) にマッチしたものを指 定されたもの ( ー ) に置き換えます。末尾の、、 [ F , L ] " は、 のルールのフラグです。 F (Forbidden) は、このアクセス をつねに禁止し、、 403 " を返します。 L (Last rule) は、 の後ろに RewriteRule がないことを示します 6 5 OR を利用したい場合は、 RewriteCond の行の末尾に、 [OR]" を付け ます。 6 RewriteRuIe は列挙することも可能です。その場合、さきにあるものか ら順に評価し、変形されたリクエストを次のルーノい度します。つねにオリ ジナルに対して操作するわけではなく、順繰り ( カスケード ) に処理していく 点に注意カ陀要です。 UNIX MAGAZ 工 NE 2005 . 5
特集 図 28 ファイルのダウンロードが知攵 linux$ tftp server2 tftP> verbose ・←詳細なメッセージを表示 Verbose mode . tftp> trace ・←通信を表示 Packet tracing on. tftp> ge む /tmp/syusyu . txt ←ファイルをダウンロード get し土 ng from server2 : /tmp/Syusyu. txt し 0 Syusyu. txt [netascii] sent RRQ <fi1e=/tmp/Syusyu . し x し , mode=netascii> received ERROR <code=l , msg=Fi1e not found> Error code 1 : Fi1e no に found tftp> ファイル転送リクエストがエラーになった 図 29 tftp のアクセスに関するマニュアルの記ホ ( 抜粋 ) FTP のトラブル・シューティング TFTP ( 1 ) TFTP ( 1 ) NAME tftp SYNOPS 工 S System Reference Manua1 に r 土 V 土 a1 fi1e transfer program tftp [host] BUGS なんらかのファイルアクセス制限をしているはずだが、 ficult し 0 document here . in place . The exact methods are specific し 0 each site and therefore dif- the remote site W 土 11 probably have some sort Of file-access restrictions Because there is no user-login or validation within the TFTP protocol, その方法はサイトにより異なる ウンロードするため、 get コマンドを実行したときの様子 です。 server2 には間違いなく、、 /tmp/Syusyu. txt" ファイ ルがあるのですが、ダウンロードを実行した結果、 Error code 1 : Fi1e not found のように、、ファイルがみつからない " といわれてしまいま した。同じ状況でも、 TFTP サーバーの種類によっては Access violation" 工ラーと表示されることもあります。 工ラーメッセージをみると、アクセス制御カ躙係してい そうだと想像できます。しかし、マニュアル ( man ) で tftp のアクセス制御について調べても、 、、アクセスを制限しているはずだが、サイトに依存するの でここで説明するのは難しい ( 図 29 ) " とお茶を濁すだけで、どのようなときに上記のエラーが起 きるのかははっきりと書かれていません。 UNIX MAGAZ 工 NE 2005.5 TFTP のアクセス制御については、クライアント・プ ログラム (tftp) ではなく、サーバー・プログラム (tftpd) のマニュアルを調べてください。 図 30 は tftpd のマニュアルの言古で、 ・オプションの—s で指定したディレクトリがルート・デ ィレクトリになり、それ以外のディレクトリにはアクセ スできない ・ tftpd の引数は /etc/inetd. conf に言古されている と書かれています。 図 31 は /etc/inetd. conf の内容です。ここでは TF- TP サーバーは、—s オプションで孑旨定されている、 /tftpboot をルート・ディレクトリにします。そのため、 /tmp/Syu- syu. txt にはアクセスできず、ダウンロードに失敗したの です。 35
図 5 mt-comments. cgi へのアクセス ( 一部。下線部がコメント SPAM) [ 13 / Mar / 2005 : 05 : 15 : 51 + 0900 ] "GET /&foo/mt/mt—comments . cgi?=> pXXXX—YYYYYY. zzzzz . xxx ・ ne ・ JP —mode=cmtr—name—js HTTP/I . 1 " 200 37 "http: //www. XXXXXXXX. jpFf00/b10g/archives/001064. html " , ・ " Mozi11a / 4.0 (compatible; MSIE 6.0 ; Windows NT 5.1 ; SVI)" [ 13 / Ma て / 2005 : 05 : 40 : 43 + 0900 ] "GET fifoo/mt/mt—comments . cgi?——mode==> XXXXXXXX. yyy. zzzz . ad ・ jp cmtr—name—js HTTP/I. 0 " 200 25 "http: //www. XXXXXXXX. jp/&f00/b10g/archives/001085. html"* "DownIoad Ninja 2.0 ” [ 13 / Mar / 2005 : 06 : 56 : 05 + 0900 ] "GET /%7Efoo/mt/mt—comments . cgi?=> nnn—mmm—iii¯J j j . XXXX. YYYY. net —mode=cmtr-name—js HTTP/I . 0 " 200 295 ー " "MVAC1ient' [ 13 / Mar / 2005 : 07 : 51 : 41 + 0900 ] "GET /-foo/mt/mt—comments . cgi?=> pXXXX-ZZZZZZ. yyyy ・ xxx ・ ne ・ jp ー mode=cmtr-name—js HTTP/I. 1 " 200 37 "http://www. XXXXXXXX. jpFf00/b10g/archives/000951. html ” , . NET CLR 1 . 1 .4322 ) " " Mozi11a / 4.0 (compatible ; MSIE 6 . 0 ; Windows NT 5 . 1 ; istb 702 ; SVI ; ( 誌面の都合上、で折り返しています。以下 ) 図 6 Apache のログフォーマット アクセス元アドレス ident ユーザー名認証されたユーザー名 [ アクセス日時 ] HTTP リクエストヘッダ アクセス結果ステータスパイト数 Referer ”ユーザー・エージェント” できないので、気軽にコメントを送ってほしいというよう な場合は問題があるかもしれません。 TypeKey の設定は、図 3 の画面で、、登録されたコメン ターは許可する " という項目をチェックし、 TypeKey のサ イトから取得したトークン ( 取得するには登録が必要です ) を入力すれは完了です。一方、コメンターは TypeKey の サイト 3 にアクセスしてユーザー登録をおこない、コメント を孑高する前に、登録したユーザー ID とパスワードを使 って、、サインイン " しなければなりません。 図 4 はコメント入力用のフォームですが、、、 TypeKey ID を使ってサイン・インしてください " とサインインを要 求しています。 なお、この方法もトラックバック SPAM に対しては効 力がありません。 ・ Apache の機能を利用した対策 こまでにみてきたように、 Movable Type の機能だ けでもある程度は SPAM を防げます。しかし、 blog の主 宰者やコメンターに不便を強いる面があるのは否めません。 もうすこし簡便で完全な方法はないものでしようか。 さきほと書いたように、 SPAM の多くはスクリプトを使 って書き込まれるので、通常のコメントやトラックバック とはアクセスのパターンが異なっています。この違いをう まく識別できれば、 Web サーバーのアクセス制御によって 3 http://www.typekey.com/t/typekey/ 54 SPAM のみを排除できるはすです。 Movable Type は、 CGI が実行可能な Apache や IIS などの Web サーバーに対応していますが、以下では Apache を用いているものとして話を進めます。 ログの角材斤 アクセスパターンを調べるには、アクセスの履歴をログ に記録するのが一番です。これは blog に限った話ではな く、ログの記録と解析はシステムの管理や安全な運用には 不可欠です。 Apache のログファイルは、以下のどちらかのディレク トリに置かれています。 ・ Apache のインストール先ディレクトリ / 10g ・ /var/log/httpd ( 多くの Linux ディストリビューシ ョンの場合 ) ファイル名は、 access 」 og 、 error 」 og 、 ssl-request 」 og 、 suexec 」 og といった名前のものがあります ( 設疋によって は、 ssl-request 」 og や suexec-log がなかったり、別の名 前になっている場合もあります ) 。 このなかで、コメント SPAM やトラックバック SPAM のためのアクセスをみつけるのに必要なのは access 」 og です。 今回は、 http://www. XXXXXXXX. jpFfoo/mt 以 下に Movable Type の一連のファイルが展開されており、 UNIX MAGAZINE 2005.5
図 26 ILM の実現 NS700 ポリシ ーエンシン NAS クライアント ファイルレ 0 ~ ライマー Centera 最近使用されていない : ファイルは安価な ATA ・ ディスクへ移動 削除 / 変更されたくない ファイルは、 WORM 機 能のある Cente 「 a に保存 ク価 イ O 、 セカンダリ NS700 WORM 機能 ( 所定期間は 削除 / 変更不可 ) マイグレーション 。← Recall ( 再アクセス ) モカンダリ ATA ディスク ( 低速・安価 ) トカットを正しく扱えないため、異なる OS 間でデータを 共有している場合は問題カ咥生する。 これを解決するために、 Celerra シリーズではファイル ムーバー (FiIe Mover) という機能を提供している。フ ァイルムーバーを利用すると、すべてのクライアントはデ ータムーバーのファイルシステムにのみアクセスするため、 クライアントの OS に関係なくマイグレーションできる。 1 次側から 2 次側のデータへのアクセスは、 NFS また は CIFS に対応している機器であればよいので、データの 特生に合わせて自由に選択できる。 ファイルムーバーの動作を簡単にまとめると、次のよう になる ( 図 28 ) 。 1. ポリシーエンジンが 2 次側のストレージにファイルを コピーしたあと、 XML を用いてコピー先の情報を通知 ン " と呼ばれるソフトウェア 2 を用いておこなう ( 図 27 ) 。 する。 通常、このポリシーエンジンの機能は Windows ではシ 2. データムーバーは、通知された情報をもとに 2 次側のフ ョートカット、 UNIX ではシンボリック・リンクを用いて ァイルへのアクセスの可否および更新時刻を確認し、ス 実現されている。しかしながら、 Windows クライアント タブ (stub) ファイルに変更してファイルのデータ部分 はシンポリック・リンクを、 UNIX クライアントはショー を削除する ( マイグレーション完了 ) 。 2 Enigma Data SoIutions の SmartMove や Arkivio の Auto- 3. マイグレーションされたファイルに対し、 クライアント Stor ( 日本語版は Data Jockey) 、 EMC ( 旧 Legato) の DMC から読出し要求があった場合、データムーバーは 2 次側 (Data Manager for CeIerra) など。 ーエンジンび ) 条イ牛言又疋 . 図 27 ポリシ 設定条件は任意の組合せが可能 ・名前 ( 拡張子を含む ) ・所有者名 ・サイズ ・日時 一変更日時 ー最終アクセス日時 ー作成日時 こ日にけ Edit F 町 N 物れ日ル 1 ◎ 0u08 」ミ 0 E 山 d 日 - : 0 amem ch ⅲ 0 - ー 0 0 町 matching 0 Sizematching 甸 1 加 e m 川叩 ロゆ e 0 観 ThisweeK 106 UNIX MAGAZINE 2005 . 5
NAS 環境の構築と設定 図 28 ファイルムーバーの重加乍 読込み ファイル作成 NAS クライアント Celerra ファイル スタブ ③ R ecall ②スタブとして、ファイルへの - アクセス情報を保持 ①マイグレーション 特集 NAS ファイル ホ。リシーエンジン UNIX MAGAZ 工 NE 2005.5 可能にするためである。 たスタブファイルがリストアされた場合にも、アクセス は、 1 次側で論理コピーや、バックアップから削除され 4.1 次側で消去されたファイルも 2 次側には残る。これ ( 書込みは不可 ) 。 スをパススルーとし、データの読出しのみカ可能になる ァイルシステムが満杯になった場合は、すべてのアクセ また、クライアントからのアクセスが多く、 1 次側のフ タにアクセスすることができる。 こなう。これによって、 SnapSure からも変更前のデー 次側のすべてのデータを読み出してからデータ更新をお クライアントから更新要求があったときは、かならず 2 ないようにするといったこともできる。 すべてをパススルーに設疋し、 1 次側にデータを保存し 読出し方を指定することも可能なので、管理者の判断で Celerra 側ではポリシーエンジンでの指定にかかわらず んに通過させる。 ・パススルー (pass through) : 1 次側に保存せず、た を読み出し、保存しながら返信する。 ・ノヾーシャル (partial) : 読出し要求があった部分のみ 側に保存してから返信する。 ・フル (full) : 全データを 2 次側から読み出して 1 次 このときの読出し方は、以下の 3 種類から指定できる。 する。 からデータを読み出して (recall) 、クライアントに返信 ④ 1 次側で削除されたファイルも 2 次側には残る 107 NAS 上のテータヘース ことも可能だが、区別できるようにしておいたほうがよい。 ( 図 29 ) 。これらのマークは、 Celerra 上の設疋で消去する マンドを実行するとファイルサイズが括弧内に表示される と区別できない ) 。また、コマンド・プロンプトで dir コ (UNIX クライアントの ls コマンドでは通常のファイル フライン・ファイル " であることを示す時計マークカ咐く dows クライアントからは、通常のアイコンの上に、、オ dows から通常のファイルと同様にアクセスできる。 Win- マイグレーションされたファイルは、 UNIX や Win- ンターフェイス・カードが必要であり、 FC-SW などの SAN では、サーバー側に HBA という比較的高価なイ ・初期投資の低減 たい場合は、最適な基盤といえるであろう。 築できる。コストや時間をかけずに開発環境などを整え 基盤整備や新たな技術の習得を待たずに環境が遇虫に構 NAS では既存の IP 網の技術を使用するため、 SAN の 王竟構築カ瑢易 利点がある。 NAS 上でのデータベース環境の構築には、次のような 明する。 のバックアップ / リストアおよび災害対策の実現方法を説 例として、 Oracle データベースを NAS 上に置いた場合 アプリケーション実行環境における NAS の利用法の一
図 30 tftpd のアクセスに関するマニュアルの記 ( 抜粋 ) TFTPD ( 8 ) NAME tftpd SYNOPS 工 S FreeBSD System Manager ー s Manua1 工 nternet Trivia1 FiIe Transfer pro し 0C01 server TFTPD ( 8 ) /usr/libexec/tftpd [-cC1n] [-s directory] [-u user] [directory DESCR 工 PT 工 ON The tftpd utility is a server それ以外のティレクトリにはアクセスできない ー s オプションで指定したディレクトリがルート・ディレクトリになり、 is specified. 、 nobody" if no -u option 土に S user id セ 0 that Of the specified user, or be run as r00 し . However, after performing the chroot ( ) ′ tftpd w 土 11 set directory. Because chroot ( 2 ) requires super-user privileges, tftpd must directory, thereby proh 土 b 土に土 ng accesses outside 0f the specified The -s op し 10n provides additional security by changing tftpd ー s r00 し are a1SO treated as a search path for relative filename requests . are prefixed by the one Of the given directories . The given directories 工 this case access iS restricted し 0 files whose names /etc/inetd . conf . tories by including up tO 20 pathnames as server program arguments in Access に 0 files may be restricted by invoking tftpd with a list 0f direc- 図 31 /etc/inetd. conf の tftpd の言己ホ tftp tftp dg ram udp dg ram udp6 wait wait r00 に r00 し /usr/libexec/tftpd /usr/libexec/tftpd tftpd -s / し f む pb00 亡 tftpd -s / し f 亡 pb00 亡 こまで分かれば対処は簡単です。 1. syusyu. txt を /tftpboot ディレクトリの下にコピ ーす る。 cp /tmp/Syusyu ・ txt /tftpb00t/Syusyu 2. ファイルのアクセス権を誰でも読めるように設疋する。 chmod 0 + r /tftpb00t/Syusyu.txt これでダウンロードが成功するはずです。 . txt 36 /tftpb00t/Syusyu.txt ダウンロードするファイルの名前の指定が、 アクセスしたので、ダウンロードに成功しています。 子です。今回は許可されたディレクトリの下のファイルに syusyu. txt ファイルに対して、 get コマンドを実行した様 図 32 は、 /tftpboot ディレクトリの下にコピーされた pb00t ティレクトリがルート・ディレクトリとみなされる ではなく、 Syusyu. txt であることに注意してください。 TFTP サーバーは /tftpboot をルート・ディレクト リとみなすため、 SN/tftpboot/Syusyu.txt" と指定する と、 server2 上の、、 /tftpboot/tftpboot/Syusyu.txt" と いうファイルを探すことになります。 /tftpboot/Syusyu.txt をダウンロードするときは、 get /Syusyu. txt と指定することもできます。 TFTP のファイル転送 ファイルのダウンロードに成功したついでに 輔去が実行される様子をみておきましよう。 ファイル UNIX MAGAZINE 2005.5
blog を SPAM から守る・ コメント / トラックバック S PAM の撃退法 荒木宏之 このところ、 Web の世界はあちらを見ても blog 、こち らを見ても blog と、まさに bl 。 g 花盛りです。 blog (Weblog) は、簡単に記事を投稿できるだけでな く、 RSS フィードやコメント、トラックバックといった 仕組みによって blog ページ間で手軽に連携がとれるため、 ますますひろがりをみせています。大手の ISP やポータル サイトなども、無償で大きなディスクスペースカ駛えるサ ービスを始めています。これらのサービスを利用して blog ページを公開している人も多いとは思いますが、自前のサ ーバーやレンタルサーバーなどを用いて、みずから blog システムを運用している人もかなりいるのではないでしょ うか。 blog の特徴であるコメントやトラックバックはたしか に便利ですが、その一方で SEO (Search Engine Opti- mization)l 対策などに悪用され、コメント SPAM やトラ ックバック SPAM といった新たな問題の原因ともなって います。これに対処するため、せつかくのコメントやトラ ックバックを受け付けないようにしている blog サイトも あるようです。 この記事では、ひろく使われている blog システムの 1 つである Movable Type2 を例にとり、コメント SPAM やトラックバック SPAM を効果的に撃退し、本来の目的 に合ったコメントやトラックバックのみを受け入れるよう にする方法を紹介します。 今回は、 MovabIe Type で構築された blog サイトを前 提として説明します。ただし、対策の基本的な部分はほか 1 Google などのサーチェンジンは、検索結果を表示茆る際に、サイトごとの 、重要度 " に従ってソートします。通常、この重要度は他サイトからのリンク 数などにもとづいて決められるため、トラックバックやコメントカト部からの リンク数を増やす目的で使われる場合があります。 2 http://www.movabletype ・ jp/ 52 の blog システムにも応用できるはずですから、これらのシ ステムで SPAM 対策に頭を痛めている人にも参考になる と思います。また、以下で例示する画面イメージは Mov- able Type 3. x のものですが、 TypeKey 認証を除けばバ ージョン 2.6x でも同等の機能力リ用できます。 ・ blog に対する SPAM blog サイトに送られてくる SPAM の大部分は、メール を用いた SPAM などとは異なり、なんらかの宣伝文を読 ませたり、リンクをクリックさせたりすることを目的とし たものではありません。大半は、さきほど述べた SEO へ の対策に使われているようです。したがって、その内容は たいへんシンプルで、たいていはリンクがほっんとあるだ けといった形式になっています。というのも、かならずし もトップページにあるような目立つ記事を対象とするわけ ではなく、ずいぶん前に書かれ、すでに埋もれているよう な記事へのコメントやトラックバックだったりすることの ほうが多いからです ( 誰かに読ませることを目的としてい るのなら、ふつうは目立つ記事に付けるでしよう ) 。 もう 1 つ、こちらはメールの SPAM と同じく、多数の サイトに対して大量に送りつけます。そのため、専用のス クリプトなどを用いてコメント投稿用の CGI やトラック バック用の CGI を直接アクセスしてきます。事実、これ らのアクセスを観察すると、その多くはアクセスの仕方が 正規のコメントやトラックバックと彳少に異なっています。 この違いを正確に捉えることが、 SPAM を効果的に除去す るための重要なカギといえるでしよう。 それでは、具体的な撃退方法をみていきましよう。 UNIX MAGAZINE 2005 . 5
特集 NAS 環境の構築と設定 図 35 iSCSI の実装 ( ネイテイプ型 ) iSCS げニシェータ 図 34 iSCSI の実装 ( ゲートウェイ醐 iSCS げニシェータ ロ ロ iSCSl iSCSl MP -1620M MDS-9xxx シリーズ Fibre Channel ゲートウェイ型では、 iSCSl から Fibre Channel に変 換するインターフェイス・コンバータ経由でストレージ 装置にアクセス EMC では、以下の機器で検証 ・ MDS-9xxx (Cisco 製 ) シリーズに iSCSl 対応の スロットカードを挿入したモテル ・ MP-1620M (McDATA 製 ) ・ストレージ装置 : Symmetr ⅸ、 CLARiX シリーズ Symmetrix CLARiX CeIerra ネイティプ型では、ストレージ製品自体が iSCSl に対応し、旧網に直接接続される (EMC の対応 製品は Symmetrix 、 CLARiX 、 celerr シリーズ ) Symmetrix CLARiX 図 36 ポータルの作成 ( h00 、 0 00t ・ 0 0 れ iSCSI na 、 adn n@ ー S を日一 2 , Con 日 0 し「朝 on CHAP Access Ta ′ gets ・ノ Cre 0 iSCSI しリ n 50 Ⅳ 0 ′ー 2 : 「 9 1 は . OK ShOW iSCSI LUNS 「 ; ; ; : ーーーーー - ヨ A T ・ 0 5 T 物 0 を : 廴 u defined 物レ eady : ね四 1 第 5 0 (MB): fs_iscsi 9 旧 GB ( 1 お 3 MB) 国 - 」当司 LUNO (4GB) を作成 LUNO (4GB) 、 LUNI ( 5.8GB ) ・ - を作成済み 3. LUN の作成 1 で作成したファイルシステム内に LUN を作成する。 図 36 では、 LUNO (4GB) と LUNI ( 5.8GB ) の 2 つ の LUN を作成している。 4. LUN マスキングの設疋 複数の iSCSI イニシェータが同じポータルを共有する 場合、 LUN マスキング機能を用いて LUN への適切な iSCS イニシェータからアクセス 可能な LUN を指定 アクセス権を言定し、お互いのデータの破壊、漏洩が起 こらないようにする。 LUN マスキングは FC フアプリ 5. LUN の確認 ックと同様の考え方にもとづいた機構であるが、フアプ こまでの作業を終えると、 Windows 側から LUN が リックでは WWPN (World Wide Port Name) を みえるようになる。これに署名してフォーマットすれ 用いてイニシェータを識別するのに対し、 iSCSI ではノ ば、ローカルのドライプのように使用できる ( 図 38 ) 。 ード名 (iqn.1991ー05.com/microsoft... など ) を使用 する (iSCSI イニシェータのインストール方法は、次項 iSCSI イニシェータのインストール の「 iSCSI イニシェータのインストール」を参照 ) 。 Windows サーバー用の iSCSI イニシェータ ( ドライ iSCSI イニシェータのインストールが完了した時点でノ ノヾ ) は、 Microsoft の下記の Web ページからダウンロー ード名カ喇明するので、 CeIerra 側でそのノード名に対 ドできる ( 執筆時の最新版は VI. 06a ) 。 して必要な LUN を割り当てる ( 図 37 ) 。 Ta 「 00t F 0 Sy 、 tem LUN D 計 MO 0 5 に 0 、 ta 「 getl い秋 1 」 server 2 新 se Ⅳ 0 「 2 fS ーを 05i fS ・ 505i 4.0 GB 5.6 GB 図 37 LUN マスキング 0 ・ ta MO 0 れ第 0 Ⅳを「 -2 Targee い「 tl [ U 、、 de れれ 04 : 0 1 ーれⅲ atO iqn 1 1 ・ com mi 050 市 ionl op は jsc 毛 m 仁 com G ′ 0 れを LUNs: iSCS げニシェータの ノード名を指定 111 UNIX MAGAZ 工 NE 2005 . 5