2009年8月16日日曜日

SPAM対策あれこれメモ



現状のスパム対策に関する頭の整理を兼ねたメモ。

今のところ色々な方法が考案されているけどS25Rに関連する話(greylistingとtarpittingを組み合わせる)が効果高そうな気がしていて前から試したかったのですが面倒でやっていなかった。が、今の環境ではWebメールからシコシコ読む事が多くなったのでスパムを捨てるのが面倒くさいという事で効果測定をする事に。その前に現状よく語られるSPAM対策の個人的な理解と見解を。

HELO

ここの情報をどこまで信用してフィルタしてしまっていいのか疑問を感じる。

RBL(DNSBL)

ブラックリストの仕組みとしては有用だと思うけど、IPベースでフィルタするので巻き添えを食らってメールが届かなくなる事があるのがコワイ。でも自前で作るとメンテが面倒くさい。

Bayesian filter

話題になり始めた頃に試したが、効果は非常に高い気がした。ただし、100%間違えなく振り分けるという事は不可能なので、結局誤認識して捨てられていないかという所謂ゴミ箱漁りをしたくなるので本末転倒だと感じている。実際友達に送ったメールがそういうのに引っかかってて連絡がつかなかったなんて事もあったので余計な気を回す必要が増えて嫌い。個人的な見解ではサーバ側でやるよりもユーザが勝手にやれば良いと思う。とはいえこれはPOPでとったメールに対しては有効だけど、IMAPだとユーザ側でやるのはちょっと面倒かも。

S25R

スパムの殆どはプロバイダから送られてくるという観点でのもの。というわけでプロバイダから送られてくる物は殆どひっかけられるわけだけど、自宅サーバの人からの物も捨ててしまう。個人的な見解では動的IPでメールサーバやる事自体がナンセンスだと思うし、そんなもん捨ててしまえとは思うけどネ。結局のところgreylistingの前フィルタとしてしか意味が無いと思っている。

tarpitting

やりたい事はわかるけど、息を止めている時間をかなり長めにしないと効果が無さそうなデータが出ている様だし、サーバ側の負荷になるので正直好みではない。積極的に導入する気がしないので今後実験サーバをたてる際にでも見てみたい。と言う事でこれはまだ試してません。

greylisting

今回試したい目玉だった。一見さんは再送を強いるという事で着信が遅くなってしまうのが問題。ただし、普通のサーバなら不達は無いし、一回しかトライしないサーバだとしても送信者にエラーくらいは返すだろう。S25Rを使って怪しい物だけに適用する事でマイナス部分をかなり減らせる。また、SQLGrey等だと自動的にリストを作ってくれるので面倒が少ない。

番外編IPでフィルタ

アジア系とか南米系とか自分と関係無いだろうと思っているIPを根こそぎ拒否してしまうもの。正直気持ちはわかるけど過激すぎる気がする。酷いところは日本以外のIPは全部遮断とかもあったし・・・。ホームページでもこういうフィルタをしているところがあって情報を収集している際にはねられて一寸イラっとした事もちらほら。ある意味鎖国だよねぇ・・・日本人らしい対応だと思うけど。うちの環境では出来ない方法だな。




まぁ、とりあえずこんなところかな。

正直どれもリスクがあって手放しにこれだっという対策は無いと感じている。S25R+greylist、そしてサーバとしての自前のブラックリストを簡単に管理出来る仕組みを入れるというところがリスクを考えた場合の落としどころとしては良いところかなと。

で、実際にpostfix+sqlgreyを設定してみた効果はというと日本のアダルト系、出会い系のスパムはgreylistでほぼ壊滅に追い込めた。が、海外系のバイアグラだのなんだのってメール、しかもbotネットから来ていると思われるメールは再送をきちんとやってくれてスルーされてしまって結局期待してたほど劇的な効果は無かった。

この結果から言える結論としては



  1. 日本のSPAM業者は効率向上の為に真面目にサーバをSPAM向けにチューンしている。そのおかげでgreylistやおそらくtarpitが非常に有効。

  2. botネットを使う様な連中は物量で攻めて来るので1の様なチューンをしておらずノーマルなサーバから送っている為に普通のサーバと見分けがつかない為すり抜けてしまう。




こんなところだと思う。で1は対策しやすいとして2に関しては頭が痛いところ。見かけ上普通のサーバなのでブラックリストを使う位しか思いつかないけど、自動化出来ないといたちごっこだし、同じホストからの再送もそれほど無いので費用対効果が薄い感じ。同じ内容を複数のサーバから送ってくる(botネット)からそういう部分でフィルタは出来る気がしているけど、やっぱりコンテンツフィルタは抵抗があるな・・・。ブラックリストの仕組みにアドレス、ホストだけじゃなくて内容も保存しておいてコンペアとるなんてのも良いのかな??

もうちょっと様子見&統計をとってみたいと思う。




2009年8月14日金曜日

はじめの一歩



大分放置していたここだけど、無駄に金払うのもなんなので再開してみようと思う。(二年も経ってやがる・・・)

現在夏休み中。ちょっと仕事の都合で突然日程が確定したので予定は0。子供の相手をしつつ、ふとiPhoneの開発を真面目にはじめてみようと思い立つ。

で、とりあえず証明書を登録しないと実機での実行が出来ないのでこの作業をする。

http://d.hatena.ne.jp/uzulla/20080911#p1

解説してるサイトは色々あるみたいだけど、とりあえずここを参考にする事にする。一応メモも含めてリンク張っておく。感謝。

証明書をアップするところは名称がちょっと違っていたけど最近文言が変わったのかな?このサイトには「Add Certificate」を押せとあるけど「request certificate」になってた。

まぁ、この段階でトラブル発生したわけですが・・・。

証明書をアップロードした段階でふと気づいたんだけど名前が化けてる。別に実用上は問題無いのかもしれないけど気になったのでリジェクトして再登録をしようと思ったけど、この情報ってAppleのユーザ情報のDBから引っ張ってくるみたいだけど、開発者のページの個人情報編集ページでは名前は変更出来ないのであった。

まぁ、これ、かな~り昔から問題だと思っている不具合なんです。Appleの個人情報のDBが日本語のページだと日本語しか受け付けないくせに開発者のページだと英語しか受け付けないというショボイ仕様になっていて、しかも英語サイト側ではこの日本語の情報をうまく扱えず、文字化けした挙げ句にクエリーがこけちゃって先に進めなくなるなんて笑えない状況。こんなお粗末なサイトって今時の他の大手IT系?のサイトみてもどこも無いと思うんだけどどうなんすか。

過去の資産引きずって、しかもそのフレームワークの開発が止まってしまっているのが問題なんでしょうけど使いにくすぎなんで即刻直して欲しい。他の国の人たちも困ってるんじゃないかね。開発者のページには日本語使うと化けるから云々と書いてあるけど、上に書いた様に同じ情報をiTunesだか何だか忘れたけど購入時の情報としても使っていたりするので、そっちは日本語にしないと駄目だから渋々日本語にするとまた英語ページで以下略と。まぁ、アカウントを英語用と日本語用にわけるのが正解だと思います。複数アカウント管理するのイヤなんでそのままにしてますが、Appleが心を入れ替えて作り直してくれるのがベストです。

前にもβ版入れようとした時だかなんだかにこれで引っかかって、Appleにクレームをつけた後に、返事が来る前にどこかのページで自分でなおせた記憶があるんだけど色々Appleにからむページを見てみたけど思い出せないのでAppleに変更の依頼をしてみた。日本側の対応は素晴らしいスピードだったけど、その後アメリカ側に作業を依頼したみたいで・・・そこで現在止まっています。ウーム。

しかしどこでいじったんだっけなぁ・・・。イチイチメールで依頼するのもまどろっこしいし。

とりあえず実機で動かすのは後にして遊んでみようと思う。といったところで何も有益な情報の無い状態で今日の日記は終わり。




はじめの一歩 Part2



終わりなんて書いてみたけど、書き終わってみたらユーザー情報の更新が終わっていた。素晴らしい。

というわけで先に進もう。一応実機で自作プログラムを動作させるまでは終わったけど、先ほど書いたサイトの情報はいくつか間違っていたので補足。

基本的な流れは問題無し。ただし、証明書をキーチェーンアクセスで登録する際にシステムで登録せよと書いてあるけど、これはログインにしないとXcodeが探しにいけずにprofile doesn't match any valid certificate/private key pair in the default keychainなんてエラーになってしまった。というわけでログインにして下さい。(何故かシステムの方に登録した物を削除したいのにいくら削除を選んでも削除されなかった。ロックははずしてるのにな。)

余談だけど、オーガナイザーのDEVICES>[iPhone名]の中のProvisioningに追加のプロセスで追加のタイミングでは何も表示されなかった。これは現在β版のSDKをつかっているからかもしれない。まぁ、気にせず進むべし。

それから、App IDは適当にと書いてあるけどDescriptionは確かに名前か説明を書いておけばいいので適当で良いけど、Bundle Identifier (App ID Suffix)はドメイン名+作ってるアプリ(プロジェクト)名にしておくのが無難。別に何か適当にcom.example.testappとか固定でも良いけど。

あとは手順通りにしておけばXcodeのメニューのプロジェクト>プロジェクト設定を編集の中のビルドタブ>Code Signing>コード署名ID>Any iPhone OS Deviceのところで自分の登録した物がみえているはず。それを選択して一端ウィンドウを閉じる。

次に同じくプロジェクト>アクティブターゲット"HOGE HOGE"を編集を開きプロパティタブの識別子を先ほどの開発ページのBundle Identifier (App ID Suffix)に登録した物で置き換える事で作業終了。




2007年4月27日金曜日

第二代FreeBSD鯖



重い腰を上げて新しいサーバのセットアップ

借りるだけ借りて使わないのももったいないし、本来の目的の古いサーバからの移行もきちんと考えないといけないしね

とりあえず借りたサーバはFreeBSD6.1-SECURITY

第一段階の目的としてはJail上にて旧サーバ環境と同等(DNS/Mail/Web)の環境を構築すること。

先ず1つ目のJailはDNSはbind、Mailはqmailからpostfix、Webはapacheといったところでしょうか

今回はJail環境を構築するまでの行程になります。

1.まずPortsの環境を構築する

素直にいくと/usr/sbin/sysinstallからConfigure->Distributions->portsっといくわけですが、入っているのが6.1-SECURITYなのでFTPで接続した先にはねられてしまいます。なのでまずOption->Release Nameを6.1-RELEASEに変更。その後上記のところからportsの環境をゲットします。

っとここまで書いていて気づいたけど、最近のトレンドはcvsupでportsのアップデートを行うのではなく、portsnapを使用してアップデートするのが良いらしい。6以降は標準で入っているのと、このプログラムは初回時に/usr/portsを再構築するらしいので、上の行程を踏まなくてもこいつを実行すれば問題なかったかも。(リリース名は変える必要がある気がしますが)


# portsnap fetch && portsnap extract && portsnap update


まぁ、何はともあれこれでPorts環境がそろいました。

2.ezjailの導入

/usr/ports/sysutils/ezjail

にて、


# make install clean


今日はとりあえずここまで。構成の検討等も含めて次回に・・・




2007年3月8日木曜日

VERIO解約



特に問題があったわけではないけど、また新しいところと契約したい病にかかったのでVERIOを解約して新しいところと契約してみることに。

今回の候補はVPSではなくて共有鯖です。あとサーバの場所をアメリカという形で探しました。というのも今ドイツにいる関係で日本鯖は自分にとっては凄い重い。逆にEU鯖だと日本からが激しく重い。というわけで中間をとってみようという感じ。まー、どうせ実験レベルでしか使わないからあまり速度はいらないしね。

というわけで、今回の候補はこの2つ



どちらも最近Rails等にからんで話題になっているところ。DreamHostはディスク容量や転送量等が異常な数字だし、TextDriveはTracとかまで最初から入っているというなかなか素敵仕様。最近Pythonでのプログラムに興味が出てきたので、それが動く環境という意味でも良さそうに見えた。結論としては、たまたまキャンペーン価格でもあったというのもあってDreamHostにアカウントをつくった。まぁ、TextDriveも契約して丁度VERIOと同じぐらいの値段になるので、ムラムラきたらソース置き場兼実験用として契約しちゃうかも。

で、VERIOの解約をしようと思ったんだけど、これがなかなか手ごわい・・・。というのもページを見た感じ解約するには直接電話で話をしないといけないらしい。当然アメリカに・・・デス。なんとなく嫌だったのでメールで問い合わせしてみたらやっぱり電話しろの一点張り。時差もあるのでもう少し後になったら電話してみます・・・。電話苦手なんだよなぁ。

しかし、長年契約してるハリケーン(http://www.he.net/)も今となっては割高な感じだし、そろそろ乗り換え時期かなと考えている。なんとなく長く居つくと他に移動したくなくなるんだけど・・・不思議。特にトラブルが無かったからってのもあるだろうなぁ。




2007年3月6日火曜日

ITな世界の日本語



この業界、英語圏の技術に引っ張られているのはご存知の通りですが

みょうちくりんな日本語が普通に存在する世界でもあります。

「なんちゃら標準」

「ユーザー体験の向上」

などなど。

普段そんな言葉会話上で出ますかね?

気持ち悪いとは思わないんだろうか・・・。

直訳するだけが翻訳では無いと思うんですけどねぇ。

こんな気持ち悪い言葉使うくらいなだ、この世界は散々横文字の

単語を使ってるんだから横文字のままにすればいいのに・・・。

日本人の英語アレルギーは相当なものだと思いますが

それならそれで日本語をもっと大事にしても良いのではないかと

思う今日この頃であります。

別に硬い文章を書く必要は無いとは思いますがw




2007年2月27日火曜日

Vistaアップグレード



今年に入ってからドイツでPCを買いました。

もちろんVista Ready。

あまり入れる気は無いけど、早速申し込みをしてみる。


SUBJ : 注文内容確認 1234567

DATE : 2007/1/13

Windows Vista Home Premium 32-bit CD/DVD へアップグレードのご注文をいただきありがとう

ございます。購入証明書(領収書、請求書など)の原本または保証された写し、および償還請求

書をお住まいの地域のサービスセンターにご送付ください。


よしよし・w・

で、4~6週間で届くという話なので待つ、待つ、待ちまくる。

今日メールがキタ!


Subj : Microsoft Office アップグレードご注文1234567ご注文受け付け完了のお知らせ

Date : 2007/2/27

お客様のご注文の受付を完了致しました。本日より4~6週間の間に商品を発送致します。





・・・

・・・・・

・・・・・・・

Office!?

しかも、さらに4~6週間!!!!!??????




意味わからん!