2007/07/02(月)サーバ入れ替え その4
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/07/02(月)サーバ入れ替え その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(月)サーバ入れ替え その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(月)サーバ入れ替え その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(月)サーバ入れ替え その8
色々実験したのでわざわざ分けてみた。
実のところMSNメッセで会話するだけなら、1863ポートを開けるだけでよい。
しかしファイル転送となるととたんにハードルがあがる。ルーターの中からファイル転送するのはハードルが高い上、今メインで使ってるのが互換のRegnessemなので大混乱。結果としてはうまくいかなかったので現状維持なのだけど、一応メモ。
# aptitude install linux-igd
debianのパッケージだと、今インストールするのはこれだけでいい。ReAIMとかはもう不要というか、入れても状況が変わらないようだ。
Jun 12 09:31:45 debian2 upnpd[4549]: Error registering the root device with descDocUrl: http://192.168.1.11:49152/gatedesc.xml
Jun 12 09:31:45 debian2 upnpd[4549]: UpnpRegisterRootDevice returned -204
Jun 12 09:36:01 debian2 upnpd[4623]: UPnP SDK Successfully Initialized.
Jun 12 09:36:01 debian2 upnpd[4623]: Succesfully set the Web Server Root Directory.
上記のようなエラーが出てlinux-igdがうまく動かないが、これは先の記事で書いたloのpingが通ってなかったのが原因。
で、動かしてみてlinux-igdも認識されたようなのだが結局ファイル転送はお互いが使っているソフトによってできたりできなかったりである。確実なのはMSNメッセ(7.0)やLive!メッセ(8.0)など新しいもの同士の方がファイル転送ができる可能性は高いということだ。Windows Messenger(5.0)やRegnessemだと、受信・送信側に関していかなる組み合わせにすると必ず転送できる状況になるのか知見が得られなかった。これだと、現状の1863ポート開けとほとんど状況が変わらない。
ちゃんと動いたとしても、linux-igdにはチェインを(ある程度)自由に書き換えさせることになるので、セキュリティホールの温床である。うまくいかないのでさっさと見切りをつけて、FORWARDのデフォルトポリシーもDROPにしてアンインストールしてしまった。これでも、会話には問題がないしregne同士で環境によってはファイル転送ができる。さらに訳がわからなくなってきた。
ファイル転送に関しては転送バッタなどもっと別のソフトを使った方が良いのだろう。使えなかったらあきらめる、or本家最新版。
それと、regneの進化に期待(一応考えてはいるようだから)。
2007/07/02(月)サーバ入れ替え その9
wwwサイトをユーザ分まで全て移送し、オーナーなどを書き換え。
.htaccessで、使っていないcgiなどを暫定的に全てつぶす。
アクセスがちゃんと制限されているか確認。cgi、webに問題がないか確認。
CAn't locate jcode.pm
jcodeがらみで動かないCGI(waa?)があったが、たぶんコメントアウトで解決。
いよいよpppoeでネットにつなぐために設定をする。簡略化のために、設定ソフトでやる。
# aptitude install pppoeconf
pppoeconfを使ってpppを設定。以前はrp-pppoeだったので、最初ちょっとやり方がわからなかった。接続はpon,切断はpoff。接続テストをして問題ないようなら、最後にもう一度iptablesの設定などを確認し、local IPアドレスなどを運用用のものに書き換えてリブート。
あー疲れた。
サーバは書いてない部分でもできるだけ締めたつもり。今後は、侵入検知の導入とログの採り方+報告をうまいことがんばる。あとできればinetdの中に入れられるものは入れてしまう。
2007/07/02(月)お絵かき掲示板とJ2RE 1.6の相性が悪い
javaコンソールを見ると、
load: クラス pbbs.PaintBBS.class が見つかりません。
とでている。
調べたら、
http://support.wondercatstudio.com/data/NO_001440.html
http://support.wondercatstudio.com/data/NO_001444.html
辺りが出てきた。
どうも、
J2SE Runtime Environment6 Update1 (J2RE 1.6)
だとだめくさい
プログラムの追加と削除からj2REをアンインストールして、
http://java.sun.com/javase/downloads/index_jdk5.jsp
から、
J2SE Runtime Environment5.0 Update12 (J2RE 1.5)
をダウンロードして、再インストール。
……直ったよ。どうなってんだ!?