2007/07/02(月)サーバ入れ替え その7

2007/07/02 14:05 PC(Linux)
[7]サーバの設定

以下参考サイトだけ列挙。
[ssh]

http://www.unixuser.org/~euske/doc/openssh/jman/sshd_config.html

せっかくなのでパスフレーズ認証に限定する。/etc/ssh/sshd_configを書き換えて、puttyで鍵作って転送。
[samba]

http://www.samba.gr.jp/project/translation/3.0/htmldocs/smb.conf.5.html

パスフレーズで固くなったことにして、www-dataを実体ユーザにし、ガンガン書き換えられるように。一応iptablesで締まってるはずだけどね。
[dhcp]

http://www.atmarkit.co.jp/flinux/rensai/bind908/bind908a.html

man dhcpd.confしてもさっぱりわからない。dhcpd.confのmanの出来は特級に悪いと思う。
[dice]

APTで更新チェックができないけれど、daemonで動くとはいえセキュリティ的にはさして怖い部分ではないから大丈夫でしょう。
設定ファイルはコピー。

/etc/init.d/diceを作って書いて、

# update-rc.d dice defaults 92
[proftpd]

proftpd.confにPassivePortsを追加しておく。

hosts.allow,denyで適宜サービスを制限。あとで、inetdの中に入れることを検討しておく。
[Apache2]

オフィシャルでいちいち調べて設定。

昔(1.3系)はオプションで明示してやらなければいけなかった挙動が、だいぶ良きに計らえになっているようだ。
せっかく標準でディレクトリ分けをしているようなので、/etc/apache2/sites-availableのdefaultに個人設定を集約して、apache2.confはあまりいじらないようにする。

cgiの拡張子の調整くらいで、以前の設定をほぼそのまま引き継ぎ。

[×qmail]

インストールしない。今回は当面MDA無しで行く。
[awstats]

cron.hourlyに

awstats.pl -config=/etc/awstats/awstats.conf -updateをつっこむ。
[networkの調整]

NATにする場合、忘れがちなのが/etc/networks/optionsの設定。



ip_forward=yes



optionsがない場合もあるので、作ってこうしておく。

ここで、ping 192.168.1.11(自分のローカルIPアドレス)が通らないことが発覚。

loが原因ぽいねえ。


###loopback all acceptance###||<
<ul>
<li>iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT</li>
<li>iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT</li>
</ul>
<ol>
<li>iptables -A INPUT -i lo -j ACCEPT</li>
<li>iptables -A OUTPUT -o lo -j ACCEPT</li>
</ol>
<hr />
これで解決。

2007/07/02(月)サーバ入れ替え その6

2007/07/02 12:54 PC(Linux)
[6]カーネル再構築

カーネルソースをダウンロードしてきて再構築していく。

手順そのものは以下のように、いつも通りなのでコマンドラインだけ。


# cp /boot/config-2.6.18-4-686 .config (デフォルトオプションをコピーしてくる)

# make oldconfig

# make menuconfig

# make

# make install

# make modules

# make modules_install

# update-grub



update-grubじゃなくてもうちょっと、bzImageの管理方法確立した方が良いのかなあ? もうちょっと頻繁に構築するスタイルなら考えた方が良いのだろうけど。

(カーネルオプション)

・nat関係を全部チェックするのを忘れずに。

・電源管理オプションをちゃんと入れるとこの機種では結構消費電力が下がったように思うのだが、どれが効いたのか定かでない。


以下はまったところだけ。



scripts/kconfig/lxdialog/dialog.h:32:20: error: curses.h: そのようなファイルやディレクトリはありません



makeでlibncursesがらみが無くて怒られた。

# aptitude install libncurses5-dev
しておく。



VFS: Cannot open root device "hda1" or unknown-block(0,0)

Please append a correct "root=" boot option

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)



再構築後、起動に失敗した。

initrdがうまく更新されていなかったようなので、

# mkinitramfs -o /boot/initrd.img-2.6.21.4 2.6.21.4
しておく。initrdって更新が必要なものなんだっけ? 理解危ないなあ。というか一手順忘れてるのかもしれない。必要なくなる手順とかあるから何が何だかわからなくなってくるね。

2007/07/02(月)サーバ入れ替え その5

2007/07/02 12:40 PC(Linux)
[5]がりがりインストール

APTでばんばかインストール。
まずサーバ群をインストール。

# aptitude install apache2

# aptitude install mysql-server

# aptitude install samba

# aptitude install proftpd

# aptitude install ntpd

# aptitude install dhcp
一応便利ツール。

# aptitude install screen

# aptitude install dnsutils

# aptitude install fdclone

# aptitude install lv

# aptitude install hdparm

# aptitude install apt-show-versions

# aptitude install finger
scrennはfdcloneと相性が最悪なので、あまり使わないのだけれど。

ここら辺は無いと困る。カーネル再構築にもいるし。

# aptitude install bzip2

# aptitude install gcc

# aptitude install make

# aptitude install tar
ネットがらみ。

# aptitude install wget

# aptitude install awstats
エディタは当面標準でついてるnanoを使うことにしてemacsはまだ入れない。

後は忘れた。

2007/07/02(月)サーバ入れ替え その4

2007/07/02 12:40 PC(Linux)
[4]~ネットワークの立ち上げとAPTの整理まで

APTでネットからインストールできるようになるまでの流れ。なおここらあたりだいぶ作業ログが吹っ飛んでいるので一部うろ覚え。
(1)システム(カーネルとかブートローダとか)インストール

まずはetch(debian 4.0r0-i386-netinst)のCDイメージを使って、ウィザードに従ってインストールしていく。パーティションの分割とかは割愛。
ところで余談だが、この前HDDの復旧をしたときに初めてパーティションを細かく切ることの恩恵を理解した。HDD故障の際にデータ読みだしに極端に時間がかかるような状況になると、重要なデータのエントリポイントがわかるとわからないのでは大違いなのだね。データが残っているということと、現実的に復旧できる可能性はまた違うのだった。

閑話休題。

とりあえず今回はウィザードの設定を使わず、GRUBだけ入れてからソフトは個別にインストールしていくことにする。

あっという間に終了。

もう1個余談。debianは最新版はイメージで探せるのだが、最近旧版はイメージに関して全くミラーしなくなった。jigdoを使ってくれということらしい。BitTorronetなんてどれだけ時間かかるかわからないし、ミラーをさまようよりはjigdoのほうが手っ取り早いということを覚えておこう。

(2)ネットワークの立ち上げ

まずsshがないと始まらない。

# aptitude install ssh-server
そうそう、そろそろapt-getじゃなくてaptitudeを使うように習慣づけるようにする。

それから、とりあえずルータの中からつなぐことにしてnetwork interfaceの設定をしてやる。DHCPでもいいのだけど、今回は一応IPを固定したかったので、/etc/network/interfacesを書き換えてローカルアドレスを書いてやる。そんでifdown/ifup eth1。

nx6110はIEEE1394がeth0に、NICがeth1に割り当てられているようだ。DHCPを使わない場合、/etc/resolv.confにDNSサーバのIPアドレスを書いておく必要がある。

とりあえずgoogle.co.jpとかにpingが通ることを確認し、移行の作業をsshに切り替える。

(3)apt-lineの整備

debianスレのテンプレとかを参考に、/etc/apt/sources.listを書き換え。aptitude updateが成功することを確認。
iptablesを整備。基本的には過去のもののコピーしてinit.dにスクリプトを作り、update-rc.dする。カーネルを再コンパイルするまでは動かない機能があるかもしれないので、エラーが出た部分はコメントアウト。

とりあえず準備はできたかなっと。

2007/06/29(金)サーバ入れ替え その3

2007/06/29 14:42 PC(Linux)
[3]ノートPC+USBキーボードが使えるか?

何でこんな不毛なテーマを考えているかというと、2つの理由がある。
1つは、前回の記事との関連で閉じたままでの運用が可能かという話。もう1つはキーボードがないジャンクノートは果たしてサーバになりうるかという疑問からである。

実のところ、どういったPCにUSBキーボードを挿そうがLinuxカーネルが対応していないはずはないのだ。問題は、各ディストリが「インストールCDの段階で」それをケアしたカーネルを作っているかどうかである。そりゃあそうだ、キーボードがないんだから、sshで入れるまではなんとかUSBキーボードで処理しなきゃいけない。カーネルを作り直すにしたってそうだ。自前のカーネルを組み込んだインストールCDを作るのはできるんだろうけどちょっと労力。自分のLinuxとのつきあい方からすると、やっぱりオフィシャルのイメージでインストールできてほしい。

でもう結果だけ書く。全部debian系。

debian woody - ○

debian sarge - ×(無反応)

debian etch - ×(二重入力≒チャタリング状態)

ubuntu 7.04 - ○
knoppix4.xも試したはずだが、メモが残ってない。確か大丈夫だったように思う。

ブートローダまでは大丈夫でカーネルが動くとおかしくなるのでもういけない。それにしても明らかにdebianが無頓着だということがわかる。古いので大丈夫で、今のはだめとなるとむしろ期待が持てない。ここらへんubuntuからのフィードバックを期待するdebianコミュの人たちの気持ちがわかるなあ。

打開策はないわけではないのだろうけど、こんなくだらないところで悩みたくないなら、キーボードは最低限ついているノートPCでないと無理と確定。特によくよく考えれば、一部ファンクションキーが動かないとビデオ出力とかで困りそうだものね。サーバにするんだったらやっぱり最低限下半身完品ってことみたい。最近のノートはBIOSが外部出力に出せるものがほとんどなのでディスプレイは必ずしも無くてもよさそう。今回入手したnx6110のように、一部縦線とか表示不良ならベストですかね。もちろん完動品買えるならそれが一番いいんだけど。

2007/06/29(金)サーバ入れ替え その2

2007/06/29 12:20 PC(Linux)
[2]Wake-on-LAN(以下WOL)ができるようにする

あまり本質的でない話なのだが、ノートPCをサーバにしたときにちょっと悩むのが電源ボタンへのアクセスである。
省電力やホコリ対策で液晶は閉じて使うのが通常であるが、閉じた状態では現役のほとんどのノートPCでは電源ボタンにさわれない。当然ノートPCを開けばすむ話である。が、開かずに運用できるならば設置体積を節約できるという利点がある。メンテナンスなどでシャットダウンしなければいけない機会はあり、WOLができれば若干便利になる。以前挫折したWOLであるが、今回は比較的やりやすいノートPCということで再チャレンジしてみることにした。

結論から言うとできるようになった。どうやらWOLの仕組みに重大な勘違いがあったようだ。順に話を進めよう。

まず、以前の挫折時の話を整理しよう。

・マザーボード、NIC、PCIコネクタの位置等に相性がある

・スタンバイ(S3)からの復帰は成功確率が高いが、休止(S4)や停止状態(S5)からだと難しい

・WOLが成功する組み合わせで、停止->起動ができるときもあったが再現性がない
ということだった。

ここで注目すべきは再現性がないという点。「再現性がない」は、同じ状態と自分が思いこんでいたものが実は異なるものだったりすると話が変わる。これに気づいたのはnx6110で実験しているときに「Windows XPで終了させたとき」と「電源ボタン長押しで終了させたとき」の挙動が違うことを発見したからだった。つまりどうやら電源オフの状態というのは一意ではなく、「単に電源が切れている状態」というのとは違う、「OSがWOLに備えてNIC側になにかを設定した状態」というのがあるらしい。

わかってしまえば情報は見つかるようになるものである。たとえば、「Wake-on-lan 電源ボタン」とかでググるとヒントが色々見つかる。

http://www-06.ibm.com/jp/domino04/pc/support/Sylphd07.nsf/jtechinfo/SYJ0-03CEEF6

http://www.fmworld.net/biz/celsius/manual/03kamiki/8861330/h_bios12.html
つまり、電源ボタン長押しやケーブル引っこ抜きなどによって電源を切った場合ではWOLは働かない。電源ボタン長押しで停止->WOLを試していた以前の実験では元から成功するわけがなかったのだ。ちなみにこのことから、停電時に遠隔地から電源オンするというWOLの無茶な使い方はUDPブロードキャストという点をさっ引いても、さらに厳しそうだということもわかった。ことこの用途に関しては、そういった機能を備えた無停電電源や秋月のIP POWER(ただし当然ルーターはコンセント接続=電源オンじゃないとだめ)とかそっちを使うしかない。

さて、Windows XPは終了時に自動でこのWOL待機を設定しているようである。きちんとWindows上で終了手続きを踏めばS5からのWOLが成功するようになった。一方、Linuxのカーネル2.6では今のところそのようにはなっていない。終了時にソフトで待機設定をたたいてやる必要がある。探してみると、ethtoolというソフトでWOL関係の設定をいじれるようだ。

早速インストール。

# aptitude install ethtool
Fedora Core掲示板

http://bbs.fedora.jp/read.php?FID=8&TID=4112
を参考に、init.dにset_wolというスクリプトを作って、こう書いてやる。



#! /bin/sh
/usr/sbin/ethtool -s eth1 wol g



で、debian流のスクリプト組み込み。再起動時(run level 6)に設定する必要はないはずなので、終了状態(run level 0)だけでいいはず。

# chmod +x set_wol

# update-rc.d set_wol stop 89 0 .
haltさせて実験させてみたところ、問題なくWOLができるようになった。あー難しかった。

なお、Windows上からWOLさせるなら、

http://www.vector.co.jp/soft/win95/util/se241927.html

がいいようだ。
Linuxからでは、

http://packages.debian.org/stable/net/wakeonlan

とかでいい。

2007/06/28(木)サーバ入れ替え その1

2007/06/28 18:07 PC(Linux)
ez!goサーバが最近ポンコツ化してきたので、サーバを完全に入れ替えた。以下その作業録。

[1]機種選定

我が家のサーバを担ってきた、Logitec CosmoJet EZGO-80CF128A(AtoZのE3032SのOEM)、通称EZgo。こいつにはいくつか不満があった。
まず安定性が低かったこと。コンデンサの液漏れ→張り替えに代表される作りの安さに加え、サーバ機として致命的だったのがHDD問題。ほとんど新品状態のEZgoにLinuxをインストールした状態で、HDDエラーから全くアクセスできなくなるということが週一ペースであった。IBMからFujitsuのHDDに換えることで一時期改善はしたのだが、若干HDDがへたれてくるとまた起こるということの繰り返し。HDDエラー時に明らかにHDDを痛めてる音がするのも精神衛生上よくなかった。

Pen3世代のコンパクト機にありがちな騒音。ファンが大小2つついているのだがこれが非常にうるさい。小を止めると若干マシになるものの、C3 800MHzを組み込んだ状態でも上記のような問題があって止めていいのかどうか判断がつかなかった。

動作の遅さ。当然これはEZgoが悪いと言うよりも、C3 800MHzを載せた自分が悪いのだが、いかにサーバ機といえどもうちょっとPerlやRubyのcgiが軽快に動く環境であってほしい。

また全体的にインターフェースの作り込みが甘く、TV出力が当てにならなかったり、一時期はビデオ出力ですら不安定だったこともあった。

このような不満を抱いていた折、FujitsuのHDDがさらに不安定化したこともあってついにサーバ機交換を決断した。

さて上記の不満を解消した上で、EZgoの利点であった消費電力の低さを維持したい。

・安定

・Intelチップセット(安定性の一環?)

・20W未満

・Pen3 1GHz級のスピード

・静音
20W未満となるとEZgoと同様にACアダプタを電源としたPCでしか達成できない。そうするとノートかベアボーンかと言うことになるが、その他の条件を吟味するとEZgoの反省をふまえてベアボーンでは厳しくということになる。結局選択肢としてはノートPCしかない。

そこで、具体的には以下のような条件でノートPCを選んでみた。

・PenM世代

・Intelチップセット

・ビデオはチップセット内蔵(RADEONなどを別個に搭載しない)

・CD-ROM内蔵

・安く抑えるため液晶は表示不良でもよい

・あえて小型機は選ばない(高くなる可能性と、ファンノイズの問題)
結果、HP nx6110(CelM-360J=1.4GHz, Intel 915GML)の液晶不良のものが2万円ちょっとで入手できた。肝心の消費電力の方だが、ディスプレイを閉じた状態でバッテリーを外しOSでHaltを打ち続けるという条件では、ワットチェッカー読みで14Wと満足がいく数値だった。また、ファンノイズも十分静音といえる範囲で、EISTがあるPenMに差し替えればもっと低くなる可能性もあり、2kの追加投資をするかどうかは悩みどころ。

以下余談。HPのノートPCは本当に久々にさわったのだが、すばらしく出来がいい。nx6110はA4の中量級ノートなので持ち歩き用に買うことはないだろうが、ここ最近さわったIBM・NEC・DELLの同タイプノートよりも出来がよいように思う。IBMは堅牢性が売りだったのにずいぶんとちゃちくなってしまった感があり、今は質実剛健といえばHPなのかもしれない。

2007/02/05(月)Diced + ZoneEditの調子が悪い

2007/02/04 27:17 PC(Linux)
現在Dynamic DNSとしてEveryDNSとZoneEditを使っている。どちらも比較的定評があるDynamic DNSだと思うのだが、ここのところ何回かに1回ZoneEditの更新に失敗することがある。

失敗する原因が不明で、手動でdicedコマンドを実行し直すと通ったり通らなかったり。また、ZoneEditのサイトでブラウザ経由で更新する分には問題が無く、特定のサーバだけ重くなっているのかもしれない(が、Dicedでタイムアウトと判定されないのがネック)。ZoneEditだけIPアドレスが更新がされていなかったため、EveryDNSに聞いてる人はたどり着けるのに、ZoneEditに聞いた人はたどり着けない期間があったようだ。

さて、対処法だが手段は色々あるのだがさてどうしよう。そもそも再起動なんてそうそうしなければいいはずなのだが、HDDがどうも調子が悪く定期的に再起動の必要がある。

ISPにつなげてる間にIPを変えられることはないようなので、再起動時に常に気をつけていればいいというのも1つの考え方。

cronで回すのは、うーん。hourlyでlogを調べさせるぐらいか。別のDNSサーバをみつけるか、EveryDNSとZoneEditのいずれかに統一してしまえばいいという案もあるのだが、そもそも何で併用してるかと言えばEveryDNSが一時期不安定で良く鯖落ちしてたからこういう状況になったのだった。ええい。

cronでチェックさせて、あとは気をつけるのが一番だな。

2006/05/08(月)subversionが上手く動かなかったのは?

2006/05/08 15:01 PC(Linux)
subversionが上手く動かなかった問題。

最初原因が切り分けできてなくて、綺麗に迷路にはまった。分かってしまえば至極単純な話だったのだが。

まずsvn+sshでsvnサーバの外からTortoiseSVNで繋ごうとしたが、"Unable to write to standard output (stderr)"というダイアログが出て上手くいかない。原因を探るためにサーバにログインしてチェック。
%svn list --version
で、
svn: error: cannot set LC_ALL locale
svn: error: environment variable LANG is ja_JP.EUC
svn: error: please check that your locale name is correct
とエラーが出て上手く行かない。元々整備する気がなかったので環境設定はいい加減。LANGを設定すればいいようなのでtcshで、
%setenv LANG C
とすると、
%svn list --version
や、
%svn list file:///レポジトリ
は通るようになったが、
%svn list svn+ssh://レポジトリ(自分)
だと、やっぱりダメでzshでexportしても変わりなく訳が分からなくなったのだった。

このエラーなのだが、要はsvn+sshはsshで入ってもってくるんだということがすとんと抜けていたのだった。つまりsshで繋いだときに入った先の環境であって、繋ぐ前のシェル環境のことではない。ということは.cshrcとか.profileとかに書かないとダメ。

とりあえず、暫定で.cshrcの末尾に
setenv LANG C
を書き加えた。

あとはログイン先からもTortoiseSVNからも問題なし。

2006/05/05(金)フリーライセンスなフォント

2006/05/05 20:48 PC(Linux)
書いてた記事が消えたのでやる気無くした。メモだけ。

欧文でちょっと調べたけど、debianのfreefont(http://packages.debian.org/stable/x11/ttf-freefont)は小さい文字なんかが見づらかった。
ライセンスが明確なものではM+(http://mplus-fonts.sourceforge.jp/)とVera(http://www.gnome.org/fonts/)が良さそうだったので、使ってみたけどM+は端が欠けたり出っ張ったりしてて、Veraのほうが綺麗で見やすかった。
今回はVeraを使おう。

東風はもう使えないんだっけね。マッカーの人がしきりにosakaフォント勧めてたけどアレもライセンス怪しいんだよね。

ライセンスに関する記事ね(http://japan.linux.com/opensource/06/03/03/0329203.shtml)
[ライセンスを明記してるリンクサイト]

http://wiki.fdiary.net/font/?freefont
[それ以外のリンクサイト]

http://yellowpage.gogo.tc/index.html

http://www.geocities.co.jp/SiliconValley-SanJose/3220/Font.htm

http://ohkadesign.cool.ne.jp/freefont/

http://www.aboutfont.com/
[2ch]

http://pc8.2ch.net/test/read.cgi/linux/1130748494/
OK キャンセル 確認 その他