2006年04月18日

メールサーバの構築

最近、自宅サーバでメールサーバの構築をやっています。

なんか、こう、Linux いぢりって楽しいっすね。使えば使うほど中の動きが見えてくるような気がするというか。

新しいコマンドを知ったり。合理的な仕組みに心底関心してみたり。シェルスクリプトだけでもかなり色々な事ができて面白いし、本当に興味が尽きない。こういうのは Windows では味わえない楽しさだなぁ、と実感し始めています。

まぁ、半月程打ち込んでないコマンドはきれいさっぱり忘れて、いつも泣きながら調べなおしているわけですが。

Unix 系のコマンドって、なんで誰も連想できないような難解なファイル名になっているんだろう…(゚-゚)

そういえば、サーバの連続稼動時間がいつの間に四ヶ月を越えていました。自己最長記録。特に不安定な部分も無いし、一通り構築が終わったらリブート かけるけど、これなら一年越えるのも夢ではなさそう。Windows 鯖の時なんて、毎月 Windows Update の度にリブートかましてたからねぇ…。やってられませんわ。

閑話休題

Windowsでメールサーバを建てていた頃は、XMailを使って、FINGER / SMTP / POP がオールインワン (この時はオールインワンの本当の意味を理解していなかった) なメール環境を構築して使っていました。

これと同じ感覚で、 Linux に移行してからも XMail を使おうと思っていたら、全然環境が揃わないという事実が発覚。今まで XMail の設定を CGI でブラウザから設定していたのに、 Linux 環境では全く動作しないときたもんだ。

ググってみても Linux で動かすための有用な情報は殆ど見つからない。動くバイナリはあれど、設定できる環境が無いんじゃ死亡確定です。そんな弱音を吐いている自分もヌルすぎます。

というわけで、ズルズルとメル鯖地獄へとハマっていく事になりました。とりあえず、どんな物があるのかネットで調べてみる。

「なになに、…ほうほう、Postfix とか Teapop、Sendmeil、Qpopper、…むー、色々あるんだな。…ん? それぞれの役割…? どういう事?? 」

「…げっ、POPやSMTPはそれぞれ別々のソフトが担当していて、多数あるソフトの中から選別して組み合わせて使うのかよっ! (やけに説明的)」

半日もあれば構築できるだろう、なんてたかを括っていた自分が愚か者でした。XMail の掲げる「オールインワン統合サーバ」ってそういう意味だったんすね。orz

すぐにでもMailを使えるようにしたいのに、今さらWindows鯖なんか(嘲笑)には戻れない、というジレンマと絶望感が自分を襲う。XMail が偉大に見えた一瞬…。

とはいいつつも、ここ数日の休暇を使いながら、先人達のお知恵を拝借して、なんとか動くようにはなってきました。…が、まだまだやることは沢山あります。とりあえず考えている構成は、 ざっとこんな感じ。

Postfix(SMTP認証) / Teapop(APOP) / Courier-IMAP(IMAP)
Mailman(ML) / SquirrelMail(WebMail)

最初は Drac を使って無難に POP Before SMTP でお茶を濁そうと思っていたんですが、時流に添ってないとか、これからはSMTP認証でしょ、とか書かれているのを見てからやっぱり気が変わりました。テヘ。

それと途中に SpamAssassin を挟んでスパム退治を入れてます。ある意味、生きがいですから

現状は、SquirrelMail からは送受信ができて MUA はまだ使えない感じ。そろそろこの辺もなんとかしたいなぁ…。

完成への道のりは遠い…。

2006年04月18日 14:35 | Permalink | Comments [1] | Trackbacks [0]

2005年11月02日

SSHへの大量不正アクセスを遮断

最近、SSHを外部へ開くようになってから、大量のブルートフォースアタックを食らうようになりました。

ここんとこ流行っている手口らしく、ググってみると同じアタックに悩まされている人が結構多いみたいです。
これ、やり方がかなり強引で、3アタック/5secくらいの短い周期で、想定されるIDを使って長時間アタックを仕掛けてきやがります。酷い時は6時間くらい連続でやられた事もあります。
パスワードを使わないログイン認証しか試してこないので、うちの鯖に対しては永遠に無駄な努力でしかないんだけど、大量のログを残していってくれるのでHDDに優しくないし気持ち悪い。

そんなわけで、SSHへのアクセス制限を設けることにしました。

対策には、linux-users ML の、[linux-users:104973] Re: SSHの大量不正アクセスログで紹介されているシェルスクリプトを使わせてもらいました。(Kentaro Shinto氏に感謝!)

うちでは、多少手を加えて以下のとおりにしてあります。

/etc/hosts.allow に以下の内容を追加

sshd : ALL : spawn ( /usr/local/bin/block_ssh_attack.sh %c 120 5 ) : allow

以下のファイルを /usr/local/bin/block_ssh_attack.sh に作成

元のスクリプトをそのまま使うと、ログインに一回失敗しただけで問答無用のアクセス制限をかけられてしまうので、以下の内容で若干手を加えています。

・IDを間違えても、パスワード入力作業をして跳ねられた場合は制限無効 (ウィルスはパスワード打たない & typoの多い自分用^^;)
・明らかにウィルスやクラッカーのしわざと判断できるアタックについては、120分間廊下に立ってなさい。
・上記以外は5分間のアクセス拒否

しかし、手を加えた部分がかなりのやっつけ仕事風味っすね…。何ぶんシェルスクリプトをいじったのは生まれて始めてなもんで、こんな程度でも試行錯誤の連続でした。他の人が書けばもっと綺麗になると思うんだけど、ちゃんと動いてるからこれで良しとしてます…。
あと、IPv4-mappedアドレスとIPv4アドレスの扱いがごっちゃになってるのもアレですが、とりあえず今はこれで良し。吐き出されるログはIPv4-mappedなのに、host名を逆引きするとIPv4で出力されるんだよね。BIND9でIP6の設定してないのが原因だと思うんだけど、設定がよくわからんのです。わはは……そのうち直さねば…。

…と、やっとの思いで鯖に組み込んで、完璧(人´∀`).☆.。.:*・°なんて思っていたら、iptables単体でルールを設定する方法を見つけてしまいました。この方がスマートで鯖への負荷も少なそうです…。まぁ…でもスクリプトだとホワイトリストや切り分けができるからいいかな。と、自分を納得させる事にします。シェルスクリプトの勉強にもなったしね。

2005年11月02日 18:44 | Permalink | Comments [0] | Trackbacks [0]

2005年09月16日

サーバがお亡くなりになりました

アレコレいろいろと入っていたサーバが、先日お亡くなりになりました。
ここのblogにアクセスできなくなっていたのも、それの関係だったりします。

ここ数ヶ月の間、HDDが異音を上げてみたり、電源のAVアダプタが異常に過熱していたり、LANケーブルを伝ってIP電話に謎のノイズが混入してみたりと、サーバの調子がヤバいくらいに思わしくなかったので、2週間程前に次期サーバとなる予定の AMD Geode NX +1500 と、Tyan S2498AGNN その他もろもろを購入。
今までのWindowsサーバからおさらばして、Debianに乗り換えようと、慣れないOSにあれこれと試行錯誤している最中に、昇天となりました。


うわーん、せめて構築が終わるまで待ってよう。・゚・(ノД`)・゚・。



仕事に押されている中で時間を作り、一週間程度でどうにか一通りの形にはなってきたけど、まだまだやることが沢山あって、ちょっと泣きが入りそうです。。

って、実は半分以上趣味の一環だから、それほどでもないんだけど…。
やっぱ日ごろのバックアップは大事だね。大切なデータ類が消失してないのが唯一の救いかな。

とりあえずblogが復活したので、報告です。
あー、時間が欲しいなぁ。

2005年09月16日 18:07 | Permalink | Comments [0] | Trackbacks [0]

2005年05月03日

inktomisearch.com からのお客さん

今日、なんとなく Apache のログを眺めていたら、 ***.inktomisearch.com というホストから頻繁にアクセスがあるのを発見した。

かなり短い間隔で何度もアクセスがあったようなので、何かと思ってググってみたところ、どうやら米国Yahoo!が使用している、サーチエンジンのクローラーである事が判明。なんか、短時間で大量のリクエストを送りつけてきたり、80番ポート以外にもスキャンをかけてきたりと、かなりお行儀の悪いクローラーらしい。

それにしても、このサイト開いてまだ1週間も経ってないのに、どこから嗅ぎつけてきたんだ? まったく…サーチエンジン恐るべし…

ということで、米Yahoo!に登録されても何も良い事無いし、これ以上大量に来られても困るので、今後はアクセス制限をかけてご遠慮願う事にしました。

.htaccess に以下の行を書き加えて対処なのだ。

order deny,allow
#Inktomisearch.com
deny from 66.196.64.0/18
deny from 68.142.192.0/18
deny from 72.30.0.0/16
deny from 74.6.0.0/16

これで ***.inktomisearch.com からのアクセスは 403 Forbidden となるはず。(´ω`)モニュモニュ

しかし、米Yahoo!必死だなぁ。。こんなロクでもないもん使ってるんじゃないよ…。。

※07/05/08 : IPアドレスを追加

2005年05月03日 00:58 | Permalink | Comments [0] | Trackbacks [0]