September 2008 Archives

サーバー稼働中!

| | Comments (0) | TrackBacks (0)
まだ公開はしていませんが、サーバーのセットアップは数日前に全て終了しました。
いや~、メールサーバーやバーチャルホストの設定などいろいろ勉強になりました。
ちゃんとスパムフィルターやウィルススキャンの設定もしましたよ~!

というわけで、とりあえずサーバーのセットアップが終わったので来週からはまた例のプロジェクトの開発に取り組めそうです。公開できるレベルにまで達したらこのブログでも発表したいですね。
まあトラフィックはかなり低いですがw。
まずメールユーザのアカウントの設定をWebで簡単に行えるように postfixadmin をインストールします。
UbuntuのRepositoryには入っていないので、

http://sourceforge.net/projects/postfixadmin/
から現時点で最新版のpostfixadmin2.2.1.1all.debをダウンロードしてインストール。


dpkg -i postfixadmin_2.2.1.1_all.deb

上記コマンドを実行するとPostfixadminは"/usr/share/postfixadmin/ "にインストールされます。
設定ファイルは"/etc/postfixadmin/config.inc.php"です。
またApacheにaliasが追加されます → /etc/apache2/conf.d/postfixadmin

続いてPostfixadminの設定ファイルを編集します。

vim config.inc.php
[...]
$CONF['configured'] = true;
$CONF['postfix_admin_url'] = 'http://example.com/postfixadmin'; 

$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'YourPassword'; //Change here
$CONF['database_name'] = 'postfix';

$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
$CONF['encrypt'] = 'cleartext';


設定ファイルの中に記載されているドメインを自分のものと置き換えます。

cd /usr/share/postfixadmin
sed -i "s/\@change-this-to-your.domain.tld/\@example.com/g" config.inc.php
sed -i "s/change-this-to-your.domain.tld/example.com/g" config.inc.php
sed -i "s/Return to example.com/Return to www.example.com/g" config.inc.php

Postfix用のデータベースとユーザーを作成します。


mysql -u root -p
mysql> create database postfix;
mysql> grant all privileges on postfix.* to 'postfixadmin'@'localhost'
                        identified by 'YourPassword!';
mysql> flush privileges;
mysql> \q

ブラウザを開いてhttp://yourdomain.com/postfixadmin/setup.phpへ移動します。
SetUpCheckerが全ての項目に対してOKと表示するか確認。
場合によってはphp5-imapなどをapt-getでインストールする。
OKならAdmin用のEmailAddressとパスワードを登録。 登録し終わったらsetup.phpは削除。
続いてhttp://yourdomain.com/postfixadmin/へと移動。 先程setup.phpで作成したAdminアカウントでログインできるか確かめておく。 (注...まだドメインやメールボックスは作成できません)

次回はPostfix本体の設定を暇なときに書きます。
今回はテキストパスワードによるログインを無効化し、公開鍵暗号方式によるログインを可能にする。
鍵方式によるログインの方が攻撃者の侵入を防ぎやすいからです。
これでセキュリティ的にはかなり上昇します。

初めての方は下のリンク先にあるページでも見てみるといいと思います。
Puttyで鍵交換方式によるSSH接続

(メモ)
1. Puttyで作成した公開鍵をOpenSSH形式に変換するコマンド。
  • ssh-keygen -i -f id_rsa.pub >> authorized_keys
2. 転送した公開鍵ファイル(id_rsa.pub)を忘れずに削除。
3. ターミナルエミュレーターとしてPoderosaを使う場合はPuttyで生成した秘密鍵を「ssh.com」形式へとエクスポートする必要あり。

鍵のセットアップが終わってテストログインにも成功したら再度sshd_configファイルを編集します。

1. #PasswordAuthentication yesの行をUncommentして以下のように修正。
これで秘密鍵を所持していないとログインできなくなりセキュリティが向上します。
  • PasswordAuthentication no
2. 最後に新しい設定を有効にするためSSHを再起動!
  • sudo /etc/init.d/ssh restart
メモなので細かい説明はありません。

1. オリジナル設定ファイルのバックアップ
  • sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
2. バックアップファイルへの書き込み禁止
  • sudo chmod a-w /etc/ssh/sshd_config.original
3. sshd_configファイルをエディタで開き以下の項目を修正または追加

  • PermitRootLogin no
  • Port 2222 (追加)
    •  (LANでは22番、外部からのアクセスの場合は2222番ポートを使うようにする。ルーターでは2222番ポートのみForward。これで22番ポートを狙ったツールによる攻撃を防ぐ。)
  • LoginGraceTime 20 (ログインするまでの時間-20秒経ったら遮断する)
  • Uncomment Banner /etc/issue.net
  • AllowGroups sshlogin (追加)
4. sudo vim /etc/issueでログインの際に表示される警告バナーを作成。

5. symbolic linkを作成。
  • sudo ln -s /etc/issue /etc/issue.net
(内部コンソールからのアクセスでは警告メッセージが表示されないようにするにはissue.netのみを作成し、/etc/issueは空にしておく。)

6. sshloginグループに所属するユーザーのみログイン可能にする。
  • sudo addgroup sshlogin
  • sudo adduser <username> sshlogin

7. 最後に新しい設定を有効にするためSSHを再起動!
  • sudo /etc/init.d/ssh restart
自分が今使っているのはThinkPad T60pなので、ビデオカードは512MB ATI Mobility FireGL V5250というWorkStation用のを積んでいるのだ(爆)
ベースが確かMobility Radeon X1600なので12個のPixel Shaderと5個のVertext Shaderユニットを積んでいるはず。
以前から何となくどれくらいのパフォーマンスかは想像できていたのだがベンチは走らせたことがなかったので、ちょっと試しにFFベンチだけ走らせてみた。ちなみにFireGL用のドライバは普通のRadeon向けのドライバと違ってかなり安定性が重視されているため3Dゲームのパフォーマンスは同等スペックのRadeonより多少落ちると思われます。
さて、結果は以下のようになりました。
(注)CPUはCore2 Duo T7600(2.33GHZ) MemoryはDDR2 667MHZ 1GB x 2です。

FINAL FANTASY XI Official Benchmark 3
LOW: 6876
HIGH: 4319

まあファイナルファンタジーが快適にプレイできるスペックであるというのは間違いないですなw。
GeForce 9300M GSとCore2 Duo T9600(2.8GHZ)を搭載した最新のVaio TypeZでLow:7739 High:4946みたいだから悪くない結果ですな。もう買ってから2年近く経ちますし。
さて、これだとWindows Vistaのグラフィックススコアはたぶん4.2~4.5くらいなのかな。
どれくらいから快適にAeroが動くんだろう。。。3.5くらいからですかね?
日本の自宅にあるファンレスビデオサーバーに続き第2弾w。
半分はリサーチ目的、半分は遊びとして自分の部屋に設置するサーバーマシーンであります。

大まかなスペックは以下の通り。

Barebone: Shuttle XPC SG31G2 (Chipset:NB:Intel G31 SB: ICH7, Video: Intel GMA3100)
CPU: INTEL PENTIUM DUAL CORE E2160 1.8GHz (1MB L2 Cache)
Memory: DDR2 667MHZ 2GB (1GB x 2)
HDD: Seagate Barracuda ES 250GB 7200RPM(16MB Cache)

まあとりあえずは十分なスペックですね。というか、あんまりハイスペックにしちゃうとファンの音がうるさくなるから無理w。
しかし、これ全部で299ドルなんだから安いでしょう。
というのも、CPUはBulk版でShuttleのベアボーンはShuttleのRecertifiedであるため新品より4割くらい安かったのだ。でも届いたのは未使用の新品同様の品だったからかなりお得!
これにとりあえずUbuntu Server Editionをインストールするつもり。
運用は固定IP/独自ドメインでいきます。
ソウトウェアとしてはOpenSSH,Apache,Derby Database,Sailfin Application Server, Asteriskなどをインストールします。
ちなみにAsteriskっていうのはIP電話に対応したPBX(構内交換機)を実現できるソフトウェアです。
構内交換機とは要するに中継装置のことで複数の構内電話機を公衆電話回線網に接続して使用するのに使います。Asteriskは単にIP電話をするだけじゃなくて転送、ボイスメール、自動応答などの機能もあるため非常に人気があります。しかもオープンソースですからね。もちろんSIPにも対応しているので、先生の勧めもありjVoiceBridgeというSunが開発しているVoIP対応のaudio mixer(この機能で会議電話が実現できた)からAsteriskに乗り換えることになったのであります。
僕が開発中のIMSの機能を取り入れた電話会議システムですが、何とか11月中にきちんと動作するプロトタイプくらいは完成させたいです。しかし、コードの量が結構多いのでユニットテストが今から憂鬱。テストコードは実際のコードの3倍くらいになりそう。。。
shuttleG31.JPG
サンプルのおかげでZimletの開発は非常に順調です。
後はアプリケーションサーバーとのやり取りに必要なXMLファイルが守らなければならない規則をXML Schema(W3C)を使ってちゃんと書いてあげれば初期段階のテストができる。
全体のArchitectureの設計もできたし、研究室の先生が僕用にサーバーを一台買ってくれることになったから今後が楽しみ!まあコーディングの方はまだ山積みですがねw、完成までは。
ちゃんとしたWeb Interfaceも作らなければいけないので。
というか、今の自分のスキルでは厳しい部分もあるけど、そこは自分でいろいろ調べたりして勉強して乗り越えたい。
というのも、この今取り組んでるConcal Projectは何としても世に出したいと思っているのです。
あ、下の写真はまだまだ開発途中ですがConcal Zimletです。
というか、ロゴはもうちょっとちゃんとした専用のやつを作らないといけないですね。

Concal_UI_Beta.JPG

About this Archive

This page is an archive of entries from September 2008 listed from newest to oldest.

August 2008 is the previous archive.

October 2008 is the next archive.

Find recent content on the main index or look in the archives to find all content.