カテゴリー

アクセスカウンター


since 1996/06/14

アクセス状況

  • 2
  • 317
  • 325
  • 5,077

いろいろめも

PerlでAPOP認証(2003/01/06) pop3サーバに接続が成功すると +OK <云々> という応答が帰ってくる。この「云々」の部分+パスワードでMD5のメッセージダイジェストを作成し、「APOP user名 MD5メッセージダイジェスト」として送信送信すればAPOP認証が成功する。 変数に、 $res=サーバからの応答(+OK <云々>) $user=ユーザ名 $passwd=パスワード と入れてあるとすると、 use Digest::MD5; # 云々の部分の切り出し $res =~ s/(.+)<(.+)>/<$2>/i; # その後ろにパスワードを付加 $res .= $passwd; # メッセージダイジェストの作成(モジュール任せ) $md5 = Digest::MD5->new; $md5->add($res); $res = $md5->hexdigest; あとは、「"APOP $user $res"」をサーバへ送り返せば認証成功となる。 、、、というか、サーバ応答(+OK <云々>)から切り出す部分って「<」と「>」も含まなければならないってのに小一時間ハマッタ。 起動すべきデーモンと止めるべきデーモン(2003/10/04) RedHat系のLinuxは「chkconfig –list」でデーモンの起動の設定を確認することができます(出てこないデーモンもありますけど)。そして、不要なデーモンは「chkconfig nfs off」というようなコマンドで起動しなくすることが可能です。 ここではchkconfigで出てくるデーモン群を説明します。ちなみに私自身知らないものも非常に多いので、かなり推測が入っています。 kudzu新しく追加/取り外しされたハードウェア(マウスとかNICとか)を検知し、設定を行う。これがあると起動中10数秒待たされるが、あったらあったで便利。 syslogログを記録する。これが無いと普通は困る。 netfs起動時にネットワーク系のファイルシステムをマウントする。samba(Windowsファイル共有)とかNFS(ネットワーク経由でファイルシステムをマウント)とかが関係あるらしい。使ってなければいらないっぽい。 networkその名のとおりネットワークの設定とか起動とかをしている。これがなければオフライン。 random乱数を生成する。ゲームプログラマの命(謎)。基本的には残した方が無難。 rawdevicesrawデバイスをマウントする。残すか残さないかは微妙、、、っていうかどういうときに使われるのかがよくわからないので残してます。 pcmciaPCMCIAカード(いわゆるノートパソコンとかに差すPCカード)を使う人は残した方がいいです。デスクトップなら普通いらないと思う。 saslauthdRedHat9で始めて見た気がします。imapとかSMTP-AUTHとかのメール関係の認証で使うみたい。意図して使う人以外はOFFでいいと思う。 keytableキーボードマップ(配列)を設定する。/etc/sysconfig/keyboardあたりの関係だと思う。ONじゃ無いとキーボード配列が狂うかも? apmdAPM(Advancede […]

WebDAV…

Apache2.2系でWebDAVを建ててるんですが、かなり難しいですね。未だ四苦八苦していますが、今のところ以下のような感じ。 WinXPのWebフォルダ(ネットワークプレースの追加)をクライアントにした場合はまともに動かない(かなりひどい動きをします)。とりあえず検証にはdddavというツールを使用中。 apacheのhttpd.confでLimitExcept/Limitがおかしい?LimitExcept以外の命令を普通に受け付ける。また、LimitExceptの中にrequireを書いても無視されてるっぽい。 特定アカウントをLimitExceptで制限すると、通常のWebアクセスを受け付けちゃう(;´Д`) 日本語はいい感じ。FedoraはUTF-8がデフォなので、そのまま日本語が行ける(シェルでも日本語が使えるので、ファイル管理に困らない)。 Alias /XXX "/xxx/yyy" <Directory "/xxx/yyy"> Dav On Order Allow,Deny Allow from all AuthType Digest AuthName "XXX" AuthUserFile "/xxx/yyy/zzz" <LimitExcept OPTIONS> require valid-user </LimitExcept> </Directory> これだと、LimitExceptが効かない。 ムムム…もう少し調べる必要がありそうだ。

S25RでSPAM対策

今まで主にブラックリストでSPAM対策をしていた訳ですが、いろいろ試行錯誤してもフィルタ率が80%くらいでした。 届く宛先の傾向を見ると、やはり過去にWebにメアドを載せていたのが原因ですね。ここのサイトも10年以上公開しているので歴史の重みの一つですね。

で、結構悩んだんですが、S25R(Selective SMTP Rejection)という仕組みを導入してみることにしました。詳しくは以下のサイトを見てください(始めのページに要点も書いてあります)。 http://www.gabacho-net.jp/anti-spam/

結果から言うと、ほぼ100%SPAMを駆逐出来てます。かなりすごいですね。ただし、誤フィルタの危険性も捨てきれないので、しばらく監視が必要です。

とりあえず設定方法については上記アドレスの「阻止率99%のスパム対策方式の研究報告」ってところに、postfix向けの設定サンプルが書かれているのでそれで行けますが、ちょっと注意点などを以下に記載してみたいと思います。

まず、main.cfの設定ですが、元々ブラックリストによる制限をしてますが、S25Rも同じようなところに定義してます。ですので、ブラックリストとS25Rを両立する設定が必要な訳ですが、私は以下のような感じに設定しました。

main.cfの設定サンプル(ブラックリストとS25Rの両立)

〜以下、抜粋です 「reject_rbl_client 云々」がブラックリストの設定。「permit_mynetworks」以下が、S25Rのサイトにあったサンプルと同様の設定です。

smtpd_client_restrictions = reject_rbl_client all.rbl.jp, reject_rbl_client sbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client list.dsbl.org, permit_mynetworks, check_client_access regexp:〜云々〜, check_client_access regexp:〜云々〜, check_client_access regexp:〜云々〜

また、S25Rは誤フィルタを防ぐ為にホワイトリスト(許可リスト)を設定する必要があります。ホワイトリストも上記S25Rのサイトの「ホワイトリスト情報」ってところにあります。 で、この情報は頻繁に更新がなされるので、更新されたらメールで知らせてくれるようにcronに以下のソースを設定しています。

更新お知らせシェル

頻繁にチェックすると相手のサイトに迷惑なので、一日一回だけのチェックにしてます。ちなみに以下の設定だと、サーバのroot宛にメールを送るので、その辺は環境に応じて旨く設定してください。 なお、あくまでお知らせするだけで、更新はしてくれません。

#!/bin/csh wget –no-cache -q -O /etc/postfix/white-list.txt.check -T 10 http://www.gabacho-net.jp/anti-spam/white-list.txt if ( $status […]

body_checks

前にpostfixでヘッダーチェックをしてSPAMメールをフィルタする話を書きましたが、今回はbody_checks、つまりメール本文を見て不要ならフィルタするというもの。 まぁ、設定とか書いてもいいんですが、結論から言うと使えません。 軽く調べたら、どうもメール本文がBASE64とかでエンコードされてると、body_checksはデコードしてくれないので、フィルタできないとのこと。 BASE64でエンコードした情報をフィルタ設定として書けばいいのかもしれないけど、面倒だからやめ。 ってことで、この方法は他の手段を考えよう…

postfixでSPAM対策その2

うちのメールサーバのSPAM対策は、設定で遮断できるところ遮断し、できないところはRBL(Realtime Blackhole List:ブラックリスト)で遮断しています。ブラックリストはspamcopの効果が圧倒的に大きいですね。誤登録も多いらしいけど。 サーバ側ではグレイリストは使ってません。誤遮断が怖いのもあるけど、正か誤りかの確認がしづらいのが理由。だから、クライアント側で振り分けて1つ1つ確認しています(Beckyの深海魚フィルタ)。 で、今回はpostfixの機能の一つを追加してみました。header_checksとbody_checksというのがあるのですが、今回はheader_checksです。メールヘッダーに任意の文字列がある場合に、エラーを返します。やり方は以下のような感じ。 /etc/postfix/main.cfに追加(元々コメントアウトされてる)。 header_checks = regexp:/etc/postfix/header_checks /etc/postfix/header_checksに追加(ファイルは元々ある)。 /^Message-ID:.*xxxxx.jp>/ REJECT /etc/postfix/header_checksには元々コメントがいっぱい書いてありますが、すべてコメントで無視されるので、一番下にでも追加すればいいでしょう。 上記の定義の意味は、「^Message-ID:」はヘッダーの中の「Message-ID:」のことです。「^」が文頭を意味しています。「.*」は任意の文字。Message-IDにはいろいろな文字が入りますので、そこを省略しています。「xxxxx.jp」のことろは、そのSPAM特有の文字列を示していています。「Message-Id」はSPAMじゃなくてもヘッダーに入っていますが、SPAMメールのヘッダーをよく調べて、明らかにSPAMにはコレが書かれているという単語がわかればそれを正確に入れましょう。最後のREJECTは、「遮断」の意味ですね。 他にもX-Mailerとか指定できるので、ググルといろいろ調べてみるといいかもしれません。ちなみに「/~From:.*xxxx.net>/ REJECT」がうまくいきませんでした…何でだろう? この機能は、「マッチした場合にエラーメール(バウンスメール)を返す」ではなく、「マッチした場合に相手サーバにエラーを返す」です。 バウンスメールってSPAM業者には全く効果が無いので、このすぐにエラーを返すという動作もいいですね。

SPAMメールフィルタ

メールソフトはBecky!(http://www.rimarts.co.jp/)を使ってます。 軽快で高機能で、プラグインとかで拡張できるので、気に入っています。 で、長くWebを公開してたりとか、技術者なのでMLとかに入ったりとかで、SPAMメールがよく届きます。無差別メールとかも多いッスね。 SPAMメールはメールサーバでかなり厚くブロックしています。 昨日ブロックしたメールの件数が、ブラックリスト別だとこんな感じ。 – Using Black lists – 102 bl.spamcop.net; 12 all.rbl.jp; 6 list.dsbl.org; 4 sbl.spamhaus.org; メールサーバをqmailからpostfixにしたことで、User Unknownはメール受信中に送信者に返せるようになったし(qmailは返信メールになっちゃうので、ほとんど届かない)、ブロックも送信者に通知されますが、まぁ一向に減りません。 結局、10通くらいはこういうフィルタを通過して受信しちゃいますが、最近はシーラカンスソフト(http://coelacanth.on.coocan.jp/)のメールフィルタ(Becky!のプラグイン)を使って分別しています。なかなか賢くて、これで漏れるメールは数日に1通くらいになりました。 初期は、英語メールを無差別にフィルタしたりとか微妙な動きをするけど、学習させていけば、かなり制度が高くなりますね。 学習ってどういう仕組みなんだろうとか思いますが、ワンクリックで出来るので、楽です。 ってな感じでかなりお勧めですよ。

postfixでSPAM対策

うちではブラックリストの設定をこんな感じにしてます(比較的に固め?)。 ・main.cfの一部抜粋 smtpd_client_restrictions = reject_rbl_client all.rbl.jp, reject_rbl_client sbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client list.dsbl.org ※ブラックリストの指定は変化することがあるので、これを丸写しとかしないように注意。 smtpd_client_restrictionsは、

SMTPサーバがクライアントからSMTP接続の要求を受けた際に適用する、オプションのアクセス制限。

だそうです。 fedoraとかだと、LogWatchを仕掛ければどのブラックリストでどの位ブロックしたかをサマリーしてくれるけど、家はちょっと独自にシェルを組んでます。 $ cat blocked_mail.csh #!/bin/csh # 前日のブロックされたメールをサマリしてくれる setenv TZ JST+15 setenv LANG C # blockedを集計(rlytestはテストっぽいので除外) grep "^`date ‘+%b %e’`" /var/log/maillog* | \ grep ‘blocked’ | grep -v ‘rlytest’ \ > /tmp/blockedmail.tmp echo ” > /tmp/blockedmail2.tmp echo "- Using […]

postfixでSPAMブロックの状況

昨日のSPAMブロックの結果。 RBL.JP 25 SPAMCOP 28 SPAMHAUS 3 SPAMCOPは昨日追加したばっかりなんだけど、やっぱり効果は高いな〜。 それでもすり抜けてくるのがちょうど10通くらい。もう少し様子を見てみるか。 あ、ちなみに情報サイトはいくらでもあるから、これから参考にする人がいるかわかんないけど、うちのサーバは、main.cfに以下の通り追加しただけです。 smtpd_client_restrictions = reject_rbl_client all.rbl.jp, reject_rbl_client sbl.spamhaus.org, reject_rbl_client bl.spamcop.net

postfixでSPAM対策へ

qmailの時からSPAMに悩まされていたので、postfixにしたことを機にSPAM対策を強化してみました。 SPAMが多い理由は過去に海外のMLに入っていたのと、ホームページにメアドを載せてたからかな(メールサーバの解説でもダミーのメアドが載ってるけど、それも全て拾ってるようで、そのアドレスにもよく届きます)。今もメアドを載せてるけど、ここの対策は微妙。 とりあえず、今までの経過は以下の通り。 qmailからpostfixに変えた。 qmailはサーバに居ないユーザでも一度受け取っちゃいますが、postfix(っていうか普通のメールサーバは)受け取らずにUserUnknownを返します。qmailは仕組み上しょうがないけど、エラーを送信者(詐称されてる)へ返信し、それがバウンスメールとして管理者に返ってくるので、偉い面倒。 postfixにしてから統計を取ったけど、一日160通くらいUserUnknownになってるので、もう少し根本的に対策とらないとダメかな。 ブラックリスト機能を有効にした。 qmailでもできたことだけど…。 まずは、RBL.jpを設定。現状平均で20通くらいのメールをブロックしてくれています。まぁ、それでも一日10通くらいSPAMが届きます。 次にSpamCopというブラックリストも追加。ここはちょっと遮断しちゃうところが多すぎるらしいので微妙ですが…。まぁ、ブロックしたメアドを毎日サマリーしてくれるシェルを作ったので、しばらく様子見ですかね。 まずはこんなところかな。

気になったFSWikiのプラグインモジュール達

メニューを切り替えるプラグイン http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F278

携帯端末用 http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F244

Wikiメニューにアイコン http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F233

カード型DB(α版とのことで、今後大いに期待) http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F215

HTMLっぽいの http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F160

http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F157

ツリービュー http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F154

アクセスカウンタ http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F150

天気予報系? http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F130