FreeBSD 5.0-RELEASE
ついにFreeBSD 5.0-RELEASEが出ました。早速入れました。RC2より安定している感じですね。今のところ大きな不具合なく使えています。まだリリースノートをよく読んでいないので5.0の新機能は試していません。ちょこちょことね。
ついにFreeBSD 5.0-RELEASEが出ました。早速入れました。RC2より安定している感じですね。今のところ大きな不具合なく使えています。まだリリースノートをよく読んでいないので5.0の新機能は試していません。ちょこちょことね。
12M(eAccess)のADSLにするのに伴って、Aterm DR202Cが届きました。回線工事は21日からなのですが、このモデムは8Mもいけるはず、と思って設定を適当にいじって8M(ACCA)に接続しています。
このモデムはレンタル用の機能制限版のようで、スタティックルーティングなどが設定できません。現状の自宅のネットワークはADSLルータモデムの先にFreeBSDをルータにしてサブネットを作っているので、その中からアクセスをすると、返し先が分からなくて通信できなくなってしまいます。これは困った、ということで結局はFreeBSDでNATをさせて解決しました。ルータ2段でNATをするのでコストが上がりそうで前は避けていたのです。
ついでにDR202Cの機能の仮想DMZネットワークを設定してサーバだけの仮想サブネットに置き換えました。FreeBSDルータの外側のインタフェースに
ifconfig 192.168.100.1 netmask 255.255.255.255 alias
ともうひとつIPを設定して、外に公開するサーバをこのIPにバインドして、DR202Cで設定して出来上がり。IPFWも希望する動作をするように書き換えました。
mod_php4をバージョンアップしようとしたところ、コンパイルが通らない。nfds_tが/usr/include/poll.hと/usr/local/lib/pth/pth.hの両方で宣言されているようです。ただ単に、/usr/local/lib/pth/pth.hの
typedef nfds_t nfds_t;
をコメントアウトしただけでは出来たバイナリが動かなかったので、/usr/ports/devel/pth自体を入れ替えました。
5.0になったことでの障害だと思います。
FreeBSD-SA-03:02.openssl Topic:OpenSSL timing-based SSL/TLS attack
FreeBSD-SA-03:03.syncookies Topic:Brute force attack on SYN cookies
メインに使っているノートパソコンはFreeBSDとWindowsXPのdual Bootとなっています。FreeBSDでインストールしたMaster Boot RecordであるBootMgrからBootしているのですが、boot0が表示するメニューがXPのブートローダを??と表示するのが格好悪いので、どうにかならないかといじっていました。
/usr/src/sys/boot/i386/boot0/boot0.sをいじって、boot0cfgコマンドで新しいMBRをインストールすることは直感的に分かったのですが、問題はboot0.sのいじり方。s。アセンブラかぁ〜。無理。知らない。
適当にいじってコンパイルしてインストールして再起動したところやはり起動しませんでした。CD-ROMから0:ad(0,a)/boot/loaderとかして起動して正しいMBRを入れなおしたつもりが、なぜかF2キーを押してもビープ音がするだけ。やってもうたーと思い、今度はXPからのアプローチ。
XPのインストールCDを入れて回復コンソールからfixmbrコマンドして再起動すると、invalid system partition(みたいなメッセージ)がでて完璧にいってしまいました。
でもあきらめずに、FreeBSDのCDから起動して、LabelエディターのMキーでマウントポイントを指定、newfsがNになっていることを確認して、Wキーで新しいMBRを書き込んで再起動。そうしたところ、BootMgrは復活したもののXPは相変わらず同じメッセージで起動せず。
ここでXPのインストールCDの回復コンソールからfixboot c:をしたところすべてが回復。
助かったー。
現在、F-BELL.NETではnantoka.comのIPv6トンネル接続実験に参加させてもらってIPv6 Reachableになっています。このたび、Feel6Farmにも参加してIPv6空間をもう一つ貸してもらいました。こちらは/48のアドレス空間です。
まだいじっていませんがdtcpclientからの接続は成功した模様です。マルチホーミングに挑戦です。経路広告にはいろいろ注意すべき点がありそうです。
ADSLの接続方法を変更しました。今まではxDSL-ModemがPPPoAでつながってその下にFreeBSDのルータ箱をぶら下げていたのですが、このモデムをブリッジにしてしまって、FreeBSD自身がPPPoEでつなげるようにしました。
これによってFreeBSDでの融通がだいぶ利くようになりました。とともにIPv6 over TCP over PPPだったv6環境をdhis経由でつなげるようにしました。これはPPPoEのlinkup、downに追随して設定するようにしてあります。
ipfw、ip6fwの設定を忘れずに変更しました。これでdtcpとともにipv6のマルチホーミングに挑戦です。まだやっていませんが。
PPPoEになったので、MTU問題でつながらないサイトが出てきてしまいました。FreeBSDはこの先のMTUは1454と知ってるからmss調節してくれるけど、FreeBSDにぶら下がっているEthernet(MTU=1500)を使って繋がっているWindowsはmss=1460として出しているようです。困った。レジストリをいじらないといけないのでしょうか?
IPv6でMultiHomeになったのをきっかけに、bindの設定を見直しました。ADSLへの接続がFreeBSDからのPPPoEになったので、ppp linkup時に自動的にnsupdateで取得アドレスを反映できるようにしました。
こんなの一般のDynamicDNSサービスでできるのですが、現在は非固定IPv4サイトへIPv6での到達性を確保するために、IPv6でDNSのセカンダリをあるサイトにお願いしています。マスターになっているのはこのサーバを動かしているbind9です。このような状況から、IPv4アドレスが変わった時にはこのゾーンファイルのRRを書き換えないとインターネット世界へwww.f-bell.netのアドレスが変わったことを知らせることができません。
今回はこれを自動化したものです。そもそもIPv4アドレスが固定ならばこんなことは必要ないです。
要望があればメモにまとめます。するつもりですがプレッシャーがあった方がよいと思いますし・・・。
続きです。
nantoka.comとfeel6.jpの両方にIPv6のリンクを張っています。defaultはnantoka.comに向けています。feel6.jpにdefaultを向けると、feel6.jpより向こう側にping6などが通らないからです。原因究明中。
原因判明しました。続きは↓
再び挑戦。
qmail tcpserverにもパッチをあてる必要があります。パッチを当ててもそのままコンパイルが通りません。qmailの方はconf-ccに-DINET6を追加してコンパイルできるようにすることと、tcpserverの方はEPROTOというのが宣言されていないぞ、というエラーがでます。/usr/include/errorno.hにはEPROTOというのはありません。EPROTOはSysVではあるそうですが、Posixでは ECONNABORTEDでないとだめなようなので、ソースのEPROTO部分をすべてECONNABORTEDに変更します。これでコンパイルは通りました。LinuxではEPROTOが残っているのでしょうか?
tcpserverを実行します。ホストオプション部を0にするとすべてのIPアドレスでListenするはずが、IPv6でしかListenしてくれませんでした。IPv4用のプロセスをもう一つListenしてほしいIPを指定してあげると希望の動作になったように見えます。
・・・しかしながらIPv4 mapped IPv6アドレスをみて制御したりするので、動作が気にくわなかったので元に戻しました。これ以上内部をいじくる気力は今日はありませんでした。
未だにメイルはIPv4でしか受け付けません。すみません。
ようやくMTAをIPv6に対応しました。ただし、5年ぐらい使っていたqmailを捨て、Postfixに変更しました。とても設定ファイルがわかりやすいです。
ほぼ標準の設定ですがRBS.JPのThird Party Relay Checkはすべてはじいています。qmailだとこのチェックではRCPTで"@"のないものはリレーを許可するようにみえますが、実際にはいったん受け取ってから捨てる仕様になっています。
>> otsuneさんからコメントをいただいて記述を変えました。
>> この記述に影響されてqmailを使わない人がでてもいけないですからね。
IPv6の逆引きを委譲してもらいました。
5.1-RELEASEをコンパイル。
ここ最近ずーっと続いていた症状なのですが、ノートパソコンPCG-R505R/Kに入れているFreeBSD上でUSBマウスが動きません。考えられることはいろいろやってみたのですが、たとえば、cat /dev/ums0で直接何か話しているのか確認してみても(もちろんdmesgでは認識しています)、うんともすんともいいません。
で、おかしいのがcvsupなど高負荷をかけると、ぎこちなく走査を始めるのです。この状況からすると、割り込みを誰かが横取りしていて、高負荷化でums0の割り込みを取りこぼして動き出すような印象がします。
ハードウェアの故障も疑っているのですが、同じマシンでXPでは無事に動きますし・・・。仕方がないのでUSB関連をすべてdisabledにして、PS/2マウスとして利用しています。
困った。昔はちゃんと動いていたような気がするのだけどなあ。今はusbdevs -vも時間かかるし。やっぱり故障かなあ。
うちのクライアントPC二台はいずれもFreeBSDとWindowsXPのマルチブートになっているのですが、MBRにインストールされているブートローダは今までFreeBSD標準のboot0でした。昔Booteasyだった頃はいろいろできたのですが、boot0に変更になってからいまいちです。NTFSも??とでますし。
そこでMBM(Multiple Boot Manager)に変えました。これはいろいろいじれますし、拡張メニューをインストールするとマウスも有効になるものです。和製です。いいですね。
インストールには起動可能なFDが必要なのですが、ノートパソコンにはCD-ROMしかないのでFDイメージを作って、それを起動可能なCD-Rに焼いてインストールしました。
CD-ROMドライブしかない環境でFDからブートしなさい、という状況はよくあるので、ちょっとこれについては以下にまとめてみましょう。
僕の場合、メイルアドレスをいろいろなところに書いている割には、そんなにspamメイルはこないのですがそれでも日に数通は届きます。procmailのレシピでそれなりにはじいていたのですが、日本語対応したベイジアンフィルタを発見したので実装しました。
bsfilter / bayesian spam filter / ベイジアン スパム フィルタ
ベイジアンフィルタとはいわゆるベイズ理論に基づいたもので、このbsfilterはprocmailから呼び出すことが想定されたプログラムです。Rubyでかかれています。
確率・統計は一番嫌いな数学なんですよね・・・。でも通信やっている人間にはどこまでもついてくる・・・。
5.0Releaseからrpc.lockdのbrokenがとれているので、ipv6でnfslockingをかけているのですが、どうもうまくいっていない模様です。
nfsserverとclientでrpc.lockdとrpc.statdをenableにしてnfsマウントすると、マウントしたfsでviなどを実行すると戻ってこなくなります。ログにはrpc.lockd: unable to get name string for callerとでています。ソースを見るとgetnameinfoで転んでいるみたいなんですが、DNSに問題は無いようです。
nfslockingがかからないとnfsマウントしたhomeディレクトリでgnomeが立ち上がらないのです。困った。
NFSのlockができないぞ、という話の続き。
仕方がなく久々にKDE3を入れてごにょごにょやっていたのですが、こっちもlockingしないといけないアプリケーションがあるみたいで、もう少し探ってみました。
rpc.lockd: unable to get name string for caller
ということなので名前解決なんだろうなぁ、ということでとりあえずIPv6でNFS exportsしていたのをIPv4にすると、あら不思議、きれいにrpc.lockdがなにも文句を言わないようになりました。
とりあえずこのままで使います。きちんと内部でIPv6の逆引きもできるようにDNSの設定をしているはずなのになぁ。
Matlab互換のHigh-level interactive language for numerical computationsであるOctaveを最近ごにょごにょと自宅で利用しています。そんなに難しいレポートではないのですが、英語のドキュメントが多いですね。
グラフ表示部はgnuplotを利用しているので、tgif形式やeps形式に出力でき、なかなか便利です。これとMupadをインストールすると、MatlabもMathematicaも不要ですね。学術利用は無料ですし。
HDにハードエラーがでていたのと、長年cvsup->make worldでバージョンアップしてきたマシンなのでサーバマシンをクリーンインストールしました。また、お手製のスクリプトで種々の動作をいじっていたのですが、長年使っていると気をつけていてもいろいろな場所に散らばってしまっています。これも整理しました。
必要最低限のPORTSのみ入れてあります。
FirewallをIPFWからIPFilterに変更しました。どちらもFreeBSDに標準で組み込まれていますが、こちらはより細かい制御が可能です。
久しぶりに IPFilter の設定例を FreeBSD に追加しました。
5-Release になってから rc ユーティリティが rc.subr を利用した NetBSD 由来の方法に変わりました。これは daemon 関係の起動/終了/再起動/ステータス確認などの制御を /etc/rc.d/ 以下におき、/etc/rc.subr を参照することにより様々な関数を提供することによってに行うものです。起動スクリプト側で関数を追加することもできます。これと /etc/rc.conf の設定と組み合わせるとシステム由来の daemon の制御は柔軟に行うことができます。例えば、rc.confにipfilter_enable="YES"と書いて、# /etc/rc.d/ipfilter start とすることで IPFilter をスタートさせることができます(もちろんIPFilterの場合、その他にカーネルの再構築も必要)。
rc.d というディレクトリによって daemon の起動制御をおこなうことは古くから行われてきました。システム由来の daemon の制御を rc.subr を用いることはFreeBSD では 5-Release からです。そして、システム由来のものだけでなく、 ports 由来の daemon も rc.subr で行う方向のようです。今日、あるportsをportsupgrade でバージョンをあげたところ、 sysutil/rc_subr という ports が入れられ、 /usr/local/etc/rc.subr が導入されました。そして、その ports の起動スクリプト /usr/local/etc/rc.d/hoge.sh から /usr/local/etc/rc.subr を読み込んでいます。これで rc.subr が提供する関数を利用することができます。そのportsを自動起動する場合は/etc/rc.confなどにhoge_enable=yesを追加する必要があります。柔軟。
ちなみに私はシステム由来のdaemonについては/etc/rc.confに、portsからのdaemonについては/etc/rc.conf.localに分けて書いています。
とうとうサーバを完全リプレスしました。いよいよHDの異音もにぎやかになってきたので手遅れにならないうちに、全部取っ替えました。k6-2 400MのCPUから、実家で余っていたCeleron 1.1Gにしました。これももう古いSocket370というやつですね。
Celeronの新しいマシンはサーバ兼ルータです。めでたく退役したk6-2は就職して研修が終わって新居が決まるまでしばらく休息頂きます。その後はルータ専用機かな。
apacheのログ解析ソフトであるAWStatsをバージョンアップさせました。5.0->5.9 いままで独自に日本語拡張された5.0を使っていたのですが、5.9の本体には手を入れずに前段でログの加工をして食わせるようにしました。また、以前はstaticに作成していたのですが、過去の月の解析も読めるように、CGI経由での読み出しにしました。ただし、ログの解析自体は日に一回のままにしています。CGIからも解析をupdateすることは可能ですが、あまり意味はないと思っています。
日本語表示はもともとできるのですが、日本語訳が変だったりするところを訂正、日本語はUTFで処理しているので、ログの検索キーをデコードするのにawstatsに入れる前に、
s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
Jcode->new($_)->utf8;
などの処理をしてから食わせることにしました。
これらの処理(ログの日本語処理、awstats、v6到着率のグラフ作成など)を組み合わせて日に一回apacheのログをrotationさせています。月一回で日ごとに分割されたログをまとめてgzipさせることもしています。
今更ながら Java の勉強を始めました。C++ はやっていないのでオブジェクト指向なんて perl で似非オブジェクト指向を習得して以来です。FreeBSD でもJDKがNativeに動くようになりましたので安心です。初めての導入は面倒ですけどね。
まず、linuxエミュレートさせて、linprocをマウントして、linux-sun-jdk をインストールする。このlinux用のJDKを使ってFreeBSD NativeのJDKを作成する。Nativeコードを作る時だけに linux-sun-jdk を利用するので、作成した後は linux-sun-jdk を動作させるのに用意した環境はすべて削除してもかまわない。
Multimedia を邦訳するのに、久しぶりにデスクトップの FreeBSD をサウンドを再生できるようにしました。普段は PC では音楽聴かないので。
以前は(かなり前) Sound Blaster Live! をFreeBSD で利用するのは一癖あったと思うのですが、今は簡単なようです。
カーネルに以下の設定を追加してリコンパイル:
device pcm
というか今はほとんどこれでOKなはずですね。
カーネルにスタティックにコンパイルせず、カーネルモジュールで実現するには、
/boot/loader.conf に以下の設定を追加します(snd_pcm_loadの行はなくても自動的に読み込んでくれます)。
snd_pcm_load="YES" # Digital sound subsystem
snd_emu10k1_load="YES" # Creative Sound Blaster Live
はじめて send-pr したところ、早速 commit されました。
とはいえ、プログラムのバグではなく、ドキュメントの間違いなのですが。
send-pr とは、FreeBSD 開発者のコミュニティに対して 問題点や提案(PR; Problem Report)を送ることを指します。もちろん英語です。
この数日、ワームのくっついたメールが急に数十通届くようになりました。クライアントの Windows でも対処していますが、メイルサーバ上でも検知する仕組みを導入しました。
導入したのは H+BENV の AntiVir MailGate FreeBSD。
postfix から content_filter を利用して検知しゴミ箱行きです。
年明けの 5.2-Release (年内の予定でしたが延期されました) に向けて RC (Release Candidate) がでているので make world しました。/bin, /sbin が static link でなくなりました (/rescue 以下にstatic link が残されています)。
すべて終えて再起動すると /usr/local/etc/rc.d/ から起動するデーモン類がなぜか二回ずつ start されてしまいます。rc.d の不具合に違いないとおもい
$ ls /etc/rc.d/local*
を実行すると localdaemons localpkg という二つのファイルが見つかったので見比べると中身は同じ (変数名など微妙に違う)。したがって、二回 /usr/local/etc/rc.d/ 内の各.shファイルに start をつけて実行されていたということでした。
Current ブランチでは、20030829 に localdaemons の方が削除されたようで (see UPDATING)、UPDATING に書いてあるとおりの処置をして修正しました。
5.2 RC2 がでています。まもなく 5.2 Release がでます。
Roadmap for FreeBSD 5.3 が公開されました。
5.2-Release がアナウンスされました。
サーバを 5.2-Release にアップデートしました。
ノートパソコンも 5.2-Release にしました。以前ここにも書きましたが、USB 関連がうまく動作しなくて、無効にしていたのがうまく動くようになりました。前は ACPI を有効にしているといろいろ悪さをするので無効にしていたのですが、ACPI を有効にしてみたところちゃんと USB 関連も動くようになりました。
追記。前は動かなかったcardbusも動くようになりましたー。hw.pci.allow_unsupported_io_range: 1は必要です。
これでこのノートパソコンのリムーバブルデバイス(USB,CardBUS,IEEE1394)のホスト側が全てきちんと動作するようになりました。めでたい。しかも今のところ attach/detach も問題がありません。
これで卒論もはかどる。家で書くなと怒られそう。
今日から実家(固定IPCATV回線)で稼動しています。
サーバは実家、寮のアクセスラインは別プロバイダということで寮からメールを送るときに使うSMTPサーバに困ってしまいましたので、このサーバのSMTPをSMTP-AUTHに対応させてこれを使うことにしました。
Cyrus-Sasl2を使いCRAM-MD5で認証させています。
詳しいメモは後ほど。
2004.5.5 smtp-auth にメモを記述
http://www.rootkit.nl/
This tool scans whether your pc is infected by rootkits or not.
linux_base-7
linux_devtools-7
が必要。linux_base-8ではうまくOUIが動かず。
/compat/linux/etc/mtab の作成
sed awk chownのシンボリック作成が必要
参考文献を参照のこと.
3枚目でlibclntshが見つからないというエラーがでたら、そのダイアログを出したまま別のターミナルから、
cd $ORACLE_HOME/bin
cp -p genclntsh genclntsh.backup
vi genclntsh
- LD_SELF_CONTAINED="-z defs"
+ #LD_SELF_CONTAINED="-z defs"
+ LD_SELF_CONTAINED=" "
./genclntsh
---しばらく放置すると・・・---
Created ${ORACLE_HOME}/lib/libclntst9.a
と表示される。その後OUIでretryすると続行できる。
自宅サーバをいじっている途中で、誤って実家サーバをrebootしてしまいました。uptime更新中だったのに。150日ぐらいかな?
仕事ではHP-UXを使っているけど、POSTとかはやっぱりPC UNIXの比じゃないですね。積んでいるハードも業務用は重厚です。
ISP(とフレッツスクウェア)への接続をPPPからmpdに変更。ユーザランドPPPよりも多少早くなった感じ。
ハードディスク換装のついでに丸裸で売っていた3COMのNICを試しに購入(3500円)して、WAN側のrl0をこのxl0に変更したところスループットが倍以上に。これは内側のvr0も換える価値がありそう。やはりrl0,vr0はかなり性能がでない模様。
xlの隣にfxpのNICも売っていたので今度はこれを試そうかと。
先日Userland PPPからmpdに変更した際にも少し性能が改善しています。
参考の性能比較
============rl0の場合=====================================
------ BNRスピードテスト (ダウンロード速度) ------
測定サイト: http://www.musen-lan.com/speed/ Ver3.4001
測定日時: 2005/04/02 16:25:51
回線/ISP/地域:
--------------------------------------------------
1.NTTPC(WebARENA)1: 13797.653kbps(13.797Mbps) 1724.62kB/sec
2.NTTPC(WebARENA)2: 7327.068kbps(7.327Mbps) 915.22kB/sec
推定転送速度: 13797.653kbps(13.797Mbps) 1724.62kB/sec
============xl0の場合=====================================
------ BNRスピードテスト (ダウンロード速度) ------
測定サイト: http://www.musen-lan.com/speed/ Ver3.4001
測定日時: 2005/07/10 15:36:58
回線/ISP/地域:
--------------------------------------------------
1.NTTPC(WebARENA)1: 28298.605kbps(28.298Mbps) 3536.92kB/sec
2.NTTPC(WebARENA)2: 24279.858kbps(24.279Mbps) 3034.07kB/sec
推定転送速度: 28298.605kbps(28.298Mbps) 3536.92kB/sec
(NTTの)PPPoEの場合、MTUは1454となり、MSSは1414となります。LAN側はMTU1500でMSS1460で必ずフラグメントしてしまうので見えないWebサイトができてしまいます。PPPの場合この辺は自動的に調整してくれたのですが、mpdではやってくれないので、ipnatを使用している場合は、
map ng0 192.168.0.0/24 -> 0/32 portmap tcp/udp auto mssclamp 1414
map ng0 192.168.0.0/24 -> 0/32 mssclamp 1414
のような設定を加えます。ある程度新しいipnatじゃないとできません。
なんか昔似たような話題を書いたなぁと思ったらやはり。
Path MTU discovery
毎日数百通のspamメールが来るのだが、いつもbsfilterで目に触れることなく廃棄されてるけど、そもそも受け取らないようにできないかと。
スパム対策技術にあったS25Rという選択的SMTP拒絶方式を導入。ログを眺めてるけどことごとくはじいている。
有用かも。
ブログ「Bell's Memorandum」のカテゴリ「FreeBSD」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。
前のカテゴリはBIKEです。
次のカテゴリはFreeBSD doc-jpです。