Archive for the 'LINUX' Category

Backscatter対策を考えてみた。

LINUX No Comments »

Backscatterというのは例えばウチのメールサーバーのドメインがexample.jpだとすると、スパマーがこのFromのFQDNにexample.jpを使ってあっちこっちにスパムをばら撒いた結果、バウンスしたメールがウチのメールサーバーに戻ってくる、いわゆるバウンススパム?といったところでしょうか?

そこで、ポリシーサービスを使ってこれをある程度抑止することはできないものかと考えてみました。

1.自ネットワーク内(postfix自身が外部への配送を許可するネットワーク)からのリクエストならばポリシーサービススクリプトでfromのアドレス(キー)と現在時刻(値)を記録する。
2.自ネットワーク外からのリクエストで且つfromのアドレスがMAILER-DEAMONとかならばポリシーサービススクリプトでrecipient(宛先)のアドレスが1のキーにマッチしなければ自ネットワーク内から送信したメールのバウンスではないと判断してREJECTする(そうでなければDUNNOを返して以降の処理を継続)。

※1のキーの有効期限を30分〜120分程度に設定しておく

これの欠点は自ネットワーク内からメールを送信して有効期限内にこの送信者アドレス宛てにバウンスメールが来てしまうと止められないこと。

要は自ネットワーク内からメールを出さない限り(もしくは有効期限切れならば)外から来たバウンスメールは一切受け付けませんよという仕組みです。

まぁ〜まだ頭の中だけのことなので、もう少し吟味して実験してから採用するかどうか決めます。

ウチに来るスパムメールは相変わらず減り続けている。

LINUX, Perl 1 Comment »

なんでしょうね?

ここ2、3ヶ月は平均200/日程度しか来ていません。

まぁ〜いいことなんですが、せっかく新サーバー機にして新しいスパム対策を施したというのに、なんか張り合いがなくなってしまってちょっとつまらない・・・┐(´д`)┌

vine4.2+apache2.2.8+php5.2.6+suphp-0.6.3のインストール

LINUX 2 Comments »

個人的メモみたいなものです。

あまり参考にはならないかも・・・・

新自宅サーバー機

LINUX, 自作PC 1 Comment »

買うお金が溜まったので新しい自宅サーバー機用のパーツを購入。から1週間、今日すべてのパーツが揃ったので組み立てました。

新自宅サーバー機

右が今のサーバー機、左が新サーバー機

ケースは同じなので違いが分かりません(゜Д゜)

Clamav0.93がリリース

LINUX 2 Comments »

今回はVineSeedにclamav-0.93-1vl5.src.rpmがあったので、以前の手順でアップグレードしました。

ところでVine5はまだなのかな〜?

vine seedにpostfix-2.4.7を発見!

LINUX No Comments »

ということでアップグレード!

1.http://vinelinux.org/vineseednews.html#postfix-2.4.7-1vl5をwgetしてくる

2.sleepパッチを当てるためにsrc.rpmをインストール

3.http://k2net.hakuba.jp/pub/postfix-sleep.patchを2.4.7用に編集

4.specファイルにpostfix-sleep.patchを追加

5.使わないldap、mysql、postgresをspecファイルから除外

ここまでやったところで面倒くさくなってやめました・・・(A`)

以前書いたcheck_policy_serviceで自作のスクリプトへ渡すことにでここのところずっと仕事でpostfixを弄っていたのでちょっとしんどくなったのですヨ。

今週の中頃から運用が始まったのですが現在↑のフィルタサーバー2台で約300万/日のメールを捌いています。

実際には動的IPらしきホストからのもをsleep 35>ポリシーサービスという流れにしてあります。

これで全体の6割は流量制限できている感じです。

細かいチューニングがまだまだ必要そうですけど・・・・

というかこんなにメールが多いとは思わなかったです・・・

vine4.2.1がリリース???

LINUX, 雑記 No Comments »

今朝apt-get -s upgradeしたらvine4.2.1らしきものがリリースされてたのでアップグレードしてみた。

特に変化なし・・・

現在のところ公式にも載ってないのでなんだったのかわかりません∩(・∀・)∩

侵入コンテスト、LeopardとVistaは陥落するもUbuntuは健在

さすがUbuntu!!といいたいところだけど、一般的なアプリケーションの数でいえばVistaの方が圧倒的に多い分不利なような気がするけど・・・

まぁ〜Ubuntuは好きだからいいけどね(´∀`*)

check_policy_serviceで自作のスクリプトへ渡すことに。

LINUX, Perl 1 Comment »

先週の土曜日あたりから親知らずがコンニチハしてきて若干痛いです(´;ω;`)

さて先日のsmtpguardですが、元々はqmail用だったみたいですね・・・

ubuntuのリポジトリにはpostfix-smtpguardっていうのがありますが。

で、肝心の会社のフィルタリングサーバーの件ですが、結局check_policy_serviceを通して自分で書いたスクリプトでフィルタリングすることにしました。

先日書いたように、本来はGateWay的なポジションにあるサービスなのでスパムをゴリゴリ弾くわけにもいかないので以下のような運用ポリシーにしました。

1.逆引き不可&逆引きしたホスト名が動的IPっぽいとこからきたものであった場合にcheck_policy_serviceでスクリプトに渡す。
2.スクリプトはエンベロープのFROMとTOのFQDNを組み合わせたキーにして値にリクエスト時間を記録する(同一キーの記録数はコンフィグで指定)。
3.スクリプトは2のキーからのリクエストが一定時間内(この時間もコンフィグで指定)にコンフィグで指定した回数を超えた場合は450で要求を拒否する。
4.スクリプトはリクエストがある毎にコンフィグで指定した時間を越えた2のキーは削除していく。
5.チェック対象のFROM、TOのFQDNはコンフィグで定義しておいてこれに該当しないものはスルーする。

といった感じ。

上記のスクリプトはperlで作成してデータの記録にはDB_File(BTREE)を使用。

正確には4→3→2の順番で2は3の条件を満たしていない場合のみ実行されます。

このスクリプトはすでに作成済みで後はpostfixに組み込んでテストするだけです。

ちなみにコンフィグは以下のようなフォーマットに
[FROM FQDN][TAB|SPACE][TO FQDN][TAB|SPACE][LIMIT TIME][TAB|SPACE][LIMIT COUNT]
example.com   example.jp   5   10

上記の場合example.comからexample.jpへの送信は5分間に10通まで要求を受け付けるという設定。

前回はお客さんのメールサーバーからリレーされてくるだけだと思っていたのですが、このサービスのサーバー管理者から詳細を聞いてみたところお客さんのメールサーバー(お客さんのエンドユーザーが外部へ送信する場合)だけでなく外部(お客さんのエンドユーザー宛)からも送信されてくるみたいで、さらに外部からのスパムが今回の悩みのタネだったというオチ。

そこで、上記スクリプトで外部からのFROM(スパマーがよく使うフリーのメアド)とTO(お客さんとこ)のFQDNをキーにして短時間に大量にスパムが送られてきてもコンフィグで指定した一定時間の間に一定数に達した時点で450で弾いて配送数を制御してしまおうと思ったのです。

こうしておけば正常なメールが弾かれてしまっても再送されてきたときに許容数を超えていなければちゃんと要求を通すことができるというのが今回の目玉。

最初はコンフィグでのチューニングがとても大変かもしれませんが、それはこのサービスのサーバー管理者が担当するのでキニシナイ!

smtpguard

LINUX No Comments »

仕事の関係でスパムメール対策をすることに・・・

まぁ〜いきなり降って沸いた話だったので詳細はまだ分かっていないのですが、会社のサービスでメールのウィルスチェックサービスをやっていて、お客さんのメールサーバーからリレーされてきたメールをウィルスチェックしてるんだと思われる。

そこへかなりのスパムメールが来ていて相当な負荷が掛かっているらしい・・・

そこでスパム対策の為にフィルタリングサーバー(postfix)を別途設置してこのサーバーでスパムを抑制して負荷を軽減しようということらしいのですヨ。

サーバー監視スクリプトを修正しました。

LINUX, Perl No Comments »

以前作成したサーバー監視スクリプトにバグが見つかったので修正しました。

Socketで接続後にレスポンスから取得した文字列が静的コンテンツと動的コンテンツの場合で違うことが判明したのです。

これは常識?( ゜Д゜ )

■静的コンテンツの場合
・HTTPヘッダー終了後にコンテンツのソース

■動的コンテンツ(CGIやPHP)の場合
・HTTPヘッダー終了後にコンテンツのサイズ?らしき数字(英数字の時もある)
・次行にコンテンツのソース
・最後に0

というようなレスポンスだったので、これに対応させるよう修正を加えました。