玄箱(KURO-BOX)で遊ぼう!

玄箱をゲットしました。
発売されてからかなり経っており、流行にのってないけど、以前からLinuxの勉強もしたかったこともあり、買ってしまったよん〜。
以下、他サイトと重複するものばかりですが、自分の覚書用にまとめておきます。
(このページは、今後も覚え書き用に追記・編集していきます。)
書き始め:2005/2/7
【玄箱とは?】
他サイトで説明されているので簡単に。
玄人志向で発売されているネットワークドライブ(NAS)です。→製品情報
これの特徴は、BuffaloのHD-LANシリーズと同等の機能が、ハードディスクなしの状態で購入できるため、余っているハードディスクを再利用したNASをつくれることです。
また、人気の秘密は、Linuxが搭載されていてカスタマイズの余地が残されていること。ちょっといじくれば、通常のパソコンと同等のLinux端末として利用できます。
【価格調査】
近所の店エ○○ンでは15400円。
先日の東京で買おうと思って行ったお店は14800円。。。。
結局買わずに帰り、送料無料のPC-SCCESSにて12590円で購入しました。
HG版は19800〜18000円程度で推移しているようです。なかなか値が下がらない。。。
【さっそくカスタマイズ】
通常利用はNASとして利用します。
LAN接続して、WIndows98以降のパソコンから、CDでインストールすれば、利用できます。ブラウザで192.168.11.150にアクセスし、設定可能。
しかし、それではつまらないので早速、Linux(Debian)端末に改造してみます。
手順は以下のサイトを参照してください。
・玄人志向の製品情報
・BuffaloのHD-LANシリーズ
・玄箱うぉううぉう♪ (ファイル入手)
・【玄箱】簡単 Debian Box 化の技 (ファイル入手)
・玄箱 Debianサーバ構築メモ(手順入手)
・【40000ヒット企画】玄箱をいじってみる
なんちゅう手抜きだ(汗。 m(_ _)m
えっと、上記サイトでは入手しづらく、自分が行き詰った箇所を以下にメモ書きしておきます。
・ハードディスクのディップスイッチは、マスターに設定しておくこと。
(さもないと、電源いれてから数秒で切れてしまいます)
・dselectの操作は、むやみにキーをたたかない(動きが遅い)。
・dselectで必要なファイルを検索したいときは、「 / (検索語句) 」で可能。
・dselectは以前選択したファイルも導入候補として残っているので注意。
・gccをインストールするときは、apt-get install gccでは関連ファイルが足らないのでdselectでインストールすること。
・kurosetup.exeでインストールしない方がよい。kuroupdate.exeでやる。
(どちらもファームウェアをインストール作業があるみたい。新しい方がよい)
・コマンドプロンプトは、画面表示が乱れることがある。Teratermがよい。
・消費電力は最大25W (取説にあったけど、買う前にWeb調べても不明だった)
・apache2は、現時点でDebian(安定版)パッケージに含まれていなかったので、
apt-getではインストールできなかったのでソースからコンパイルした。
【遊んでみた】
とりあえずインストールしたソフトを以下。
・apache2
apache2のWebDAV+SSL通信化にする。
makeする前の設定は以下のようにした。
「 ./configure --enable-shared --enable-dav --enable-ssl
--enable-headers --enable-so --with-mysql
--enable-mbstring --enable-mbregex 」
※「 --enable_modules=all 」は使えないっぽい。
WinでDAVするためにmod_davとmod_headersを明示指定する必要がある。
※ただしなぜかコンパイル後に「mod_headers.soがない」エラーが出て×。
そのため、わざわざコンパイル(たぶんmake)して、
「.libs」の中にできた「mod_headers.so」を/modulesに入れたら起動した。
※何回もコンパイルしなおすなら、apache2を停止してからmake installする。
単純に起動・終了は
/usr/local/apache2/bin/apachectl start で起動。
/usr/local/apache2/bin/apachectl stop で停止。
/usr/local/apache2/bin/apachectl restart で再起動。
自動起動できるようにするには
# ln -s /usr/local/apache/bin/apachectl /etc/init.d/apache2
# update-rc.d apache2 defaults
Adding system startup for /etc/init.d/apache2 ...
/etc/rc0.d/K20apache2 -> ../init.d/apache2
/etc/rc1.d/K20apache2 -> ../init.d/apache2
/etc/rc6.d/K20apache2 -> ../init.d/apache2
/etc/rc2.d/S20apache2 -> ../init.d/apache2
/etc/rc3.d/S20apache2 -> ../init.d/apache2
/etc/rc4.d/S20apache2 -> ../init.d/apache2
/etc/rc5.d/S20apache2 -> ../init.d/apache2
設定について(httpd.confなど)
・AddDefaultCharset ISO-8859-1 をコメントアウト?
探してもhttpd.confの中になかった(2.0.53)
文字化け対策でよくコメントアウトするのだけど。。。
・AddHandler cgi-script .cgiのコメントアウトをはずす
(CGIがどこででも使えるように)
・WebDAV用に以下の設定をする
一時フォルダとファイルをつくり、apacheが稼動するユーザーに追加
mkdir /var/httpd
touch /var/httpd/dav.lock
chown nobody.nogroup /var/httpd/
chown nobody.nogroup /var/httpd/dav.lock
※各々をchmod 766にした(不要だと思うけど)
日本語対応フォルダにする
未定。mod_encoding実装が必要。
とりあえずなしで設置してみた。
(UTF-8を使用しmod_encodingとliconv_hookはナシ)
Apache2のmod_davはコンパイル時に入れている。
Apache2のWebDAVの場合、文字コードはUTF8となる。
→参考:玄箱を使い倒す
Macで使用することもないので、UTF-8で運用することにした。
UTF-8なら、mod_encodingなしでも問題なく動いているようだ。
ただし、日本語は文字化けするので、いづれ実装しよう。
ちなみに、玄箱にデフォルトではliconvは入っていない。
httpd.conf内のWebDAV設定例
DavLockDB /var/httpd/dav.lock
< Directory "/var/www/dav">
SSLRequireSSL ←このディレクトリSSL必須とする
DAV On
Header add MS-Author-Via "DAV"
< /Directory>
※Directoryで設定すること。その下のディレクトリも有効に。
WindowsXPでローカルLAN内でWebフォルダを作るとき:
もしログイン画面がでて拒否られてしまう場合は、
http://192.168.X.XXX:80/WebDAV_Folder/
として、ポート指定まですると設定可。
あるいは未確認だけどWebフォルダを作るときだけ、
「WebClient」サービスを停止させれば作れるらしい。参考
追記: WindowsXP SP2対応について
Webフォルダはダイジェスト認証か、SSLが必須となったもよう。
困ったことに、ネットワークプレース追加時に、
対応していないURL(httpsでないURLやベーシック認証の接続先)を
指定しても、追加できてしまうが、接続できないとのこと。
・SSL対応にする
インストール
apt-get install openssl
apt-get install libssl-dev
apt-get install libmm-* libmm11-dev が入った。
※ここらへんのlib系がいるのか不明。
サーバ証明書(crtやkey)を発行
opensslコマンドで作成するが、ここでは割愛。
ssl.confの設定例 ( /usr/local/apache2/conf/ssl.conf )
DocumentRoot "/usr/local/apache2/htdocs"
ServerName shigeyoshi.jp:443
ServerAdmin ****@shigeyoshi.jp
SSLCertificateFile /usr/local/apache2/ssl/server.crt
SSLCertificateKeyFile /usr/local/apache2/ssl/server.pem
ld.so.confの設定( # vi /etc/ld.so.conf )
/usr/local/ssl/lib を追記
※/etc/ld.so.confを修正後、ldconfigコマンドを実行。
・玄箱起動時にapache2をSSLモードで自動起動できるように登録
通常起動ではSSLがONにならない。明示的に指定する必要がある。
/etc/init.d/のapache2内、ARGV="$@"をARGV="startssl"に編集する。
※ちょっと強引かなぁ(汗。
(通常、SSL機能付でApache2を起動する場合は、
# /usr/local/apache2/bin/apachectl startssl )
・.htaccessについて
特定ドメインやIPのみ許可し、基本認証を設定
< Files ~ "^.(htaccess|htpasswd)$" >
deny from all
< /Files >
Options -Indexes
< Limit GET POST PUT >
order deny,allow
deny from all
allow from 192.168.xxx.xxx
allow from ドメイン名
< /Limit >
AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Login" ←" "でくくらないとうまくいかない?
AuthType Basic
require valid-user ←制限ゆるいのかな?
・別マウントドライブをWebフォルダ・Web公開する場合:
httpd.confだけでなく、ssl.confにも「DocumentRoot」を書く欄が
あるので注意すること。error_logみればわかるけど。
・アドレスの/(スラッシュ)がないと、中身が表示されない問題の対処
ここにかいてある。
原因はIPではなくドメイン名によるリダイレクトを試みるため。
外部公開用に準備している場合は、DNSの登録を行なうか、
hostsファイル(system32/drivers/etc)で、名前解決しておくこと。
・PHP4
apache2での動作保証がないとのページも見つけたので、今後検証していく。
ググったら、どうやらソースからコンパイルしにゃいけないみたい。。。Orz 参考
コンパイルの設定は以下のとおり。
./configure --with-apxs2=/usr/local/apache2/bin/apxs
--enable-roxen-zts --enable-zend-multibyte --with-mysql
--enable-track-vars --enable-mbstring --enable-mbregex
4.3.10特有のコンパイルエラーが出るので対処を以下
エラー: /php-4.3.10/Zend/zend.c:776: incompatible types in assignment
make: *** [Zend/zend.lo] Error 1
tarを解凍した中のZendフォルダ内にzend.cがある。その中の776行目を
memcpy((usr_copy),(args),sizeof(*(args))); または
memcpy(usr_copy, args, sizeof(va_list)); と修正。(後者でやった)
php.iniの設定
(内部SJIS、出力SJISの例)
magic_quotes_gpc = Off ←余分なエスケープ文字挿入切
default_charset = Shift_JIS
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
※/usr/local/libがphp.iniのデフォルトパスらしい。
php.iniがなかったので、自前のものをここにコピーし認識させた。
(あいかわらず強引。。。)
GDライブラリを追加インストール
apt-get install php4-gd
libgd1 php4-gd t1lib1がインストールされた。
※でも認識されていないみたい。。。今後検証。
・ファイアウォール
まだ調査中だけど、iptable / knetfilter などを導入すればいいのかな。
・MySQL
dselectでインストール。
/etc/mysql/my.cnfを編集。以下を書かれていないので追記。
[mysqld]
default-character-set=ujis
[mysql]
default-character-set=ujis
・phpMyAdmin
ダウンロード先はここ。
Webminよりも高機能だし、使ったことがあるので。
※よく間違えられますが、phpMysqlAdminではありません(自戒)。
解凍して設置後、phpMyAdmin\config.inc.php の以下の箇所を設定する。
$cfg['PmaAbsoluteUri'] = '設置したサーバIPかドメイン/phpMyAdmin/';
127.0.0.1とかにすると他のパソコンからアクセスできないので、
ホスト名が望ましいが、その場合は、DNSやhostsの登録が必要。
※メモ: 用心のためSSLのディレクトリに入れて「SSLRequireSSL」に。
・Webmin
dselectでインストールしたら、いろいろなモジュールも追加してくれた。
・Samba2
LANファイル共有(Samba)とWebDAVの文字化け対策:
WebDAVの日本語名のファイルたちはUTF-8で管理するようにしたので、
Sambaも同じUTF-8で管理するようにした。
Windows共有フォルダ側からは、いわゆるSjisで表示するように設定。
apt-getしたsamba2.2.3aの設定は/etc/samba/smb.confにある。
以下の記述を[global]に追記
client code page = 932
coding system = UTF8 ※注意: UTF-8ではなくUTF8。
dos charset =CP932 ※上記が932だからCP932はバツ?
unix charset = UTF8
停止/起動 # /etc/init.d/samba stopまたはstart
これをやると共有フォルダに保存していたSJISファイルが見えなくなるので、
ちゃんとフォルダ内を整頓してからやる。
注意!: SambaとApacheは連携してファイル排他処理をしていない。
同じファイルを同時に処理するとファイルが壊れる。
Comments
|