メールサーバーのWebMail機能


メールサーバーのWebMail機能

やはり自分でサーバーを立てたのだから、使い勝手はよくしたい。

また、最近だったらAjaxなんかいれてリッチな画面にしたい。

という要求を満たしてくれる何かを探してました。

AtMail

Webブラウザによるメーラーという感じです。

サーバー指定することからみて、メールサーバーと独立しての使用ですね。

外部のメールサーバーにつなぐ用途ならこれでしょう。

サーバー設定をアクセスごとにしなきゃいけないとしたら、大変なので見送りました

http://atmail.org/

RoundCube

こちらは、設定は管理者のみ。ユーザーはログインのみで使用できます。

Outlookのような画面になるので使い勝手はよさそうです。

http://oss.poyo.jp/roundcube-ja/

これらのことから、Roundcubeを導入してみることにしました。

ブログツールとか

http://www.blogn.org/

複数ユーザーに対応しているらしい。非営利で使用OK

MovableType

もう既に説明するまでもなくメジャーなブログ

PwBlog

ビジネス使用用途っぽい。ちょっと殺風景な感じがした。
http://www.pwblog.com/

tDiary

今自分が使ってるツール。今風?って聞かれるとちょっと困るけど使っていて特に問題はない。
http://www.tdiary.org/


delegate


サーバー方針

VMごとに同じサービスを提供することもあるのでDelegate導入を決定。

  • httpとかftpとかはリバースプロキシで運用することにする。
  • pop/smtpはリバースプロキシとはならないので、代替案にて対応

振り分けはDelegateに任せるか(専用VM)、ルーターで何とかするか、の2つの方法でがんばってみることにする。

Delegate導入

本家サイトより delegate*.tar.gz をダウンロードしてくる。
そして、中身を展開する。

wget http://www.delegate.org/anonftp/DeleGate/delegate9.9.2.tar.gz
tar xvzf delegate9.9.2.tar.gz

cd delegate9.9.2
make

展開後makeしようとしたら、gccなどのコンパイル環境入ってなかったため、
yum install gcc などでインストール。

また、cc1plusがないと言われて yum install gcc-c++ も追加

各種ディレクトリを作ってdelegateを動かす準備.

mkdir -p /usr/local/delegate/bin,conf
cp src/delegated /usr/local/delegate/bin

mkdir /var/log/delegate
chown -R nobody:nobody /var/log/delegate

これで動かす準備が整った

SMTPについて

リバースプロキシとしては無理そうだったので、
プライマリメールサーバーとセカンダリというような感じで1つが代表して受信、その後リレーをするということでなんとかしようと考えた。

きちんとしたDNS立ててMXレコード設定出来る状況だったら、delegateでうまく出来ると思います。

セカンダリという位置づけながらも、それを利用するユーザーにとっては最初のSMTPサーバとならなくてはいけない。

また、自由にSMTPサーバーを使われては困るが、ポート変更とかは許容できない。

そこで、ユーザーに向けSubmissionポートはこのセカンダリに転送することにする。

ルーターのポート転送でやってしまったが、Delegateのtcprelayでも出来るかも知れない。

Postfix側設定

設定には、main.cfに

relay_domains = リレー対象のドメイン名
transport_maps = hash:/etc/postfix/transport

を記述し、transportファイルに下記を追記
ドメイン名 smtp:ローカルIP:25

その後、
# postmap hash:/etc/postfix/transport
として、ハッシュを作った後でサーバー再起動.

pop3対応

外部からpop3も使えるようにしようと思う。これはDelegate使って何とかしてみた。

/usr/local/delegate/bin/delegated -P110 SERVER=pop MOUNT=”/* pop://DefaultServer/*” REACHABLE=”192.168.0.0/24″ REALIABLE=”*”

これでローカルIPな範囲にのみの pop3のプロキシとして働くはず。

POPのユーザー名に、
ユーザー名@処理対象サーバーIP(ローカルの)
としてあげれば、外部から指定されたローカルなメールサーバーへ接続しにいくようになる。

ちょっと格好がわるいけど、これで運用してみようと思う。


メールサーバー構築あとの設定


VMにサーバー構築 -メールサーバー

Postfixをつかってサーバーを構築。

手順とかに詳しいページはたくさんあるのでSMTP-AUTHにするときに自分が問題になった部分をメモしておきます。
誰かの役に立てば、あるいは、再度構築するときのメモとなるか。

ローカルでは問題ないものの、外部から使おうとすると問題になった。
ログを確認してみると、次のようなエラーが出ていた。

warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory

そこで、sasldb2を変更することにした。

postfixから読めるように属性を変更。
chown postfix.postfix /etc/sasldb2

認証を通過させるためにユーザー情報をセット

saslpasswd2 -u ドメイン名 -c ユーザー名
パスワードを設定させる。

これで準備は整ったので、telnetからテストを試みる。

telnetによるテスト SMTH-AUTH(PLAIN編)

認証に使う文字列を確認しておく。
生成のために下記のコマンドを実行してみる。

perl -MMIME::Base64 -e ‘print encode_base64(“usernameusernameuserpassword”);’

NULL終端でユーザー名いれてパスワード。これで文字列ができあがるのでコピーでもしておく。

テストのためにコマンドを打ち込んでいく。ここではSubmissionポートで実験。

telnet localhost 587
EHLO localhost
(ここで、PLAIN方式をサポートしていることが条件)
AUTH PLAIN 上記で取得した認証文字列

うまくいけばここで、Successfulと出てくるはず。

mail from: <メールアドレス>
rcpt to: <メールアドレス>
data
testmail.

.

でメール送信テストが出来る。

saslのメモ

ユーザーのパスワードを変更したい時は、

# saslpasswd2 -u ドメイン名 ユーザー名

ユーザーの削除

# saslpasswd2 -u ドメイン名 -d ユーザー名

ユーザー一覧表示

# sasldblistusers2


XenServer


なぜかブートローダー飛んだので

VMWareServerでちくちくと構築していた新環境だったけど、ブートローダーがとんで、
起動も出来なくなってしまったので、再チャレンジ。

と思っていたら、その間に XenServerが無償化したとのニュース。
そこで、こちらのほうを試してみることにしてみました。

起動まで

Raidカードに接続しているドライブではやはり起動できず、
また、GPTパーティションがいるとそれだけでシステム起動できなかった、
(ブートローダーが見つけられない?)ので、色々と手を尽くしてみた。

USBによるブートローダー

とりあえずUSBメモリにブートローダーを仕込み、ここから起動という手順で
今回は対処することにしてみた。

参考にさせてもらったのが、ここです。
http://www.sssg.org/sns/naganuma/weblog/89.html
この通りに、やってみてMBMを使うことで、Raidカード上の論理パーティションから起動させることに成功しました。

XenServer&Centerインストール

ダウンロードしてきたisoイメージで普通にインストール。

クライアントとなるWindowsPCに XenCenterをインストール。
これらは何も問題になることはなかったです。

仮想マシンの作成

最近出たという CentOS5.3を選択したのが間違いでした。

これ、XenServer上では動かすことが出来ませんでした。なにやらドライバ見つからないのかインストーラー途中から進めません。

また、設定のテンプレートもlocalのmediaからインストールできるものを選択しなくてはいけないようです。
これらに注意して、CentOS5.2のディスクからならばインストールができました。

XenServerToolsインストール

仮想VMでマウントしてからの話。
マウントすると linuxってディレクトリがあったので、その中をのぞいてみると、インストーラーとしてのスクリプトがありました。

これを実行するだけで終了。
結果、メモリの使用状況とかがXenCenterのルートからみれるようになりました。


サーバー設定作業中


CentOS on VMWareServer

時刻がうまく同期できない!ということで試行錯誤してました。

CentOS5.2では下記の設定をやってから、ntpdつかうとうまく同期取れるようになる模様です。

bootのgrub.confに追加

kernel /vmlinuz-2.6.18-92.1.22.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet divider=10 clocksource=acpi_pm


サーバー設定作業中


ユーザー認証をLDAP使う

仮想サーバーを複数用意しつつも、認証は1つにしておきたいなぁということで、
認証サーバーにLDAP入れることにしました。

そして、ユーザーが、user1, user2,user3 がいるとして、

  • サーバーAには、user3 をログインさせたくない
  • サーバーBには、user1 をログインさせたくない

ということが出来ないとまずいなーと思い、調べ&テストしてみました。

LDAPの設定

既にladpによるユーザー認証は出来ているとします。

まず、クライアント側の、/etc/ldap.conf を編集します.

エントリの修正

LDAPのユーザーエントリに下記を追加します。

user1

host: serverA.mydomains.jp

user2

host: serverA.mydomains.jp
host: serverB.mydomains.jp

user3

host: serverB.mydomains.jp

このように許可するホスト名を書いておくことでOKとなります。

その他

CentOSで authconfig に手こずりました。

# LANG=C authconfig-tui

これで見慣れたCUIの設定画面が出てきます。


ゲームプログラマになる前に覚えておきたい技術


あちらこちらで、話題になっている本。分厚さはなかなかのものです。
既に手元に持ってますが、ついつい書店で見かけると目がいってしまいます。
なんせ厚さが初期のGAME PROGRAMMING GEMS並ですし。立ち読みには苦しいし。

品切れで今はなかなか手に入れられないという情報を聞いたのですが、
本日川崎のあおい書店で6冊ほど棚にあるのを確認できました。

欲しい人は、今なら買えるかも。

いや、書店に行ったのは、Gems7がどんなものか見たかったからなんですけどねー。


2TB制限に引っかかった


どうやら、2TBの壁があるっぽい。

うちでは、

  • 1TB x4

のRAID5構成をしており、容量としては、2.7GBほどとなっている状態でインストールしたが、

datastore作成時に 空きスペースが700Gほどと報告されている。

それでは2TBのストレージではどうだろうと、アレイを組み直して再チャレンジするも、
今度はパーティションの読み取りに失敗したようなメッセージを出す。

海外サイトを調べてみるとどうやら、up to 1TB となっているようだ。

うーん、これじゃうちのサーバー集約には使えないなぁという結果に。
残念です。

これらを考えてうちの方針

意外とESXiが微妙だった。よって他の方法を考えなくては。

  1. Xenを使って振り分け
  2. VMware Serverにチャレンジしてみる

以前の結果でXenもまた微妙であったので、ここは(2)ですかね。

素直にCentOS5.2でAdaptec 3805を認識してくれたので、しかも最新ドライバで動いてる、ので助かった。


VMware ESXi


VMWare ESXi

USBメモリにインストールして、という方法があってみてやってみたもののカーネルパニックになるのであきらめ。
素直に、CDROMからブートさせる方法をチャレンジしてみたところ、起動までは確認出来ました。

しかしながら、ネットワークが認識されない。8111Cチップではどうやらダメらしい。
次ネットワークカード買ってくるまでは、続きは出来ないかなぁ。

あと、ストレージにはadaptecのカードしか認識されてなかったので、
標準のM/Bオンボードのなにかだと、そこでも躓いたかもしれない。

インストールまとめ

  • ストレージ用は、何らかのRaidカードなりを準備(adaptecを用意してみた)
  • ネットワーク用も有名所のカードを備える(Intel/3Comとかその辺)

このあたりを乗り切れば、インストール自体は成功しそうです。

インストール直後、ネットワークが認識されていれば、IP変更できるので、
環境に合わせて修正する。もし初期状態に戻すくらいのメッセージしか出ないなら、それはネットワークカードが認識されていない。

VMware Infrastructure Client をインストール

操作用のクライアントとして’VMware Infrastructure Client ‘をインストールする。

これはESXiインストールしたマシンからダウンロードできる。
httpによるアクセスでページが表示できるから、その中のリンク、
Download VMware Infrastructure Client
をクリックして、インストールする。



新サーバー


色々とパーツが揃ってきたので、こつこつと構築中。
今回やっとハードウェアRAIDカードを投入!これで1TBを8つ with RAID5とか出来る!!

しかし無事にPCIe x16の部分にさしてうまく動いてくれているようでよかった。
この部分が不安事項だったんですよね。

ちなみに購入したのは、

  • adaptec ASR-3805

です。これからこの性能とやらを体験してみたいと思います。

予定

  • xen を入れて、仮想サーバーをいくつも動かしてみる
  • VMware ESXi を入れて、仮想サーバーをいくつも動かしてみる

というあたりを考えてます。

ちょっと前に、xenはやってたので、ESXiにチャレンジの方向で。
このカードもESXiで使えるらしいということも確認してあるので。

xenについては、コンソール関係が怪しい状況だったので、
ESXiがまともにいけたら、こっちで確定かなー。