自宅サーバ設定&開設事例
〜SephieBrainの場合〜
まあ、こんなのほかのサイトでもやってる(しかもそっちのほうが詳しい)んだけどね。一応ということで。
さっとしか説明しないが、簡潔にわかりやすくやるつもり。
最終更新:2006/9/14
内容が古くなってしまい、参考にすると危険な可能性があるので出直してきます。
一応以前のページも置いておきますが、自己責任で。
Wikiで作れば楽そうなんだけど、自鯖にPHP入れるの面倒だなぁ(ぉ)。
↓以下、作りかけ
0.最初の壁
RPGでいうところのファーストボス?こいつに勝たないと次に進めないという感じ。
とりあえずこの記事(注:もちろん私が書いたものではない)を読んでみよう。
そして、次の質問に答えてもらいたい。
Q1.自宅サーバ立てたいですか?
A1-1..いや、やめておく
→レンタルサーバにしますか。
A1-2.もう少し考える
→自宅サーバについてもっと調べますか。
A1-3.うん、立てる
→Q2
Q2.OSは何を使いたいですか?
A2-1.Linux/UNIX
→残念ですが、力になれません(SSH以外)。ちなみにLinux動かしてるマシンはあります(ぉ)。
SSH鯖しか組まないという場合は…?
A2-2.Mac(OS9以前/OSX以降)
→残念ですが、力になれません。ちなみにMacも持ってます(ぉ)。
A2-3.Windows 2000/XP
→Q3
A2-4.Windows NT/95/98/Me
→一応Q3に進んでもいいかもしれませんが、2000/XPにすることをお勧めします。
A2-5.BeOS、超漢字、etc...
→むしろこちらが教えてもらいたい。
Q3.「SephieBrain」クローン作りたいですか(ぉ)?
A3-1.いや、そういうわけではない
→以下の記事は参考にお読み下さい
A3-1.うん、もちろん
→変わり者ですね。以下の記事を目を皿にして読んだうえ、私にメールや掲示板で助言を仰ぐ必要が出てくるでしょう。全部教えるかどうかは別ですが。
ということで、無事Q3までたどり着いた方も、違う選択肢に行ってしまった人も、途中でドロップアウトした方も、とりあえず読むだけなら電気代(タダではない(ぉ))なので次へ行きましょう〜。
1.まず用意するべきもの
多分一気に用意するのは難しい(そもそもOS入ってない状態でサーバデーモンやPerl入れるのは不可能)ので、ハードウェア系から少しずつ用意していこう。
PC知識 | クリック、右クリック、メニューバー、スタートボタン、タスクトレイ、タブ、インプットボックス(入力ボックス)、コンボボックス、チェックボックス、ラジオボタンなど操作に関するものや、ファイル、ディレクトリなどのファイルシステム関係、IPアドレス、ドメイン、ネットマスクなどのネットワーク関係は最低限知っていないと説明のしようがない。それすら分からないという場合はネットで調べるのも難しいだろうから近くにいるPCに詳しい人に聞こう。 もっとも、このページにたどり着いている時点である程度知識があると思うんだけど…。 |
多少の英語力 | 英会話とか出来なくてもいいけど、少なくともコンピュータ用語を読めるぐらいは。 どうしてもだめという場合は、例えばABCDEというソフトウェアの場合「ABCDE インストール」などで検索するか、Googleなどにある「日本語のページのみ」といった感じのオプションを有効にして検索すると、日本語の解説サイトが見つかるかも。 |
回線 | これがなければインターネットできん。 できればFTTHのようなコストパフォーマンスに優れた高速・常時回線がいいだろう。 高速なのも重要だが、当然安定していることが前提だ。 金に余裕があれば帯域保証のFTTOや専用線を引くという手もある。 しかし、そこまでするのであれば専有サーバをレンタルしたほうがいいかも。 |
グローバルIPアドレス | CATVとかマンション型FTTHだと×かも。固定だとなお良い。 複数取れる場合はDNS鯖も自前で用意することもできる。 |
HTTPDなどのDAEMON | サーバデーモンといっても主に公開用のものと非公開用のものがある。公開系でも必ず公開用途に使うわけではない。非公開系はセキュリティ上の理由から公開すべきではないかと。 公開系: HTTP:Webページを公開 ApacheやAN HTTPDやIIS(Windows付属)など。ここではAN HTTPDの例を。 メール(SMTP、POP、IMAP):電子メールを送受信 私は、SMTPとPOPはLet's build home server. - 自宅サーバのススメ - で紹介されている(いた?)組み合わせ(IMS EMWAC+MMS SMTPRCV+SCSMFILTER+Antirelay)を入れている。 ただ、現在では手に入らない(リンク切れなど)ので、新しいのを探してくれ…というのもあれなので、ヒントを書いておくと、IISにもSMTPサーバは入っているらしい。 また、RadishというSMTP・POP3サーバ(DNSもあるらしいけどここでは説明しない)もある。国産なので英語苦手という人でもOK。 IMAPはレンタル鯖に転送するようになったので使ってないが、Blueberry IMAP(シェアウェア、$50)など。 FTP:ファイル公開/アップロード かつてはWar FTPDを使っていたが、今はHTTPとSSHで代用。 SSL:暗号化通信と認証 Stone+OpenSSLなど。 非公開系: SSH:暗号化リモートシェル Turbolinux(OpenSSH)+VMware VNC:リモートコントロール(GUI) RealVNC |
Perl(CGIとか使うなら) | ActivePerlなど。公開サーバ用途だとHTTPサーバの拡張という形になる。 5xx系、6xx系などがあり、基本的に新しく始める場合は新しいバージョンを選んでいいだろう。 ただし、CGIによって特定の系列でしか動かないので注意しよう。 Perlとは違うが、PHPなどもHTTPサーバの拡張なので、使いたいWebアプリケーションに対応したものをインストールしよう。 |
ダイナミックDNSのアカウント or/and 独自ドメイン | 私は3domain(有料、$9.75/年)ってます。無料だとZoneEditなど。 DDNS業者がサブドメインを割り振ってくれる場合もある。 そうでない場合は独自ドメインを取得して割り当てる。 固定IPの場合はIPでアクセスできるのでドメインは必ずしも必要ではないが、あったほうがいいと思う。 |
サーバPC | LinuxでXサーバ使わないのであればかなり古いのでも動くはず。 しかし、高速回線を使いこなしたいのであればある程度のスペックが必要。 サーバデーモン以外にこまごまとした拡張(MRTGなど)を入れたいのであればもっと必要だ。 とはいえ、最近のメーカーPCやバリュー帯CPUでの自作で十分耐えうるかと。 むしろ安定性が最重要。 |
OS | ここではWindowsで説明していくが、LinuxなどのPC UNIXをCUIでつかえばロースペック・ローコストで可能。 さらにLinux系のほうがサーバ用途に関しては説明やツールが充実していると思う。 Windowsを使う場合は最低でもNT系にしよう(9x系(95、98、98SE、Me)だと使えない機能やサーバがあることが多い)。3.1は論外…。 OpenSSHなどのフリーソフトウェア(無料という意味ではない)系列のものもLinuxのほうが簡単に動かすことが出来る場合が多い。特にWindowsでcygwinを使って移植したものはバージョンの競合などで動かないこともある。 |
維持費 | 電気代+回線費+セキュリティ対策費。 まあ、自宅サーバ開設しようなんて余裕があるってことは、多分大丈夫。 電気代はCPUフルでまわさない限りそんなに必要ない。 セキュリティ対策もフリーのファイアウォールやアンチウイルスソフトがあるのでかなり下げることも可能。 |
根性? | トラブルがあってもくじけない。とことん突き止めて直す。 あと、サイト自体の更新意欲も必要。最終更新日が1年以上過去、なんてサイトは誰も見てくれないかも。 まあ、萌え絵とか描ける才能あれば更新停滞しててもアクセスありそうだが(ぉ)。 |
ファイアーウォール | ルータやソフトウェアファイアーウォール(ZoneAlarmやNorton
Internet SecurityやBlackICE)。 ルータ=ファイアウォールではないが、大抵のルータにはファイアウォール機能がついている。 しかし、適当に設定しているとむしろ無いより危険(ファイアウォールがあるから安心だと思って油断するから)な場合もあるので注意。 |
そのたいろいろ。 | 必要に応じて。 例えば耐震マット(地震)、サージバスター(雷)、ハードウェアモニター(オーバーヒート≒火事?)、鍵つきケース(父親に勝手に電源を切られないように=親父)とか(ぉ)。 他にはS.M.A.R.T.モニター(HDDの経年劣化)、RAIDミラーリング、PCミラーリング(サーバPCの予備を作っておく)とかかな。 |
2.すべてそろったら次はPCを使える状態に
2−1.OSのインストール
とにかくPCにOSを入れないことには話が進まない。Linuxを入れてもいいのだが、勉強が面倒だったので私はWindows2000(後にXP)を入れた。
ここではOSのインストールはすでに済んでいるものとして話を進める。
2−2.セキュリティ対策
普通にインストールした後、ネットにつなぐ前にウイルス対策ソフトは最低限入れておく。これはネットにつなぐPCとしての常識である。
フリーのウイルス対策ソフトを使う場合、別のマシンでダウンロードできるならばやっておいて、CDやフラッシュメモリにコピーしてインストールする。
今このページを見ているマシンしかなく、さらにウイルス対策ソフトがまだ入っていない場合は、今すぐに何らかの対策ソフトを入れよう。
この後は回線によってやり方が違うが、加入時にもらった説明書を参考にして回線設定をする(すでに開通している回線を使用する場合は不要)。やり方は大抵加入時にもらった説明書に記載されているし、それでも分からなければ各キャリア(BフレッツならNTT東西)やプロバイダ(プロバイダから加入した場合)のサポートセンターに聞けばいいだろう。ただ、自鯖運営にはある程度知識が必要なので、この程度は自力でやれたほうがいい。
家庭内LANを組んでいる場合、スイッチつきルータ(ブロードバンドルータ)を導入したほうがいいが、NIC二枚挿しで乗り切ることもできる。しかしその場合はソフトウェアファイアーウォールを導入するなどして、セキュリティ面を強化しないと危険である。
とにかく金に余裕があればルータ入れとけ!!今なら機能にこだわらなければ2000円ぐらいであるぞ。ただし、いろいろサーバを入れたい場合、安いルータだと10個ぐらいしかポートを空けられないので、ポートが足りなくなってしまうことがあるので注意しよう。
そしてネットに接続したらOSのパッチ(WindowsならWindows
UpdateやMicrosoft
Update、Linuxの場合はディストリビューション(TurboやVineなど)によって違う)を当てる。ウイルス対策ソフトが入っていても、OSにセキュリティホールがあれば無意味なこともあるので忘れずにパッチを当てておこう。
この後のために必要なポート(HTTP鯖なら80など)を空けなければならない。Windows
XP SP2を使っている場合はWindows
Firewallのヘルプを、ルータ入れた場合はルータのマニュアルなどを参照して必要なポートを開けよう。Linuxのポートの空け方はよく分からない(ぉ)。
あと、ルータ入れてもファイアーウォールは入れといたほうがいいだろう(例えばHTTPだとDDoS攻撃やドットドットURL攻撃などはルータのファイアウォールでは防げない場合がある)。念には念を。
3.いろいろなサーバ・HTTPサーバ編
別ページに分けました。まだ未完成だったりしますが(ぉ)。
4.いろいろなサーバ・メールサーバ編
本来ならここでEMWAC IMSの説明でも書けばいいんだろうけど、もうソフト自体古いし、それになによりメールサーバ自体私が活用してないので書く気が起きない(ぉ)。
メールサーバはHTTPサーバより常時稼働率を上げないといけないし、対策を怠った時のダメージも大きい。
それでも立てるというのなら他のサイトを当たってくれぃ(ぉ)。私自身はレンタルサーバ(FreeBSD+Courier
IMAP+SpamAssassin)で十分満足してるので。
といって逃げてみるテスト。
3.いろいろなサーバ・FTPサーバ編
以前のページにWar FTPDの解説が残っている。
今ではセキュリティ上の理由から、anonymousダウンロード用途にはAN
HTTPDを、私専用のダウンロード・アップロードにはSSH(SFTP、SCP)あるいはSSL+Basic認証+シェルCGIを使っている。
SSHについては後述のSSHサーバ構築で述べたいと思う。SSLはHTTPサーバ編を参照。
3.いろいろなサーバ・SSHサーバ編
すまん、無理だった(ぉ)。
実は、Windows上でOpenSSHを動かそうとしたが、どのように設定しても接続が通らなくて諦めてしまった。
結局VMware上でTurbolinux 10 Desktop(FTP版に手を加えて作成)を動かし、その上でOpenSSHを使うことで解決した。
実機を用意できるのならばVMwareは不用だが、その分マシン構築費と電気代が必要になる。
ということで、ここだけWindowsではなくTurbolinux上での解説となる。
別ページに分ける予定(まだ書いてない)。
3.いろいろなサーバ・その他の公開サーバ
細かいことは書かずに、あくまで概要だけ。
冒頭でも書いてるが、公開サーバとは「公開するサーバ」ではなく「その気になれば公開も出来る(公開に耐えうる設計の、という意味)サーバ」なので、非公開で使うこともありえる。
●ゲームサーバ
HTTPを利用したゲーム(箱庭CGIなど)はHTTPサーバを構築すれば済むので、ここで言っているのは独自プロトコルのゲームサーバ。
例えば自分でネトゲを開発して、それを公開するといった場合など。
あるいは、法的にグレーので詳しくは書かないが、エミュレータサーバなど。
●NTPサーバ
あまり公開しても意味がないかもしれない…。
というのも、所詮一般PCに内蔵されている時計の精度なんて知れているし、ネットワークの遅延も大きいので。
さらに、NICTがstratum
1 NTPサーバを一般公開したので、今までプロバイダ内NTPがなくて福岡大学に接続してたPC(負荷増大しすぎて大変な事になったらしい)も堂々とstratum
1に直結できるようになり、自宅NTPサーバを公開するメリットはほとんどないといっていいだろう。
ただ、非公開用途だと、LAN内のPCが多い場合は個別に問い合わせするよりトラフィックを減少できるので意味はあると思う。
Windows上で動くNTPサーバだとピッタリでチュ!(シェアウェア、630円)などがある。
●ping、rdate、quote of the day...
これらはサーバというほどのものではない(むしろpingなんかはTCP/IPレベルの機能)が、外部からの接続を受けて何かを返すという動作をするので一応サーバということにしておく。
pingは外出先などからサーバが生きているか確かめるのに使える。もっとも、NATしているとルータの生死しか分からなかったり、悪意を持った人間にサーバの稼動が分かってしまうという問題もある。
だがそもそも、HTTPサーバなどを動かしている時点でサーバの稼動は分かっているのだから、pingぐらい通った所であまり変わらないし、ping
flood攻撃についても、HTTPサーバを公開していればDDoSなどを受ける可能性がある。
公開するものは必要最小限にすべきだが、何かトラブルがあったときに外から確認できるメリットと、ping
floodなどのデメリットを比較して、どちらを取るか決めればよい。私は確認のメリットを考えpingは通している。
rdateはNTPのようなもので、今ではNTPに取って代わられているように思う。
quote of the dayはおそらくインターネット初期(ARPANETなどの頃)に使われていたのだろうが、今ではほとんど廃れているはずだ。しかし、受信内容は捨てても良いので、悪意あるログインなどはされない。バッファオーバーフローには注意だが、そもそも受信内容を保持する必要がないので容易に回避できる。
こんなご時勢だからこそ、のんきに「今日の運勢は大吉です」なんて一言を返すサーバがあってもいいかもしれない。DDoSされるかもしれないけど…。
私もquote of the day的サーバを作ってみたが、返す内容が送ってきたHTTPリクエストというなまじ実利的なものなので、負荷が心配なため非公開にしてある。ポートスキャンbotには無駄だろうが…。
3.いろいろなサーバ・その他の非公開サーバ
同じく概要だけ。
●VNCサーバ
RealVNC(無料版とシェア版あり)、UltraVNC(無料、オープンソース)など。
セキュリティには十分注意。出来ればローカル接続のみ許可してSSHトンネル経由で利用したほうがいい。
●TS(ターミナルサービス)サーバ
いわゆるリモートデスクトップ(厳密には少し違う)。Windows
XP Professionalには標準装備。
これもセキュリティには十分注意。同じくSSHトンネル経由での利用を推奨。
ちなみに接続元からは「localhost:13389」のように指定すれば任意のポートに接続できる。
●私用の独自サーバ
実験やデバッグなどに。
ただ、権限は最小限にしておくことをお勧めする。自作のプロトコルやサーバにはどこに致命的なバグが潜んでいるか分からない。
とくに、プロトコルまで自作した場合は、HTTPやSMTPのような枯れたプロトコルと違い、穴があることが多い。
受信内容に対して処理をしない(quote of the dayのように)場合はバッファオーバーフローに気をつければ安全だと思うが…。