日記はてなダイアリーから引っ越してきました。この広告は、90日以上更新していないブログに表示しています。Pro(研究室の新サーバ)導入の記録server僕が所属している研究室では、これまでファイル共有サーバとしてWindowsマシンを常時起動していましたが、明らかにエコでないのと、マシンのHDDが破損した際のダメージが大きいため、RAIDにより複数のHDDを用いてデータを冗長化できるネットワーク接続ストレージ(NAS)を探していました。十年近く前からあまりメンテされていないメールサーバが動いており、こちらも代替品が必要でした。TS-239Proを購入してもらいました。HDDを2台、RAID1で冗長化して搭載しました。QNAP製のNASはおおむねどれもRAM上で組み込みLinuxが走っており、電源を入れたまま自由にHDDを換装したりできます。UPnPマルチメディアサーバといった機能を使えるようになっている他、QPKGという形式のプラグインを入れることでメールサーバなどとしても使えるようになります。実際にサーバが届いてからしたことを記録として残しておきます。後半にかけて結構マニアックですが、少なくとも研究室でサーバ管理者を引き継ぐ後輩には役立つはず...。IPKGをインストールするopensshをインストールしてadmin以外でsshできるようにするメールサーバの機能をインストールするその他諸々2つのHDDでデータを冗長化する同容量同型のHDDを2個入れてNASを起動し、マニュアルに従ってRAID1でデータを冗長化しました。2つのHDDに同じ内容が書かれるため、どちらか片方が壊れてもデータが損失することはありません。Listを確認してから購入するべきです。WesternDigital社製のものだとパフォーマンスが出ない模様。研究室ではSeagate社の1.5TBのHDDを使いました。IPを固定にするNASをサーバとして使うため、固定IPを振りました。Trunkingというらしい)が、研究室内の諸事情により、それぞれに別個のIPを振ることにしました。Webインタフェースの入力フォームにIPを入れるだけの簡単設定です。このとき同時に、NASにDHCPサーバの機能を持たせました。以前は古いLinuxサーバがその役割を果たしていましたが、これにてお役御免となりました。昔のファイルをコピーするNASが使えるようになったところで、手始めに、研究室で使っていた旧共有サーバのデータをコピーしました。HDD二つに合計700GBくらいのデータがあるので、ネットワーク越しでなく、NAS前面のUSBポートにHDDを接続してデータを直接吸い出しました。HDDとUSBポートの間の接続には、IDE-USB変換ケーブルを使います。最近のPCだとIDEでなくSATAコネクタのHDDも多いでしょうね。その場合はSATA-USB変換ケーブルが使えます。QNAPのNASには前面パネルのボタンを押すと接続している外付けディスクの全データをコピーしてくれる機能がありますが、今回はコピーするデータを選びたかったので、NASの中からcpコマンドで必要なものをコピーしました。ProはVGAのディスプレイポートとUSBポートがあり、実機にディスプレイとキーボードを繋いで直接ログインすることもできます。System)は組み込みLinux向けのパッケージマネージャで、標準では入っていないgccやmakeなどをインストールできます。標準で入っている機能を置き換えるのにも使えます。QNAPのNASは前に書いたとおりsshログインできるようになっていますが、なぜかroot(admin)ログインしか許しません。ふつう逆(root権限を持たないユーザだけログインを許可)ですよね。そこで、ipkgを使ってopensshをインストールし、既存のsshサーバを置き換えることができます。IPKGのインストールには、QNAPの公式サイトで配布されているQPKGというプラグインパッケージを使います。QPKGの取得からダウンロードできます。opensshをインストールしてadmin以外でsshできるようにする前述のとおり、IPKGでopensshをインストールして既存のsshと置き換えることによって、任意のユーザのsshアクセスを許可できるようになります。sshのバイナリがRAM上にあるため、単に置き換えるだけだとNASを再起動したときに状況が元に戻ってしまいます。そのため、起動時に実行されるスクリプトを新しく作成して、RAM上の特定のブロックに保存する必要があります。スクリプトの中では、NASが完全に起動するまで一定時間待って既存のsshプロセスを殺したあとopensshと入れ替えるトリッキーな手段が取られています。この手順がなかなか厄介で、QNAPのフォーラムでもまだ確実な方法が確立していません。フォーラム内の記事へのリンクだけ示しておきます。Forumメールサーバの機能をインストールするQPKGのXDoveというパッケージをインストールします。これは、簡単に言ってしまえば、XMailというメール転送エージェントとDovecotというメール配送エージェントをまとめたパッケージです。PHPベースの管理用インタフェース、PHPXMailもインストールされます。QNAPediaに載っている手順に従えば、比較的簡単に、NASをメールサーバとして使えるようになります。mapsでローカルホストからの接続しか許可しないなど、しっかり対策を取るべきです。研究室のメールアドレスは全員転送にしか使っていなかったため、Dovecotを利用する必要がありませんでした。そこで、Dovecotを起動しないように設定を変更しました。)に保存されています。124行目以降、次のようにDovecotを起動する処理を呼んでいる行が見つかったのでコメントアウトしました。続けてDovecotを終了、再起動する処理が書かれた行も見つかったので、そちらもコメントアウトしました。1esacこれだけでメールサーバが動くかと思いきや、事態はそう甘くありませんでした。QNAPのNAS用のXDoveは、標準ではSMTP用のポートに50025を使うことになっています。これは、ウェルノウンポートである25番ポートをlistenするためにはroot権限が必要なのに、XMailのデーモンがxmailという一般ユーザアカウントで起動していることに起因しています。このままでは通常25番ポート宛てに送られてくるメールを受け付けることができません。QNAPのNASはイントラネットの内部で動作することを前提に設計されており、通常はルータのポートフォワーディングの設定で、WAN側25番をLAN側のNASの50025番にフォワーディングすれば解決できる、とされています。研究室ではQNAPのNASにグローバルIPを与え、直接インターネットに晒すように設置したのでこの方法は使えません。そこで、まずはXMailをルート権限で動かすように設定を変更します。$XMAIL_DAEMONさらに、XMailデーモンの起動オプションを変更し、25番ポートをlistenするようにします。記述されているようです。いった記述がありました。POP3用にlistenするポート番号の設定です。1.27を読んでください。NASをインターネットに直結してグローバルIPを付与するのは、一般的に全くお勧めできません。NASの標準的な機能であるSambaによるファイル共有はchatty(おしゃべり)なプロトコルであり、これがインターネットに公開されているとクラッキングの格好の標的になります。研究室でNASにグローバルIPを付与できたのは、研究室のネットワークのゲートウェイが、インターネットとイントラネットの間のパケットを厳密にフィルタリングしているからです。Sambaなどの設定ファイルでもイントラネットとの接続しか許可しないようにしています。研究室のNASは、グローバルIPを持っているものの、外部との接続は明確に制限されているのです。これはあくまで特殊ケースなので、通常はルータの内側に置いてローカルでIPを振って使うようにしましょう。その他諸々Web用の管理インタフェースでユーザやグループを作成できますが、これは組み込みLinuxのユーザやグループと直結しています。裏を返せば、Web用の管理インタフェースはroot権限を持っています。管理インタフェースを提供するHTTPサーバはApacheとは別のもので、Apacheの接続待ち受けプロセスはhttpdusrユーザで起動しています。シンボリックリンクです。これは、設定ファイルを組み込みLinuxが動いているRAMディスクの上でなくHDD上に保持し、NASが再起動しても消えたりリセットされないようにするための工夫です。シンボリックリンクになっています。スクリプトがあります。ProにSubversion+Tracを入れた記録さくらサーバの動かなくなった日本語版Tracをアップグレードはてなブログをはじめよう!arc_at_dmzさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。