設定したことを忘れないように書いてあります。
次は、FreeS/WANでIPSecを使えるようにしてみる。
とりあえず、version 1.9がlatest versionのようなのでダウンロードし、make menugoしてみる。
しかし、gmp(GNU multi-precision package)が必要とのことで、 入手し、./configure ; make ; make install する。
FreeS/WANは、kernelを書き換えるためにmake menugoした後はkernelのconfigurationが 表示され、network optionsの下にIPSecが追加される。exitして保存すれば、kernelのコンパイルに移っていく。
久々にページ更新。
Linuxは、安定版kernel 2.4が出てからいじくっていたけど、Kernelのアップデートに四苦八苦しているうちに2.4.4が出てしまった。
まず、第一の失敗は、configurationで、従来moduleだったethカードをkernelに組み込んでしまったこと。
これで、インタフェースの認識の順番が変わってしまい、ネットワークがすべて死んでしまった。 端末上からは、インタフェースが認識できるし、routeもでるので全然わからなかった。
それ以外は、modutils-utilsをversion upしないといけないということは出ていたので、modutilsを2.4.3にupdateした。 また、先の失敗のせいで、net-toolsがおかしいのではと疑い、1.59にupdate、あるいはbinutilsのせいかとも疑い、 binutilsも2.11にupdateした。結局この二つは関係なかったけど。
でも、ipchainsが使用できない。ここを見ると、 ipchainsは使用できなくて、iptablesに変わったとなっている。configurationのnetwork options->Network Packet Filtering ( replace ipchains ) をonにしてconpileをするが、iptablesのコマンドはできず、動作しない。
で、Sambaのページからiptables-1.2.1aをダウンロード、 compileしてみるが、-t natというtergetがないなどとのたまわれて、まだだめ。
再びkernelのconfigurationをよくみると、network optionsの下にIP:netfilter Configuration->が現れているのを発見。適当にmodulesとしてcompileすると、動作するようになった。
昔設定していたように、filteringなどの設定をすると以下ようになった。
#modprobe iptable_nat iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 11.22.33.44 echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t filter -A INPUT -j DROP -s 127.0.0.0/8 -d 0/0 -i eth0 iptables -t filter -A INPUT -j DROP -s 127.0.0.0/8 -d 0/0 -i eth1 iptables -t filter -A INPUT -j DROP -s 192.168.xxx.0/24 -d 0/0 -i eth0 iptables -t filter -A INPUT -j ACCEPT -s 192.168.xxx.0/24 -d 0/0 -i eth1 iptables -t filter -A INPUT -j DROP -s 0/0 -d 0/0 -i eth1
Kernel 2.2.15にしたばかりなのでパスしようかとも思ったけど、setuidにセキュリティホールがあるとなれば、upgreadしなければなるまい。 Changesを眺めると、modulesもかなり変更されていた。EExpressProもまた少し変わっているようだ。 さすがに、半月ほど前にupgreadしたばかりなので、今回はPatchの当て方を忘れることもなく、問題なくKernelを入れ換えることができた。
ついでに、bashの環境変数とログオンスクリプトを設定。 ログオンスクリプトで、
export PS1='\H:\w\$' export LS_OPTIONS='--color=auto -F -q' alias ls='/bin/ls $LS_OPTIONS' alias ll='/bin/ls $LS_OPTIONS -al' alias cls='/usr/bin/clear'
とした。\$は本当は#と>のほうがよいけど、設定があるか不明なので(&どうせbashはrootでしか使わないので)、そのまま。
Kernel 2.2.15にKernelをアップグレード。例によって、Changesを眺めると、modulesがかなり変更されていた。 特に、EExpressProは、昔からの問題が解決されたようなことが書いているのでUpgreadすることに(昔からの問題ってAppleTalkがそのままでは使えないことか?。ならあまり関係ないが)。 Patchの当て方を相変わらずわすれて毎回探してしまう以外は、特に問題なくKernelを入れ換えることができた。
PHPを、ローカルなサーバにインストールする。
が、インストールにはちょっと苦労した。インストールのドキュメントがネット上で読むのが大変なため、ソースを落としてから日本語ドキュメントをよむ。最初は、Apacheのリコンパイルが面倒なのでcgiバージョンで行ったが、巧くいかないため、Apacheもついでに1.3.9から1.3.12にバージョンアップし、モジュールバージョンとすることに。Apacheは slackware 標準のディレクトリ構成にするため、--prefix=/var/lib/apacheとしコンパイル。PHPの方は./setup後、多国籍版とするためオプションを少し変更して以下の通りとした。
./configure --prefix=/usr --enable-mbregex --enable-i18n --with-apache=/var/lib/apache --with-config-file-path=/usr/lib --with-exec-dir=/usr/php/bin
で、どちらもmake installまで無事に終了。apache1.9.12のhttpd.confとはかなり違っているので、httpd.conf-distを編集して準備完了。で、/var/lib/apache/bin/apachectl startすると起動するが、ps ax としてもプロセスが残らない。当然httpサーバも起動していない。しばらく原因がわからずhttpd.confを何度も直していたが、error_logをみたら、setgidがエラーとなってることが判明。httpd.confのGroupを変更したら無事起動するようになった。
NetCruiseのサーバがやっと復旧したようで。この間いろいろやったけど忘れてしまった。
取り敢えず、野口治療院にケーブルモデムが入ったので、ftpで入れるようにした。しかし、目茶苦茶遅い。 もっとトラフィックコントロールで制限しなければだめか?。
トラフィックコントロールで思い出したが、traffice control Mini-Howtoを参考にネット側(ケーブルモデム側)のトラフィックを制限することに。ケーブルモデムはアップストリームが1Mbps程度しかなく、さらにベストエフォート型で帯域を共有するため、100base-Tなどでおもいっきり出してもパケットの破棄のオーバーヘッドがでかくなってスループットは悪化するだけ。
トラフィックコントロールの設定は、全てのバケットを制限すれば十分なため、
tc qdisc add dev eth0 root tbf limit 10kb buffer 10kb/8 rate 64Kbps
とした。
実際どの程度でるかというと、某所からの噂では1%という話もあり、64kbpsも出れば御の字のようだ。 しかしパラメータの説明がないので、
tc qdisc
とした値とちと違う気がするのが気になるところ。気にしないが:-P。
perlでプログラムを書いていたら、どうもviが日本語対応していないのが気になり、 jelvis2-0.44.tar.gzをインストール。色が派手派手でちとあれだけど。 日本語入力は面倒くさいから英語版で十分と思っていたけど、2バイトキャラクタが1バイトづつ削除されるのはもっと嫌らしい。
で、lsの方の色がterminalから入るとボールド指定が効かないので、設定を変えようとしたらdircolorsがちゃんと動かない。lsのバージョンは4.0でdircolorsが3.16だったので、fileutils-4.0をとってきてこちらもインストール。 rpmで管理しようかと思っていたが、srpmを探すのが面倒くさく、結局、ソースのコンパイルとしてしまう。こっちのほうが楽だな。
どうもFTPがwebからつながらないと思っていたら、恥ずかしながら、rc.modulesでip_masq_ftpをチェックしてなかった。 普段は、サーバにlogonしてそこからftpをかけていたからわかるまで時間がかかった。 ipchainsにしてからチェックした覚えがないから、一年近く気がつかなかった。
ついでにMasq Applicationsを見に行ったら、ICQのモジュール(ip_masq_icq-0.55.tar.gz)も出ていたので取りにいったが、"missing separator"と出て、makeができなかった。
で、しらべたら、Makefile.archを作成するスクリプトが甘いようである。errorで止まるところでMakefile.archは作成されるので、それを手作業でなおしたらmakeできるようになった。 やったことは、最初のMakefile.archは := となる場所を = に書きかえ、ARCH = i386 とした。で、MakefileのMakefile.archの作成を#でコメントアウトし、includeをMakefile.arch1とでもする。 二回目の方も :=を = に、CFLAGS = $(CFLAGS)をCLAGS += に変更。これでとりあえず makeは通った。しかし、ICQはあまり使わないのでコンパイルはできたが動作しているかは保証の限りではない。
ftpsyncはどうしても途中で止まってしまい、プロセスが残るので他にいい方法は無いかと探していたらlftpを発見。これのmirrorオプションには、リモートとローカルの方向をかえるオプションがあるので、directoryのsyncにも使用できる。例によって、
./configre make make check make install
でインストール可能。prefixを使用すれば好きなディレクトリにインストールできるが、とりあえずdefaultの/usr/local/binとした。適当なファイルに、
open <SITE> -u <USER>,<PASSWD> mirror -Rnp <LocalDIR> <RemoteDIR> mirror -np <RemoteDIR> <LocalDIR> close exit
と書き、lftp -f <filename>とすれば、新規ファイルのみをアップデートしてくれる。pはpermissionをいじらない指定。しばらくこれを使ってみる。
kernelの2.2.14が出ていた。2.2.13でも特に問題はなかったけど、Changesを見たら結構かわっていたので、updateすることに。