設定したことを忘れないように書いてあります。
結局、ftpsyncは、IM::Passが見つからず、ここをコメントアウト。
fetchmailは、mdaの指定がいらないようで外す。また、cronの書き方が間違っていたため、前日までのファイルが更新されなかった。
今日はftpsyncを再度作成。perlのモジュールをCPANから取得するが、NET::FTPがlibnetに統合されていたり、モジュール探しに費やす時間がかかる。
HDDを換装し、サーバマシンのHDDを8Gにする。簡単に移設するつもりだったが、Linux Japan 2月号に slackware 7.0がついていたので、それをベースとすることにする。
簡単にゆくかと思ったら、mountの場所を変更したのがケチのつきはじめで、routingが巧く行かず悩まされる。結局、カーネルを再構築する必要があっただけなのだけど、つい2.2.13ベースだったので作業を後回しにしてしまった。ついでに、default routeが2つあったのも修正しておく。
また、dnsを再設定したのだが、うっかり/varの下を上書きしてしまったため、すぐに立ち上げられず、DNS-HOWTOを読んでまた作る羽目に。
次にsambaを入れ直したのだが、packageでインストールしなかったため、デーモンで起動されず悩む。さらにパスワードファイルの変換の方法(souce directoryで、mkpasswd.shを動かす)ことを忘れていて、繋がらず。またfetchmail用のmail.localが見つからず、sendmailのソースから作成する。
で、家のkernelも2.2.13にアップグレードした。しかし、make modulesはし忘れるは、/etc/rc.d/rc.modluesのコメントを変更するのをわすれるはで手間取ってしまった。upgread自体は問題なく終了。vzlinuzを/から/bootに変更してみた。
やっと VAIOのkernelが2.2.12にでき、pcmciaが使えるようになった。意地でもbinaryのrpmでパッケージ管理しようとして長く時間がかかってしまった。必須パッケージがないのメッセージは、linux側でネットワークもFDDも使えない機械では非常に大変。windowsを立ち上げてダウンロードし、dos領域をmount、cpの繰り返しだった。
しかし、vineseedのシリーズはglibc(libc.so.6)がインストールされていないとなってしまう。kernel-2.2.12も、vineseedではなくredhatのrpmを入れてアップデート可能となった。lib其の六は入っているのだけど。
せっかくインストールしたのだが、シャットダウンが正常では無かったようで、立ち上がったときにfsckが走るのだが途中で止まってしまう。rootをread-onlyでマウントしたまま、read/writeの状態にremountしないので、fsckをかけても修正できず手も足もでなくなる。
liloで立ち上げるときに
linux root=/dev/hda2 rw
とでもパラメータを渡せれば強制的にread/writeで立ち上げられる(とあとでわかった)のだが、liloの待ち時間を1秒にしてあったため(これもliloのパラメータを秒単位と勘違いしていたから)、パラメータを書いてる内に立ち上がってしまう。なんとか、インストール用のloadlinで、
loadlin vmlinuz initrc=intrc.gz root=/dev/hda2 rw
とパラメータを渡して立ち上げることができた。ちなみに /dev/hda1=windows98 /dev/hda2=/ /dev/hda3=swap /dev/hda4=ハイバネーション領域となってる。
で、read/writeでmountできるようになったのだけれども、start PCMIA modulesで止まってしまう。取り敢えずsingle userでは立ち上がるので、pcmciaをnoとして立ち上がるようにした。
会社のVAIO C1Sにlinuxをインストールしようとして四苦八苦。Linux Japanの99年3月号に、SLACKWARE3.5を入れた記事があったので、大丈夫かとも思ったが、今まで slackware 系ばかりだったので話題のVine 1.1を入れようか思い、USB FDを使用しているので libretto用のloadlinによる方法を行った。しかし、readmeファイルにも書いてある通り、FAT32を使用していると巧くいかないようで、rootをmountしようとしてkernel panicとなって止まってしまう。しかたないので、他の人から純正CD-DRAIVEを借り、ここを参考にインストールを行った。
取り敢えず、インストールは終了し、Xも動かした所でとりあえず今日は終了。しかし、このままでは再インストールの度にCDが必要となるので、loadlin用のカーネルを作らなければならないかなぁ
マザーを交換して安定してきたので、再度kernelを作成しようと make menuconfigをするが、ncursesのincude fileとライブラリが一致していないというメッセージがでて立ち上がらない。ncurses-1.9.9gをコンパイルするとforbidden register cxなどと出てコンパイルできない。これはgccを2.95系にしてから時々でるので、egcs-1.1.2を取ってきて、インストール。
configure --prefix=/usr make bootstrap make install
で、ncursesをコンパイルしたら問題なくコンパイルできるようになった。しかし、menuconfigはコンパイルできない。どうやらシェアードライブラリが更新されていないよう。configure --helpとすると
configure --prefix=/usr --with-shared --enable-overwrite make make install
とするようだ。コンパイル・インストールしたら make menuconfigが通るようになった。
sambaがブラウズできるようになったのは良いのだけど、syslogにinetd : netbios-ns/udp server failing (looping), service terminatedが残る。どうやら、inetd を waitで動かしているときに、処理が多くてタイムアウトになっているよう。 ブラウズリストには、24のワークグループが見えるようになっているので、これが重くなっている原因か?。
セキュリティ的には、ポート自体を塞いだつもりなんだけど、ちょっと不安。
そうだそうだ、bashもupgreadしたんだ。これも特に問題なく、bash-2.03にはなったんだけど、promptが、bashだけでなく、bash-2.03になってしまうのがちょっと気に入らない。.profieも.loginも設定していないんだけど。 また、/bin/shと/usr/bin/bashが/bin/bashにシンボリックリンクされていたのだけど、コンパイル後は、/usr/bin/bashが実体になってしまったので、元の形に張り直す。
kernel2.2.xに対応していない、procinfoとprocpsをインストールしようとしたら、ncurses系のincludeが無いと文句をいわれたので、ncurses_1.9.9gを拾ってくる。 glibc2にしたため、includeなどが無くなっているため何かツールをコンパイルする度に環境整備が必要となるようだ。
sambaも2.x系になっているので、Japanized samba pageから、samba-2.0.5aを拾ってきて、upgread。こっちは特になにもなくインストールできた。設定が変わっているためいろいろできそうだけど、取り敢えずインストールしただけ。
kernel を 2.2.10にあげたので、次はlibrary。で、glibc2へUpdateする。Glibc2 HOW-TOを参考(というかそのままに)行い、無事終了。なんだけど、途中なんどもリブートがかかってしまう。前回の現象は完全には直っていないようで、マザーもしくはハードディスクの更新の必要性はまだ残っているかも。
しかし、kernel 2.2.10にしたこと自体は非常に快適な環境となっている。特にTCP/IP周りは、体感できるほど速い(このへんはCPUパワーとネットの速度によって違うだろうけど)。訳の分からないリブートさえなければ、現状には満足。
ついでに、以下のようにしてIPフィルタリングを行った。
ipchains -A input -j DENY -s 127.0.0.0/8 -d 0/0 -i eth0 ipchains -A input -j DENY -s 127.0.0.0/8 -d 0/0 -i eth1 ipchains -A input -j DENY -s 192.168.xxx.0/24 -d 0/0 -i eth0 ipchains -A input -j ACCEPT -s 192.168.xxx.0/24 -d 0/0 -i eth1 ipchains -A input -j DENY -s 0/0 -d 0/0 -i eth1
1,2行目は、eth0 および eth1から lo のアドレス詐称を禁止する。
3行目は、eth0(外部)から、eth1(内部)のアドレス詐称の禁止
4,5行目は、eth1(内部)から、ローカルに許可していないアドレスを使用することの禁止。
4.5行目は、自分だけのネットなので、自分がちゃんと管理できれば不要なのだけど、設定ミスその他は必ずあるので、フェイルセーフとしておくのが肝要。
前のHDDが健在なのでディストリビューションは、 slackware のまま。make bzdiskで起動ディスクを作成し、起動すると今度は問題なく動く。
次にipchainでmasqueradeの設定を行う。
echo 1 > /proc/sys/net/ipv4/ip_forward ipchains -A forward -j MASQ -s 192.168.xxx.0/24 -d 0.0.0.0/0 ipchains -P forward DENY
2.2以降では、最初の行が無いとip_forwadが有効にならないので必須となったらしい。それ以下の行は、意味的には昔(ipforwarding)と同じで、二行目は、ソース(送信元)アドレスが192.168.xxx.0と上位24ビットが一致するパケットを、マスカレードモードでフォワーディングする。デスティネーション(送信先)はなんでもかまわない。という意味。2行目は、それ以外のフォワーディングを禁止する、と言う意味。しかしmasqueradingがうまく動作しない。
/var/adm/messagesを見ると、どうやらeth0とeth1が入れ替わっている様で、今まではEtherexpressが外に向いていたのに、新しいkernelでは、3c905Bのほうが外になっている。と、言うことでケーブルを入れ換えたら問題がなくなった。
取り敢えず、routerとして動作すれば後は地道に行えるので、make bzliloする。また、ついでに、今までwindows用にあった領域を開放する。fdisk -> t , 83 で linux nataveへ変更し、
mkfs -t ext2 cp -aR /home/* /dosroot rm -rf /home/*
次にfstabを
/dev/hda1 /dosroot msdos defaults 1 1 から /dev/hda1 /homet ext2 defaults 1 1
に変更した。