自宅サーバの活用(takechu) 


Front Page

構築前の準備
インストールCDの入手
とりあえずインストール
とりあえずカスタマイズ

カスタマイズ前の助走
(CUI環境下での基本操作


■ カスタマイズ前の助走
(CUI環境下でのサーバ管理

サイトアイコンを作る
自宅サーバのこれまで
自宅内LANの接続構成
設置PCのHW構成
連絡先
o = o = = o = = o = o

o = o = = o = = o = o


とりあえずのカスタマイズ (目次)

OS本体と標準システムパッケージ、デスクトップ環境、Webサーバ・ソフトウェアなど選択されたソフトウェアパッケージをインストール後に再起動できたら、次のような順に設定作業を進め、利用環境を整えます。「私の場合」ということなのですが、ご参考になるのではないでしょうか。

  • システムの日付・時刻の確認・設定 (►►
  • IPアドレスの確認・設定 (►►
  • デーモン起動・解除用ツールのインストール (►►
  • SSHサーバのインストール (►►
  • SSHクライアントツールのインストールと設定 (►►
  • Samba サーバの設定 (►►
  • Webサーバ( Apache2 )の設定 (►►
  • ダイナミックDNS用IPアドレス通知用ツールの設定 (►►
  • ルータのNAT設定 (►►

上記ここまでの設定が済めば、とりあえずインターネット上から手元のWebサーバ上のWebページにアクセスできるようになります。

・・・、あとは閲覧して欲しいWebページを作成してWebサーバに置けばOK!っということになります。少なくともここまでの設定でこのWebサーバはスタートしたのですが、この後はさらに運用目的に合ったカスタマイズ設定をすることになるのだと思います。



システムの日付・時刻の確認・設定

$ su
Password:
#
# date
2007年 10月 5日 金曜日 14:32:46 JST
# apt-get install ntpdate
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
ntpdate
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 2 個。
57.7kB 中 0B のアーカイブを取得する必要があります。
展開後に追加で 213kB のディスク容量が消費されます。
メディア変更:
'Debian GNU/Linux 4.0 r1 _Etch_ - Official i386 CD Binary-1 20070819-11:52'
とラベルの付いたディスクをドライブ '/cdrom/' に入れて enter を押してください

未選択パッケージ ntpdate を選択しています。
(データベースを読み込んでいます ... 現在 84491 個のファイルとディレクトリがインストールされています。)
(.../ntpdate_4.2.2.p4+dfsg-2_i386.deb から) ntpdate を展開しています...
ntpdate (4.2.2.p4+dfsg-2) を設定しています ...

#

コマンド ntpdate は参照するNTPサーバを引数に指定します。
私はネット検索で見つけたインターネットマルチフィード社の「時刻情報提供サービス for Public」のサーバを以下のように使わせて頂きました。

# date
2007年 10月 5日 金曜日 14:34:02 JST
# ntpdate ntp1.jst.mfeed.ad.jp
5 Oct 23:34:26 ntpdate[10419]: step time server 210.173.160.27 offset 32372.676284 sec
# date
2007年 10月 5日 金曜日 23:34:58 JST
#

BIOSに設定された日付・時刻と、OSに設定されたものを確認します。1行目がコマンド hwclock の、2行目がコマンド date の出力です。
# hwclock -r ; date
2007年10月05日 23時37分43秒 -0.170131 seconds
2007年 10月 5日 金曜日 23:37:43 JST
#

コマンド ntpdate でシステム日付・時刻設定を行った後、もし必要ならその日付・時刻を次のようにコマンド hwclock --systohc を使ってBIOS設定できます。
# date ; hwclock --systohc
2007年 10月 5日 金曜日 23:40:13 JST
#

IPアドレスの確認・設定

ここではターミナルウィンドウ上でコマンドを使う操作ではなくGUI環境( GNOME )下でのツールを使ってIPアドレスの設定操作方法を以下に掲げます。

OSのインストール時にサーバ機に設置されたNIC(ネットワークインターフェイスカード)が1枚の場合、DebianGNU/Linux 4.0 では、DHCP により自動的にIPアドレスが取得・設定されるためこれを固定IPアドレスに設定変更します。

IPアドレス設定等のネットワーク管理ウィンドウは、次のような順でテスクトップ上のメニュー選択で呼び出せます。

デスクトップ]→[システム管理]→[ネットワークの管理

・・・すると、rootアカウントのパスワード入力要求画面が表示され、rootアカウントのパスワードを入力すると以下のようなウィンドウが表示されます。

上図のように oth0 を選択クリックした後、プロパティボタンをクリックするすると、さらに下図のようなウィンドウが表示されます。

上図において領域項目「設定の種類」部分をクリックして「DHCP」を「スタティックなIPアドレス」へ変更すると、他の領域項目に値を設定できるようになります。下図は私の場合です。

領域項目「IPアドレス」には、設定したいIPアドレスを入力します。
領域項目「サブネットアドレス」には 255.255.255.0 を入力します。
領域項目「ゲートウェアイ」には、ルータ装置のIPアドレスを入力します。
最後に「OK」ボタンをクリックします。


デーモン起動・解除用ツールのインストール

ツール sysv-rc-conf はOSの起動時にデーモンの自動起動設定/解除設定するためのものです。稼動中のデーモンを停止させたり、あるいはデーモンを起動させたりするためのものではありません。

# apt-get install sysv-rc-conf
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
libcurses-perl libcurses-ui-perl libterm-readkey-perl
以下のパッケージが新たにインストールされます:
libcurses-perl libcurses-ui-perl libterm-readkey-perl sysv-rc-conf
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 2 個。
414kB のアーカイブを取得する必要があります。
展開後に追加で 1458kB のディスク容量が消費されます。
続行しますか [Y/n]? Y
取得:1 http://cdn.debian.or.jp etch/main libcurses-perl 1.13-1 [116kB]
取得:2 http://cdn.debian.or.jp etch/main libterm-readkey-perl 2.30-3 [32.6kB]
取得:3 http://cdn.debian.or.jp etch/main libcurses-ui-perl 0.95-5 [242kB]
取得:4 http://cdn.debian.or.jp etch/main sysv-rc-conf 0.99-5 [23.9kB]
414kB を 4s で取得しました (102kB/s)
未選択パッケージ libcurses-perl を選択しています。
(データベースを読み込んでいます ... 現在 84504 個のファイルとディレクトリがインストールされています。)
(.../libcurses-perl_1.13-1_i386.deb から) libcurses-perl を展開しています...
未選択パッケージ libterm-readkey-perl を選択しています。
(.../libterm-readkey-perl_2.30-3_i386.deb から) libterm-readkey-perl を展開して います...
未選択パッケージ libcurses-ui-perl を選択しています。
(.../libcurses-ui-perl_0.95-5_all.deb から) libcurses-ui-perl を展開しています...
未選択パッケージ sysv-rc-conf を選択しています。
(.../sysv-rc-conf_0.99-5_all.deb から) sysv-rc-conf を展開しています...
libcurses-perl (1.13-1) を設定しています ...
libterm-readkey-perl (2.30-3) を設定しています ...
libcurses-ui-perl (0.95-5) を設定しています ...
sysv-rc-conf (0.99-5) を設定しています ...
#
# sysv-rc-conf


※上記の画面から「 p 」を押すと、ツールが終了します。

#

ツール sysv-rc-conf は上記のようなスクリーンモードだけでなく、下記のようにコマンドモードでも使用できます。詳しくは man コマンドで説明を参照してください。

# man sysv-rc-conf
== コマンドの説明(英文)が表示されます ==

# sysv-rc-conf --list netatalk
netatalk 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# sysv-rc-conf --level 2345 netatalk off
# sysv-rc-conf --list netatalk
netatalk 0:off 1:off 2:off 3:off 4:off 5:off 6:off
#

SSHサーバのインストール

# apt-get install openssh-server
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
提案パッケージ:
ssh-askpass rssh molly-guard
以下のパッケージが新たにインストールされます:
openssh-server
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 2 個。
222kB 中 0B のアーカイブを取得する必要があります。
展開後に追加で 569kB のディスク容量が消費されます。
メディア変更:
'Debian GNU/Linux 4.0 r1 _Etch_ - Official i386 CD Binary-1 20070819-11:52'
とラベルの付いたディスクをドライブ '/cdrom/' に入れて enter を押してください

パッケージを事前設定しています ...
未選択パッケージ openssh-server を選択しています。
(データベースを読み込んでいます ... 現在 84640 個のファイルとディレクトリがインストールされています。)
(.../openssh-server_4.3p2-9_i386.deb から) openssh-server を展開しています...
openssh-server (4.3p2-9) を設定しています ...
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Restarting OpenBSD Secure Shell server: sshd.

#



SSHクライアントツールのインストールと設定

このサーバ機と同一LAN上にある Windows PC にSSHクライアントツールをインストールして、その Windows PC からLAN経由でサーバ機にログインし、Windows PC からリモート操作できるようにします。

私は PuTTYjp というツールをここからダウンロードさせて頂き、使っています。ダウンロードしてきたファイルはZIP形式の圧縮ファイルです。これを解凍するために、例えば Windows 用ツールライブラリ・サイト等から予め入手しておくと良いでしょう。

PuTTYjp のプログラム本体のファイル名は puttyjp.exe です。
これを開くと次のようなウィンドウが最初に開きます。

ウィンドウ右側上部の入力領域「ホスト名」部分にインストールしたサーバ機のホスト名、またはIPアドレスを入力し、ウィンドウ下部にある「開く」ボタンをクリックすれば良いわけですが、その前に PuTTYjp ウィンドウで扱う文字コードを指定しておく必要があります。

DebianGNU/Linux 4.0 で扱う標準文字コード体系は UTF-8 です。これを指定するために、ウィンドウ左側のカテゴリ・ツリーから「変換」を選択クリックして下図のような設定ウィンドウを呼び出し、入力領域「受信データ」部分に下図のように「UTF-8 (CJK)」を選択しておきます。

再度、ウィンドウ左側の「セッション」をクリックし、接続先を確認してから「開く」ボタンをクリックすると良いでしょう。サーバ機への最初の接続に成功すると、下図のような確認表示が現れます。

「はい」ボタンをクリックし、表示されたサーバ機へ接続したターミナルウィンドウからCUI環境によるログイン操作を行います。


Samba サーバの設定

ユーザ名 user への Samba 用パスワードを設定します。
# smbpasswd -a user
New SMB password:
Retype new SMB password:

Samba 用設定ファイルのバックアップを作成し、設定ファイルを編集します。
# cd /etc/samba
# cp smb.conf smb.conf-ORG
# vi smb.conf
 
#======================= Share Definitions =======================

[homes]
comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
writable = yes ← 初期値「no」を「yes」に変更。

Samba を再起動します。
# /etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
#

この時点で同一LAN上の Windows PC から、このサーバ機への ファイル共有(参照/書き込み)が可能です。

ウマクいっていれば、この時点で WindowsPC の「マイネットワーク」 を開くと、このサーバ機上のフォルダを参照できます。

Webサーバ( Apache2 )の設定

この時点(OSインストール直後)の状態で、すでに apache2 は稼動しています。これは、次のような操作で確認できます。ブラウサの起動は、デスクトップ上部のメニューから [アプリケーション]→[インターネット]→[Epiphany ウェブ・ブラウザ] の順に選択クリックして呼び出せます。
呼び出すと次のようなデフォルトの画面表示になります。
【デフォルトで Debian の公式サイトが表示されます】

ここでURL localhost を指定します。 すると、Apache2.2 インストール直後の以下の表示画面に変わります。

# cd /etc/apache2
# ls
apache2.conf envvars mods-available ports.conf sites-enabled
conf.d httpd.conf mods-enabled sites-available
# cd sites-available
# ls -l
合計 4
-rw-r--r-- 1 root root 1181 2007-06-18 05:12 default
# cp default default-ORG
# vi default
 
  NameVirtualHost *
  <VirtualHost *>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        # This directive allows us to have apache2's default start page
        # in /apache2-default/, but still have / go to the right place
        # RedirectMatch ^/$ /apache2-default/ ←「#」記号を付けて注釈に。
    </Directory>
  ・
  ・

# /etc/init.d/apache2 reload
Reloading web server config...2871
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
.
#

この時点でURL http://localhost/ を開くと、下図のような表示になります。

これはディレクトリ /var/www に表示すべきファイルがまだ無いため 代わりにディレクトリ内のファイル一覧が表示されてしまっています。 そこで以下のように index.html ファイルを作成し、正しくブラウズされる  つまり表示されることを確かめます。

# cd /var/www
# ls
analog apache2-default
# cat > index.html
<H1>this is My WebPage!</H1>

上1行を入力したら最後に [Ctrl/d] を入力します。
[Ctrl/d] は Ctrl キーと d キーを同時に押すキー操作です。


# ls -l index.html
-rw-r--r-- 1 root root 29 2007-10-06 14:24 index.html
#

この時点でURL http://localhost/ を開くと、今作成したファイル index.html が表示され、「 this is My WebPage! 」が画面に現れます。


ダイナミックDNS用IPアドレス通知用ツールの設定

DiCE Linux版を作者 sarad さんのサイトからダウンロードし、自分のホーム・ディレクトリなどに置いておきましょう。ダウンロードした圧縮ファイル名は diced01913.tar.gz でした。

$ su
Password:

ダウンロードした圧縮ファイルを /etc に展開します。
# cd /etc
# tar xfz /home/user/diced01913.tar.gz
# ls DiCE
dice.dat dice.ini diced ipcheck.dat log plug-in
#

DiCE Linux版 Ver.0.19 は、文字コード EUC-JP で動作する ようです。 DebianGNU/Linux 4.0 では、標準の文字コードは UTF-8 になっています。 そこで、以下の操作の前に、予め ここで端末ウィンドウの扱う文字コードを EUC-JP に変更 しましょう。

プログラム本体は diced です。 DiCE を起動して設定を始めます。
# cd DiCE
# ./diced
=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad

:help
*** 起動オプション ***

diced [-s|-d|-h|-e] [-b] [-l]

-s 起動と同時に開始します
-d 起動と同時にバックグラウンドで開始します
-h コマンドオプションを表示します
-b イベント実行時にビープ音を鳴らします
-l ログを作成します
-e<EventNo> 指定のイベントを実行して終了します


*** コマンド一覧 ***

exit DiCEを終了します
start DiCEを開始します
startd DiCEをバックグラウンドで開始します
setup DiCEの環境設定を行います
list 登録済のイベント一覧を表示します
add イベントを追加します
ed[it] <番号> イベントを編集します
del <番号> イベントを削除します
en[able] <番号> イベントを有効にします
dis[able] <番号> イベントを無効にします
ev[ent] <番号> イベントの情報を表示します
ex[ec] <番号> イベントを今すぐ実行します
logcr ログをクリアします
:

環境設定( setup コマンド)をします。
:setup
IPアドレスの検出方法を指定してください
(0) 自動検出
(1) ローカルのネットワークアダプタから検出
(2) 外部のスクリプトから検出
<現在:0>
(N)変更しない (P)戻る
>
-------------------------------------------------
プライベートIPアドレスも検出対象ですか? (Y/N)
<現在:いいえ>
(P)戻る
>
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>
-------------------------------------------------
IPアドレスをチェックする間隔を指定してください(分)
設定可能範囲は5分以上です
<現在:15>
(N)変更しない (P)戻る
>
=================================================
DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります
前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して
ください(分) 設定可能範囲は10分から1440分です
<現在:30>
(N)変更しない (P)戻る
>
=================================================
設定を保存しますか? (Y/N)
(P)戻る
>Y
設定を保存しました
=================================================
:

DiCEを会話型で日常的に利用するのが現実的では ありません。本来的な利用はデーモンとして起動し、 IPアドレスに変化が生じた際に、そのことをDDNS サービスを提供しているDNSサーバにするよう指示 することです。 そのことをイベントとして登録します。
:add
新しくイベントを追加します

DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>?
Now.nu StaticCling WebReactor cheapnet
BIGLOBE ZoneEdit @nifty unicc
changeIP JPN.ch EveryDNS Microtech
did.expoze.com DynDSL DDNS.nu ZiVE
theBBS cjb eNom dyndns
DHS IPDYN MyServer yi
Dynu CyberGate GetmyIP MyIP.US
ODS USA DNS2Go livedoor
SelfHOsT dynDNS.it ddns.ca my-domain
Dynamx todd dnsQ MyDNS.JP
Netservers dnip ddo.jp DynDNSdk
instat No-IP HAMMERNODE dyns
nicolas DION ieServer DnsTokyo
ysdn RegisterFly Dynup JSPEED
DtDNS ODN Earth Dyn.ee
onamae.com miniDNS ARTofDNS 3domain
ZENNO.COM p2p pcc.jp VALUEDOMAIN
=================================================
新しくイベントを追加します

DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>VALUEDOMAIN
-------------------------------------------------
<< バリュードメイン >>
URL: http://www.value-domain.com/index.php
*** 情報 ***
・全ホストを更新するにはホスト名に"*"を指定してください。
・"ユーザー名"に入力された内容は無視されます。
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>takechu.net
=================================================
ホスト名を入力してください
(P)戻る
>
=================================================
ログインユーザ名を入力してください
(P)戻る
>watashi-no-username
=================================================
ログインパスワードを入力してください
(P)戻る
>watachi-no-password
=================================================
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
>
=================================================
このイベントに題名を付けてください
(P)戻る
>takechuDOTnet
=================================================
このイベントを実行するスケジュールを設定します
-------------------------------------------------
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(P)戻る
>5
-------------------------------------------------
IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
アカウントを削除されてしまうことがあります
IPアドレスの変化が無い時に実行する間隔を指定してください
(0)7日毎 (1)14日毎 (2)21日毎 (3)28日毎
(4)35日毎 (5)56日毎 (6)84日毎
(P)戻る
>0
=================================================
=================================================
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>Y
=================================================
イベントを保存しますか? (Y/N)
>Y
イベント"takechuDOTnet"を保存しました
=================================================
:
:list
(No.) (イベント名) (スケジュール) (次回予定)
0 * takechuDOTnet IPアドレス変化時 (7日毎) 10/14 16:00
:
:en 0
"takechuDOTnet" イベントを有効にしました

一旦 DiCE を終了させます。
:exit
#

デーモンモードで DiCE を起動( -d )。
イベントが実行されたら、ベル音を鳴らし( -b )、 ログを残すよう指示( -l )すると良いでしょう。ログファイルは /etc/DiCE/log/events.log です。

# ./diced -d -l -b
=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad

DiCE Daemon Started !!

#

ここで DiCE起動前に設定変更した端末ウィンドウの扱う 文字コードを EUC-JP から UTF-8 に戻します。

デーモン diced が稼動しているかを確認するには、 例えば次のようなコマンドを発行します。
# ps ax | grep diced
10838 ? Ss 0:00 ./diced -d -l -b  ←これが稼動中の diced
10849 pts/2 R+ 0:00 grep diced
#

稼動中のデーモンを停止させる場合には、次のように デーモンのプロセスID(PID)を指定してコマンド kill を 発行します。
# kill 10838
#

OSを再起動した場合に、自動的に DiCE が起動されるよう /etc/rc.local を修正しておくと良いかもしれません。 以下は、修正後の rc.local のナカミです。
# cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/etc/DiCE/diced -d -l -b  ← この一行を追加する。

exit 0

#

OSの再起動後に /etc/rc.local が正しく呼び出されて、DiCE が 稼動しているか否かを確かめたい場合には、次のようなコマンドで再起動してみるのが良いでしょう。
# shutdown -r now
    :

ルータのNAT設定

インターネットの世界と自宅内LANの境界にあるのがルータ装置です。
私の場合は、NEC社の Aterm WR7610HV というニフティからレンタルしたものをルータ装置として使っています。

インターネット上のどこかからWebアクセス要求がやってきた場合に、その要求をLAN上のどのPCに届ければ良いのかをルータ装置に設定する必要があります。 すなわち、インターネット上からのWebアクセス要求をサーバ機に届くよう設定するということです。

私のLAN環境では、ルータ装置に設定したLAN内のIPアドレスには 192.168.100.1 を設定しているため、このアドレスを指定して下図のようにルータ装置の設定画面を呼び出します。

ルータ装置へのWebページ・アクセス要求の転送設定は、上図のように画面左側メニューの [詳細設定]→[ポートマッピング設定] を選択クリックして、設定画面を呼び出し、下図のようになるよう設定編集します。

最後に設定を有効にするために、画面左側メニュー下の「登録」ボタンをクリックします。この操作でルータは自動的に再起動されます。

ルータ装置が再起動され、インターネットに再接続後にインターネット上からのWebアクセス要求がサーバ機に届くようになります。

・・・、書きなぐってしまいました  ( ̄▽ ̄)ゞ



Copyright 2007-2008, takechu All Rights Reserved.