sconadm で登録ができない と その追調査 の件なんだけど、今回新規インストールした Solaris10 1/06 では解決されているようで。
※以前は 3/05 で悪戦苦闘してました。
# smpatch update システムに必要なパッチを評価しています... Failure: Cannot connect to retrieve detectors: This system is currently unregist ered and is unable to retrieve patches from the Sun Update Connection. Please re gister your system using the Update Manager. # cp /usr/lib/breg/data/RegistrationProfile.properties /tmp/ # vim /tmp/RegistrationProfile.properties ... userName とか password とか。 # /usr/sbin/sconadm register -a -r /tmp/RegistrationProfile.properties sconadm is running Authenticating user ... Collecting asset ... Registering asset ... sconadm has been completed successfully/usr/lib/breg/basicreg.jar の中身は、
# unzip -l /usr/lib/breg/basicreg.jar | grep BasicRegCLI 21985 10-18-05 19:10 com/sun/cns/basicreg/BasicRegCLI.classもう BasicRegCLI.class がしっかり含まれてますな。
# smpatch update システムに必要なパッチを評価しています... 取得されたパッチリスト... パッチをダウンロード中 /var/sadm/spool... com.sun.patchpro.util.Percentage@5e7020 121308-03 has been validated. ...
と、何事もなかったかのように更新してみる。
細かいことは聞かない方向で。
lofi(7D) 、 Loopback file driver というものを使うらしい。 FreeBSD では md(4) 、 memory disk ですね。以下、 FreeBSD で mount する場合のコマンドも併記してみようかと。
# unzip sol-10-u1-companion-ga-iso.zip Archive: sol-10-u1-companion-ga-iso.zip inflating: sol-10-u1-companion-ga.iso bad CRC 7cda0d60 (should be ffce1247) ↑ 何か言われてるけど気にしない方向で。 # lofiadm -a /tmp/sol-10-u1-companion-ga.iso /dev/lofi/1 ↑ -a で対象ファイルをブロックデバイスとして登録。絶対パスで指定! 以後、コマンド実行後に表示されたデバイス名を使います。 FreeBSD : # mdconfig -a -t vnode -f /tmp/sol-10-u1-companion-ga.iso md0 # lofiadm Block Device File /dev/lofi/1 /export/home/mass/sol-10-u1-companion-ga.iso ↑ ブロックデバイスの割り当てを確認。 FreeBSD : # mdconfig -l md0 # mdconfig -l -u md0 md0 vnode 900M /tmp/sol-10-u1-companion-ga.iso # mount -F hsfs -o ro /dev/lofi/1 /mnt ↑ ISO イメージなので hsfs かつ念のため ReadOnly で mount 。 FreeBSD : # mount -t cd9660 -o ro /dev/md0 /mnt # cd /mnt/Solaris_sparc/ # ./installer ... # cd # umount /mnt # lofiadm -d /dev/lofi/1 ↑ -d でブロックデバイスを削除。 FreeBSD : # mdconfig -d -u 0 ← -u 0 は -u md0 でも可。
<ぐち>
Solaris10 で sconadm を使った Sun Update Connection 登録ができない 絡みを調査してて 119107-06 を remove したら、 smpatch analyze で「必要なパッチはありません。」モードに突入してしまった。
日を置いた方がいいか? ぐんにょり。(2006/1/1 当時)
って今日やったら通りましたよ。ぐんにょり。
あれ? smpatch update が全然進まないですよ? patch 配布サーバ死んでる? もりもりぐんにょり。
</ぐち>
# smpatch remove -i 119107-06は 120335-02 と 120776-03 が依存しているため、
# smpatch remove -i 120335-02でした。
# smpatch remove -i 120776-03
# smpatch remove -i 119107-06
その時点で /usr/lib/breg/basicreg.jar は残ってて、その中に BasicRegCLI.class があるんですけど...
タイミング的には通りすがりさんと同じですね...
smpatch remove 前は確かに BasicRegCLI.class は無かったですよ。
なんつーか、
Sun Update Connection, System Edition 1.0.1 から取得した updateConnection-sparc.zip 内にある 119107-06 パッチの basicreg.jar 内に BasicRegCLI.class が無い。
が、さらに同 zip 内にある 120776-03 には BasicRegCLI.class が存在する。
同 zip ファイルを展開したディレクトリ直下の installUpdateConnection スクリプトを実行して Update Connection Client をインストールするわけだが、同スクリプトの適用順序をみても、 119107-06 → 120776-03 と適用される。その通りに適用されれば、 /usr/lib/breg/basicreg.jar は 120776-03 のものが配置され、問題なく BasicRegCLI.class が含まれるはず。
で、試しに Solaris10 x86 on qemu on FreeBSD な環境で updateConnection-i386.zip を入手し適用してみたのだが、当時のような状況 は再現しない。
インストール後の /usr/lib/breg/basicreg.jar 内には BasicRegCLI.class がしっかり含まれているのだ。
※ installUpdateConnection スクリプトは sparc 版とまったく同様。 diff で確認。
※ x86 版は sparc 版とパッチ ID が違う。 x86 版のパッチ ID は 119107-06 → 119108-06 、 120776-03 → 120777-03 となる。
なんでにゃ?
あーもぅだめにゃ。調査能力ないにゃ。通りすがりさんごめんにゃ。
もう疲れたにゃ...
死にたいにゃ...
だれか助けてにゃ...
そういえば GAME BOY micro と PLAY-YAN micro を買ったんだった。
物欲の記録として残しておこう。
※無駄に画像が多いので注意
って買ったの 10月か...
購入品目:(以下、 Amazon アソシエイトリンク)
GAME BOY micro 用のポーチ、 ゲームボーイミクロ専用 メッシュポーチミクロ ブラック です。
一部改造してます。
まずは見ての通り、前面部のロゴマークをとっぱらってます。
もう一つは...
ゲーム機収納時のカートリッジ側の面を写真のように開きっ放しにできるよう、ちくちくとお裁縫してみました。
このポーチ、そのままでも PLAY-YAN micro くらいのちょっと出っ張ったカートリッジでも収納はできるのですが...
このように開放状にしておくことで、イヤホンを挿しっ放しにしていても収納できるようになりました。
これ、ぢつは割りと便利で、イヤホン抜き挿しの手間、抜き挿しによる端子の劣化を防ぐ目的もありますが、
こう、イヤホンをぐるぐる巻きにして蓋をマジックテープ止めしてしまえば、イヤホンケーブルも収納できてしまうという。
MP3 Player として使うときはケーブルの余りを巻き付ければ良いし。
奥さん、ちょっとお得ですよっ!
扱う動画の音声部が MP3 だったりする場合は audio/lame も事前にインストールしておきましょう。
なお、 PLAY-YAN micro でステレオ音声で動画を観る場合は AAC オーディオとなります。 audio/faac も事前にインストールしておきましょう。
# cd /usr/ports/audio/lameほかは... なんかあったっけなぁ 。
# make install clean
# cd /usr/ports/audio/faac
# make install clean
# cd /usr/ports/multimedia/ffmpeg
# make install clean
ってだけなのもあれなので、自分用に作った変換スクリプトを置いときます。
[play-yan.sh.txt]
そこそこ耐性はあるはず(何
変換した動画は SD カードに入れて。
1GB の SD カード 買ってラベルまで作っちゃいました!
ラベル面はセロテープコーティング(ダサ
一期と二期でフォントも違うんだね。
あぁっ、いいなぁ、もぅっ!
ちなみにプライバシーフィルタと光線の加減で暗く青っぽくなってますが、実際はもっと色合いよく観れます。
ホワイトバランスしくりました。
責任は撮影技量のない私にあります。
そーか、最終話のオープニングは
闇の書 → 杖
S2U → デュランダル
になってたのか。
ちびリインフォース かわいすぎ。
ところで俺、こんな画質でこんなに画像ファイルアップする必要あったのか?
ほんとはもっと綺麗なんですよっ!
しっかし、 公式ページ の Character のページ細かいなぁ。
はやて(通常) と はやて(覚醒) で切り替えると、下部フェイスウインドウのはやての顔画像まで変わってるよ。
ほかもこまめに更新されてるし。すげぇな。
えぇ、もぅ最高ですよ。ムービー一覧情報表示時のロードがちょっと長いかな? とか細かい気になるところはあれど、もぅねぇ、どこでもなのはが観られるってのが、なに、もぅすっげぇうれしぃっすよ。なみだちょちょぎれ死。
iPod ムービー対応版もあるけど iPod mini 持ってるから 2代目になっちゃうし、なんつーか新鮮さが、ねぇ。
GAME BOY micro と PLAY-YAN micro の組合わせでなにがうれしいって、
あとは GAME BOY micro でのムービーは 3時間が限度らしいので、 GAME BOY micro 用の外部バッテリがあるとうれしいかな。
ちぅわけで、これおすすめっ!
...勢いで 1GB の SD カード 5枚も買っちゃったんだけど、どうしようかな...
# smpatch update システムに必要なパッチを評価しています... Failure: Cannot connect to retrieve Database/current.zip: This system is current ly unregistered and is unable to retrieve patches from the Sun Update Connection . Please register your system using the Update Manager.意訳:えーかげん Update Manager 使って Update Connection に登録しなよおまいさん。
# unzip updateConnection-sparc.zip # cd updateConnection # ./installUpdateConnection
# cp /usr/lib/breg/data/RegistrationProfile.properties /tmp # vim /tmp/RegistrationProfile.properties ---- userName=<Sun Online Account に登録済のユーザー名> password=<そのパスワード> ----ファイル名はなんでもよいと思うです。
# /usr/sbin/sconadm register -a -r /tmp/RegistrationProfile.properties Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/cns/basicreg/ BasicRegCLIあみゃあぁぁっ! なんにゃあ! これなんにゃのにゃあ!
# file /usr/sbin/sconadm /usr/sbin/sconadm: 実行可能 シェル スクリプトsconadm 自体はただの sh スクリプトで、その最後に
exec java -classpath ${MAIN_JAR} com.sun.cns.basicreg.BasicRegCLI $SUBCOMMAND ${
ARGUMENTS}
な感じで java を起動しているです。# cd /tmp # cp /usr/lib/breg/basicreg.jar . # unzip basicreg.jar # cd basicreg/com/sun/cns/basicreg # pwd /tmp/basicreg/com/sun/cns/basicreg # ls BasicReg$1.class TestFrame$4.class BasicReg$LoadTask.class TestFrame$5.class BasicReg.class TestFrame$6.class BasicRegFrame$1.class TestFrame$LanguageListener.class BasicRegFrame.class TestFrame.class Collector.class adapter/ TestFrame$1.class advertisement/ TestFrame$2.class qa/ TestFrame$3.class util/... えーっと ...
# setenv DISPLAY <奴のホスト名か IP アドレス>:0 # updatemanager Xlib: connection to "奴:0.0" refused by server Xlib: No protocol specified Can't connect to X11 window server using '奴:0' as the value of the DISPLAY vari able.うわ、やっべ、穴あけわすれてた。
ipfw add pass tcp from <X Client の IP アドレス> any to <X Server(自分)の IP アドレス> 6000 setup次に X Server のアクセス制御設定を追加するですよ。
> startx -listen_tcp ... X が起動したら何らかの Terminal を起動して、 > xhost + <X Client のホスト名か IP アドレス> <指定した X Client> being added to access control list
# setenv DISPLAY <X Server のホスト名か IP アドレス>:0 # updatemanagerすると...
# smpatch update実行ですよ。
システムに必要なパッチを評価しています...
取得されたパッチリスト...
パッチをダウンロード中 /var/sadm/spool...
com.sun.patchpro.util.Percentage@1954f89
121308-01 has been validated.
com.sun.patchpro.util.Percentage@1d5b89c
119254-10 has been validated.
... 途中省略 ...
NOTICE: Patch 119689-06 cannot be installed until the next system shutdown.
NOTICE: Patch 119546-04 cannot be installed until the next system shutdown.
119117-09 適用されました。
121095-01 適用されました。
119115-13 適用されました。
119059-09 適用されました。
/var/sadm/spool/patchpro_dnld_2005.12.13@23:39:43:JST.txt 以下へ移動しました /va
r/sadm/spool/patchproSequester/patchpro_dnld_2005.12.13@23:39:43:JST.txt
インストールポリシーによって許可されていない
パッチの ID がファイルに書き込まれました
/var/sadm/spool/disallowed_patch_list
One or more updates that you installed requires a system shutdown to activate it
. To initiate the system shutdown, you must use one of the following commands:
o Power down the system - init 0 or shutdown -i 0
o Drop to the firmware prompt - init 5 or shutdown -i 5
o Restart the system - init 6 or shutdown -i 6
無事、アップデートできたです。# shutdown -g0 -y -i6shutdown 実行直後に以下のメッセージが出力されるですよ。
Installing update 118822-23 Succeeded Installing update 119689-06 Succeeded Installing update 119546-04 Succeededインストールできなかったアップデートがインストールされているのですよ。
# smpatch analyzeして、必要なアップデートが出力されなければ万々歳、なのですよ。
4.11-STABLE な自宅のサーバ様を、 400GB の HDD に移し替えるついでに 6.0-RELEASE に移行したですよ。
※当作業は 12/3 〜 4 にかけて行いました。
移行の流れは、
Express Begin a quick installation (for experts)を選択してがりがりいくですよ。
Disk: ad0 Partition name: ad0s1 Free: 0 blocks (0MB) Part Mount Size Newfs Part Mount Size Newfs ---- ----- ---- ----- ---- ----- ---- ----- ad0s1a / 512MB UFS2 Y ad0s1b swap 1024MB SWAP ad0s1d /var 1024MB UFS2+S Y ad0s1e /tmp 512MB UFS2+S Y ad0s1f /usr 20480MB UFS2+S Y ad0s1g /share 349GB UFS2+S Yこんな感じに。
Root Password Set the system manager's password User Management Add user and group information Time Zone Set which time zone you're in Networking Configure additional network servicesこれらだけ設定ですよ。
# cd /etc/ssh/ # vi sshd_config ---- PermitRootLogin yes PasswordAuthentication yes ----リモートバックアップを簡単にするため、リモートからの root ユーザーログインと Unix パスワード認証を許可。もろちん最後には戻しますが。
# /etc/rc.d/sshd restart
# tar -C / -cpf - . | ssh root@<仮サーバ> tar -C <転送先DIR> -xpf -あれこれ考えるのがだるかったから、全部転送してみたよ!
# cd /usr/share/syscons/keymaps/
# cp us.iso.kbd us.isox.kbd
# chmod +w us.isox.kbd
# vi us.isox.kbd
# chmod -w us.isox.kbd
# diff -u us.iso.kbd us.isox.kbd
--- us.iso.kbd Thu Nov 3 17:11:13 2005
+++ us.isox.kbd Sun Dec 4 12:34:05 2005
@@ -32,7 +32,7 @@
026 '[' '{' esc esc '[' '{' esc esc O
027 ']' '}' gs gs ']' '}' gs gs O
028 cr cr nl nl cr cr nl nl O
- 029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O
+ 029 clock clock clock clock clock clock clock clock O
030 'a' 'A' soh soh 'a' 'A' soh soh C
031 's' 'S' dc3 dc3 's' 'S' dc3 dc3 C
032 'd' 'D' eot eot 'd' 'D' eot eot C
@@ -61,7 +61,7 @@
055 '*' '*' '*' '*' '*' '*' '*' '*' O
056 lalt lalt lalt lalt lalt lalt lalt lalt O
057 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O
- 058 clock clock clock clock clock clock clock clock O
+ 058 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O
059 fkey01 fkey13 fkey25 fkey37 scr01 scr11 scr01 scr11 O
060 fkey02 fkey14 fkey26 fkey38 scr02 scr12 scr02 scr12 O
061 fkey03 fkey15 fkey27 fkey39 scr03 scr13 scr03 scr13 O
/etc/rc.conf に以下のように追記ですよ。keymap="us.isox"
# cp -Rp /etc /etc.origバックアップしとくですよ(^^;
# diff -r <バックアップDIR>/etc /etc | lessの結果を見ながら、「あーこんなこともしてたねー」と昔を懐かしみつつ更新ですよ。
/etc aliases → 編集後、 newaliases 実行 crontab → 再起動前に編集すべし exports ftpusers group hosts hosts.allow hosts.lpd inetd.conf ipsec.conf ← racoon で遊んでたなごり make.conf /mail local-host-names /namedb sh make-localhost ← 実行 named.conf /master ※各ゾーンファイル更新。ローカルな DNS ですよ。 natd.conf newsyslog.conf ntp.conf passwd & master.passwd ← vipw 使用 periodic.conf /ppp ppp.conf ← PPPoE 関連 printcap rc.conf rc.firewall.local ← また見直しが入ってかなり更新 resolv.conf services /ssh sshd_config /supfile/* syslog.conf更新対象はこんだけですよ。
# mv <バックアップDIR>/usr/local /usr
/var/db/pkg/ /var/db/ports/ /var/db/samba/ /var/log/ ← 間違えて全部上書きしちゃった♥ /var/spool/samba/
# cd /sys/i386/conf/ # cp GENERIC HOGEHOGE # vi HOGEHOGE ↑ SMP 以外にも NETGRAPH とか IPFIREWALL とか。 # cd /usr/src/ # make buildkernel KERNCONF=hogehoge # make installkernel KERNCONF=hogehoge
# indexmaker --width 400 --height 108 /usr/local/etc/mrtg/<hogehoge>.cfg > <DocumentRoot>/mrtg/<hogehoge>.html
option domain-name-servers <hogehoge>あたりを修正ですよ。
restrict xxx.xxx.xxx.0 mask 255.255.255.0 nomodify notrust notrapのような記述をしていた場合、なんでか同サブネット内のクライアントから時刻同期ができなくなったのですよ。
restrict xxx.xxx.xxx.0 mask 255.255.255.0のように nomodify notrust notrap を削除し、 /etc/rc.d/ntpd restart することで他のクライアントからの時刻同期が可能になったですよ。
autoboot_delay="3"ブートメニューのタイムアウト値はいつもこれですよ。
# find / -lsを印刷してしらみ潰しにチェックしてから手順書を起こすのでしょうか。
あたらし物好きなので上げてみました。
8.1.0 ビルドまでの手順は Solaris10 に PostgreSQL 8.0.3 をインストールするメモ(そいえば 8.0.4 に上げてたなぁ)の通りで。
gcc -shared がらみで src/Makefile.shlib を編集するのも同様に。
gmake でビルド完了までやっておきましょう。
では、アップグレード前に以下の作業を。
ついでに 前回 にはない設定を入れてみたりしてるけど気にしなーい。
# /etc/init.d/snort stop # su - postgres > pwd /usr/local/pgsql > pg_dumpall > bkup_pg804.db > exit # /etc/init.d/postgresql stop Stopping PostgreSQL: ok # cd /usr/local/ # mv pgsql pgsql.804現状は Snort でしか使ってないので、まずは Snort デーモンを止め。
# cd ~/src/postgresql-8.1.0/ # gmake installで、いきなり 8.1.0 インストールしちゃいましゅた。
# cd /usr/local/pgsql # cp -p ../pgsql.804/.cshrc . # chown -R postgres:postgres /usr/local/pgsql # su - postgres > initdb -D /usr/local/pgsql/data -E EUC_JP前バージョンで使用していた postgres ユーザーの .cshrc を戻して /usr/local/pgsql/ 以下の owner/group を変更。
> cd data > vi postgresql.conf ---- listen_addresses = '<my hostname>' stats_start_collector = on stats_row_level = on autovacuum = on ---- > vi pg_hba.conf ---- # IPv4 remote connections for snort: host snort snortusr xxx.xxx.xxx.xxx/32 md5 ----initdb で生成された data ディレクトリの設定ファイルを編集。
> exit # /etc/init.d/postgresql start Starting PostgreSQL: ok # su - postgres > psql -f ../pgsql.804/bkup_pg804.dbPostgreSQL を開始。して、データベースリストア。
> psql snort Welcome to psql 8.1.0, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit snort=# SELECT * FROM event ; ... snort=# \qSnort 用データベースの event テーブルしか見てないけど。
> vacuumdb -a -zリストアしたなら VACUUM よっ。 -z で統計情報を更新するのよっ。
> exit # /etc/init.d/snort startSnort を開始するのよっ。
相変わらずのまったり更新でもはや目も当てられないのですが根本からやる気のない人間なのでしょうがないのですよ!!
さて、 前回 は Snort with PostgreSQL を動作させるところまでやったのですよ。
だがしかし、今世間のネットワークは常に新たな脆弱性、それに対する攻撃が生まれているのですよ。それが、ぢ・いんたーねっつ。それらの攻撃に対応するため、 Snort のルールも常に更新されているのですよ。
今回はそんな常に更新される Snort のルールを、自動でダウンロードして更新してくれる Oinkmaster というものを入れてみるのですよ。
無駄な前置き書いちゃった! てへっ♥
またまた適当にダウンロードしてインストールするのですよ。
> wget http://jaist.dl.sourceforge.net/sourceforge/oinkmaster/oinkmaster-1.2.tar.gz > gzcat oinkmaster-1.2.tar.gz | tar xf - > cd oinkmaster-1.2/ > su Password: # cp oinkmaster.pl /usr/local/bin/ # cp oinkmaster.conf /usr/local/etc/
# cd /usr/local/etc/ # vim oinkmaster.conf今回、 Snort 公式の registered user release なルール(無料だけどユーザー登録が必要、 subscription release より 5日遅れて更新されるらしい)と Bleeding Snort のルールを自動更新させるのですよ。
url = http://www.snort.org/pub-bin/oinkmaster.cgi/<Oink Code>/snortrules-snapshot-2.4.tar.gz url = http://www.bleedingsnort.com/bleeding.rules.tar.gz公式ルールの 〜〜_s.tar.gz なファイルは subscription release なので、お金が必要なのですよ。せいぜい気をつけるのですよ。
path = /bin:/usr/bin:/usr/local/binに含まれていない場合はてきとーに path の行末に追加するのですよ。
# cd /usr/local/snort/rules/ # cp sid-msg.map.orig sid-msg.map ↑ 退避していた公式ルールのみを含むマップに戻すのですよ。 Oinkmaster は既存と新規の sid-msg.map から、新規追加/更新/削除されたルールをチェックして提示してくれるのですよ。 でも、 前回導入時 に公式の sid-msg.map と Bleeding Snort の bleeding-sid-msg.map を結合していたのですが、 Oinkmaster 実行によってダウンロードされる公式の sid-msg.map には Bleeding Snort のルールなんか含まれるわけないのですよ。 そのままにすると Oinkmaster 実行時に「これこれのルールが Remove されちゃいましゅた!」というメッセージが Bleeding Snort のルールの件数だけ(1000 件ほど)出力されるのですよ。 それを回避するための手順、なのですよ。 本当は Oinkmaster で Bleeding Snort の bleeding-sid-msg.map もチェックしてくれるとうれしいのですよ。 ふぁぁぁあっ、こまんどのちゅうしゃくなのにしゅごくながくなっちゃってましゅぅぅ! # mkdir _backup # /usr/local/bin/oinkmaster.pl -o /usr/local/snort/rules -b /usr/local/snort/rules/_backup # cp sid-msg.map sid-msg.map.orig # cat sid-msg.map.orig bleeding-sid-msg.map | sort -un > sid-msg.map ↑ 公式と Bleeding Snort の sid-msg.map を結合するのですよ。snort を再起動してルールを読み直しさせるのですよ。
# /etc/init.d/snort restart
#!/bin/sh
BIN="oinkmaster.pl"
PROG="/usr/local/bin/${BIN}"
RULEDIR="/usr/local/snort/rules"
BKUPDIR="${RULEDIR}/_backup"
FLAG="-o $RULEDIR -b $BKUPDIR"
DIFFCHK=0
test ! -d $RULEDIR && echo "Nothing $RULEDIR directory, aborted." >&2 && exit
test ! -d $BKUPDIR && mkdir $BKUPDIR
cd $RULEDIR
test -f sid-msg.map.orig && cp sid-msg.map.orig sid-msg.map
test -f bleeding-sid-msg.map && cp bleeding-sid-msg.map bleeding-sid-msg.map.orig
$PROG $FLAG
diff sid-msg.map.orig sid-msg.map > /dev/null || DIFFCHK=1
diff bleeding-sid-msg.map.orig bleeding-sid-msg.map > /dev/null || DIFFCHK=1
cp sid-msg.map sid-msg.map.orig
cat sid-msg.map.orig bleeding-sid-msg.map | sort -un > sid-msg.map
test $DIFFCHK -eq 1 && /etc/init.d/snort restart && sleep 20
/etc/init.d/snort status
最後に snort の再起動とステータス確認もさせているのですよ。# crontab -e
0 19 * * * /usr/local/bin/oinkmaster.shルールの更新がどれくらいの頻度であるのかまだ良くわかっていないのですが、最悪でも一日一回程度の snort 再起動なら良いかもと思ったりしているのですよ。
PostgreSQL がインストールされていることが前提なのですよ。
良かったら先に オレオレ Solaris10 に PostgreSQL 8.0.3 をインストールするメモ を読んであげてください、なのですよ。
snort ご本家 からソースアーカイブを持ってくるですよ。
> wget http://www.snort.org/dl/current/snort-2.4.1.tar.gz > gzcat snort-2.4.1.tar.gz | tar xf - > cd snort-2.4.1/ > pwd /export/home/mass/src/snort-2.4.1
setenv LD_LIBRARY_PATH "/usr/local/lib:/usr/local/pgsql/lib:/opt/sfw/lib:/usr/sfw/lib:/usr/lib:/lib" setenv LDFLAGS "-L/usr/local/lib:-L/usr/local/pgsql/lib:-L/opt/sfw/lib:-L/usr/sfw/lib:-L/usr/lib:-L/lib"
> ./configure --prefix=/usr/local/snort --with-snmp \ --with-postgresql=/usr/local/pgsql --with-libpq-includes=/usr/local/pgsql/include \ --with-libpq-libraries=/usr/local/pgsql/lib CFLAGS='-O3 -pipe -mcpu=v9' > make > make check > su Password: # make install
# rehash # snort -V # snort -dev -i hme0てきとーに ping とかしてみてキャプチャできてれば OK ! ですよ。
# pwd /export/home/mass/src/snort-2.4.1 # cp schemas/create_postgresql ~postgres/ # su - portgres > createdb snort > psql snort < create_postgresql > psql snort ...messages... snort=# \d List of relations Schema | Name | Type | Owner --------+------------------------------------+----------+---------- public | data | table | postgres public | detail | table | postgres public | encoding | table | postgres public | event | table | postgres public | icmphdr | table | postgres public | iphdr | table | postgres public | opt | table | postgres public | reference | table | postgres public | reference_ref_id_seq | sequence | postgres public | reference_system | table | postgres public | reference_system_ref_system_id_seq | sequence | postgres public | schema | table | postgres public | sensor | table | postgres public | sensor_sid_seq | sequence | postgres public | sig_class | table | postgres public | sig_class_sig_class_id_seq | sequence | postgres public | sig_reference | table | postgres public | signature | table | postgres public | signature_sig_id_seq | sequence | postgres public | tcphdr | table | postgres public | udphdr | table | postgres (21 rows) snort=#table などもろもろが登録されていることをしっかとその目で確認するのですよ。
snort=# CREATE USER snortusr WITH PASSWORD 'hogehoge'; CREATE USERこのままでは snortusr から snort データベースに対して一切権限がなく、 SELECT す らもできない状態なので、 snort データベースの各 table / sequence に対して必要な 権限を設定してゆくのですよ。
snort=# grant INSERT,SELECT on snort.* to snortusr@localhost; ERROR: syntax error at or near "to" at character 32 LINE 1: grant INSERT,SELECT on snort.* to snortusr@localhost; ^と syntax error になるのですよ。ふざけるなですよ。
snort=# \q\q でおとなしく引き下がるのですよ。
#!/bin/sh
for i in `psql -c "\d" snort | grep "^ public" | awk '{ print $3 }'`; do
psql -c "GRANT INSERT, SELECT ON $i TO snortusr;" snort > /dev/null
if [ -n "`echo $i | egrep '^sensor$|_seq$'`" ]; then
psql -c "GRANT UPDATE ON $i TO snortusr;" snort > /dev/null
fi
done
psql で table などを一覧して、さらに psql で GRANT を一回一回実行ですよ。しゅごい効率悪しゅぎ、ですよ。> sh grant_snortdb.shちょっとだけ時間がかかりますが、プロンプトが帰ってくるのですよ。
> psql snort
...messages...
snort=# \z
Access privileges for database "snort"
Schema | Name | Type | Access privileges
--------+------------------------------------+----------+---------------------------------------------------
public | data | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | detail | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | encoding | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | event | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | icmphdr | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | iphdr | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | opt | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | reference | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | reference_ref_id_seq | sequence | {postgres=arwdRxt/postgres,snortusr=arw/postgres}
public | reference_system | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | reference_system_ref_system_id_seq | sequence | {postgres=arwdRxt/postgres,snortusr=arw/postgres}
public | schema | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | sensor | table | {postgres=arwdRxt/postgres,snortusr=arw/postgres}
public | sensor_sid_seq | sequence | {postgres=arwdRxt/postgres,snortusr=arw/postgres}
public | sig_class | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | sig_class_sig_class_id_seq | sequence | {postgres=arwdRxt/postgres,snortusr=arw/postgres}
public | sig_reference | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | signature | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | signature_sig_id_seq | sequence | {postgres=arwdRxt/postgres,snortusr=arw/postgres}
public | tcphdr | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
public | udphdr | table | {postgres=arwdRxt/postgres,snortusr=ar/postgres}
(21 rows)
snort=#
Access privileges フィールドの snortusr を確認するのですよ。snortusr=ar/postgressnortusr に対して、「a : INSERT(append)」「r : SELECT(read)」の権限を postgres ユーザーが設定したよ、という意味ですよ。
snortusr=arw/postgresこれは a, r に加えて、「w : UPDATE(write)」の権限も設定されているのですよ。
snort=# \q > exitpsql を \q で終了し、 postgres ユーザーも終了ですよ。
# pwd
/export/home/mass/src/snort-2.4.1
# cd etc
# ls | grep -v Makefile | xargs -n 1 -I {} cp {} /usr/local/snort/etc/
# cd /usr/local/snort # wget http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_pr/snortrules-pr-2.4.tar.gz # gzcat snortrules-pr-2.4.tar.gz | tar xf -今度は the Bleeding Edge of Snort のルールセットをゲッツするですよ。
# pwd /usr/local/snort # wget http://www.bleedingsnort.com/bleeding.rules.tar.gz # gzcat bleeding.rules.tar.gz | tar xf -展開したら公式ルールと Bleeding Snort の sid-msg.map を結合するのですよ。
# cd /usr/local/snort/rules/ # cp sid-msg.map sid-msg.map.orig # cat bleeding-sid-msg.map sid-msg.map.orig | sort -n > sid-msg.map
# cd /usr/local/snort/etc/ # vim snort.conf
# ---- conf ファイル内のコメントを適当に読みつつ以下を追加ですよ。 # Bleeding Snort variables var SSH_PORTS 22 var SSH_CLIENT_HOSTS any var SSH_SERVER_HOSTS any # Bleeding Snort rules include $RULE_PATH/bleeding-attack_response.rules include $RULE_PATH/bleeding-custom.rules include $RULE_PATH/bleeding-dos.rules include $RULE_PATH/bleeding-exploit.rules include $RULE_PATH/bleeding-inappropriate.rules include $RULE_PATH/bleeding-malware.rules include $RULE_PATH/bleeding-p2p.rules include $RULE_PATH/bleeding-policy.rules include $RULE_PATH/bleeding-scan.rules include $RULE_PATH/bleeding-virus.rules inclode $RULE_PATH/bleeding-web.rules output database: log, postgresql, user=snortusr dbname=snort password=hogehogesnort.conf 自体は上記の通り DB パスワードも記述されているので、一般ユーザーに閲覧できないよう read 権限を絞っちゃうのですよ。ギュッとねっ!
# chmod go-r snort.conf # env LANG=C ls -l snort.conf -rw------- 1 root root 30203 Sep 20 00:40 snort.conf
# groupadd -g 48 snort # useradd -d /usr/local/snort -g snort -u 48 snort # vipw snort:x:48:48::/usr/local/snort: ↑ snort ユーザーのシェルを消去。 Solaris の流儀?
# mkdir /var/log/snort # chown snort:snort /var/log/snort
# snort -u snort -g snort -deD -k none -i hme0 -c /usr/local/snort/etc/snort.conf"-i hme0" の hme0 は適宜自分が観測したいインターフェイス名で置き換えるのですよ。
#!/bin/sh
NAME="snort"
CONF_FILE=/usr/local/snort/etc/snort.conf
BIN="snort"
PROG="/usr/local/snort/bin/${BIN}"
FLAG="-u snort -g snort -deD -k none -c ${CONF_FILE}"
#
# if changes this variable, change "net_detect()" function
# and "MAIN SWITCH".
IF_EXT="ife0 ife1"
IF_DMZ="ife2 ife3"
IF_ALL="$IF_EXT $IF_DMZ"
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/pgsql/lib:/opt/sfw/lib:/usr/sfw/lib:/u
sr/lib:/lib
export LD_LIBRARY_PATH
#
# Start snort
start() {
for IF in `eval echo \\$IF_${ARGS}`; do
proc_detect
if [ -n "$PID" ]; then
echo "$NAME on $IF[$NET] still running. PIDs: $PID"
elif [ -f $CONF_FILE -a -x $PROG ]; then
$PROG -i $IF $FLAG > /dev/null 2>&1
proc_detect
echo "$NAME on $IF[$NET] starting. PIDs: $PID"
fi
done
}
#
# Stop snort
stop() {
for IF in `eval echo \\$IF_${ARGS}`; do
proc_detect
if [ -z "$PID" ]; then
echo "$NAME on $IF[$NET] not running."
else
kill -TERM ${PID}
echo "$NAME on $IF[$NET] terminated. PIDs: $PID"
fi
done
}
#
# Show PID
status() {
echo ""
echo "$NAME running under PIDs [$ARGS]:"
for IF in `eval echo \\$IF_${ARGS}`; do
proc_detect
test -z "$PID" && PID="Not running"
echo " $IF[$NET] : $PID"
done
echo ""
}
#
# Detect PID and the network where interface belongs to.
proc_detect() {
PID=`ps -eo pid,args | \
awk "\\$2 ~ /\\/${BIN}\\$/ && \\$4 ~ /^${IF}\\$/ \
{ print \\$1 }"`
NET=`echo $IF_EXT | awk "\\$0 ~ /$IF/ { print \\"EXT\\" }"`
test -z "$NET" && NET=`echo $IF_DMZ | \
awk "\\$0 ~ /$IF/ { print \\"DMZ\\" }"`
}
#
# Show usage
usage() {
echo ""
echo "Usage:"
echo " `basename $0` { start | stop | restart | status } [ext|dmz]"
echo ""
}
#
# MAIN SWITCH
case "$2" in
ext) ARGS="EXT";;
dmz) ARGS="DMZ";;
*) ARGS="ALL";;
esac
case "$1" in
start)
start $ARGS
;;
stop)
stop $ARGS
;;
status)
status $ARGS
;;
restart)
stop $ARGS
sleep 5
start $ARGS
;;
*)
usage
exit 1
esac
exit 0
最近 sh スクリプトすきすきーなのですよ。# cp <hogehoge> /etc/init.d/snort # chmod +x /etc/init.d/snort # ln -s /etc/init.d/snort /etc/rcS.d/K01snort # ln -s /etc/init.d/snort /etc/rc0.d/K01snort # ln -s /etc/init.d/snort /etc/rc1.d/K01snort # ln -s /etc/init.d/snort /etc/rc2.d/S99snort
ただのメモなのですよ。
configure に渡す値をメモしたいだけなのですよ。
また適当なところからソースアーカイブを取得するのですよ。
> gzcat wget-1.10.tar.gz | tar xf - > cd wget-1.10 > ./configure --with-ssl=/usr/sfw CFLAGS='-O2 -pipe -mcpu=v9' > make > su Password: # tcsh # make install書きどころも読みどころもないのですよ。
もう適当なところからソースアーカイブを持ってくるのですよ。
> gzcat postgresql-8.0.3.tar.gz | tar xvf - > cd postgresql-8.0.3 > setenv LD_LIBRARY_PATH "/usr/local/lib:/opt/sfw/lib:/usr/sfw/lib:/usr/lib:/lib" ↑ /opt/sfw/lib と /usr/sfw/lib を入れないと conftest の時にこけるのですよ。 以後 ~/.cshrc にぶち込むのですよ。 > ./configure --with-includes=/opt/sfw/include:/usr/sfw/include --with-libraries=/opt/sfw/lib:/usr/sfw/lib --with-perl --with-openssl CFLAGS='-O2 -pipe -mcpu=v9'
ld: 重大なエラー: 割り当て可能ですが、書き込めないセクションに対して再配置が残っています。と心ときめく素敵な告白を受けるので、 src/Makefile.shlib を以下のように編集するのですよ。
> env LANG=C diff -u Makefile.shlib.orig Makefile.shlib --- Makefile.shlib.orig Sun Nov 21 06:13:04 2004 +++ Makefile.shlib Tue Aug 9 00:08:16 2005 @@ -177,7 +177,7 @@ ifeq ($(PORTNAME), solaris) ifeq ($(GCC), yes) - LINK.shared = $(CC) -shared + LINK.shared = $(LD) -G else LINK.shared = $(CC) -G endifそしたら gmake ですよ。
> su Password: # tcsh # gmake install
# groupadd -g 5432 postgres # useradd -d /usr/local/pgsql/ -s /usr/bin/tcsh -u 5432 -g postgres postgres # mkdir /usr/local/pgsql/data # chown -R postgres:postgres /usr/local/pgsql
# su - postgres $ tcsh > vi .cshrc set path = ($HOME/bin /usr/local/pgsql/bin /usr/ccs/bin /usr/local/bin /usr/local/sbin /opt/sfw/bin /opt/sfw/sbin /sbin /bin /usr/sbin /usr/bin /usr/ucb) setenv MANPATH "/usr/share/man:/usr/local/man:/usr/local/pgsql/man" setenv LD_LIBRARY_PATH "/usr/local/pgsql/lib:/usr/local/lib:/opt/sfw/lib:/usr/sfw/lib:/usr/lib:/lib" > source .cshrc
> initdb -D /usr/local/pgsql/data -E EUC_JP > postmaster -D /usr/local/pgsql/data & > createdb test > psql testSQL のテストとか適当にするがいいのですよ。終わったら \q なのですよ。
> exit # cp ~/postgresql-8.0.3/contrib/start-scripts/linux /etc/init.d/postgresql # chmod +x /etc/init.d/postgresql # ln -s /etc/init.d/postgresql /etc/rc0.d/K02postgresql # ln -s /etc/init.d/postgresql /etc/rc1.d/K02postgresql # ln -s /etc/init.d/postgresql /etc/rc2.d/S98postgresql # ln -s /etc/init.d/postgresql /etc/rcS.d/K02postgresql # /etc/init.d/postgresql stop # /etc/init.d/postgresql start
FreeBSD メインマシンで
> tip sio0が大活躍。シリアルコンソールはぁはぁ。
Quad Ethernet Card の各ポートを起動時に up さす。
# cd /etc/
# cat /dev/null > hostname.ife0
# cat /dev/null > hostname.ife1
# cat /dev/null > hostname.ife2
# cat /dev/null > hostname.ife3
Solaris10 になってからサービス管理機能として SMF とやらが導入され。苦しむ。
/etc/rc2.d/ , /etc/rc3.d/ 以下の S 系スクリプトはさくさく mv 。
ntp を有効にす。
# svcs -a | grep ntpちょこちょこ ntpq -p で確認しつつ同期するのをまったりと待つ。
disabled 21:54:41 svc:/network/ntp:default
# cd /etc/inet/
# cp ntp.client ntp.conf
# vi ntp.conf
server ntp
# svcadm enable ntp
# svcs -a | grep ntp
online 21:54:41 svc:/network/ntp:default
syslogd でリモート待ち受けさせず。
# cd /etc/default/
# chmod +w syslogd
# vi syslogd
LOG_FROM_REMOTE=NO
# svcadm restart system-log
sshd をユーザー公開鍵認証にさすために、まずは sshd を有効にすて、
# svcadm enable sshメインマシンの公開鍵を scp するなりで ~/.ssh/authorized_keys2 を作る。
# cd /etc/ssh/おけおけ。
# vi sshd_config
ListenAddress xxx.xxx.xxx.xxx
X11Forwarding no
PasswordAuthentication no
PAMAuthenticationViaKBDInt no
↑これやらんと ~/.ssh/authorized_keys2 無い場合パスワード認証になってまう。
# svcadm restart ssh
SMF でサービスを止めすぎて起動できなくなった(!?)ときに Solaris Developer Connection - Solaris 10 OS → Solaris のシステム管理 (基本編) → 破壊されたリポジトリを修復する方法 で助かった!
んだが、今読むと復旧作業した時と記述内容が違う気がする... どっかから /etc/svc/repository.db に上書きコピって復旧したんだけど...
ok boot -m milestone=noneは -m を付けるとエラーになりますた。 OpenBoot 3.15 。
とりあえず現状の svcs -a の結果を 置いとく 。
fmd と zones は止めてもいいけどなんとなく止めたくない、ってことで。
ipfilter も設定しないとなぁ。勉強せななぁ。
参考リンク:
Solaris10 でのサービスの有効化/無効化 [SMF]
[tech] Solaris 10 SMFの話
6/3 の雑記 に書いていた「ジャンク屋で買い物 \18k」がようやく次のステップへ。
相も変わらず文体はめちゃめちゃですが、興味を持った方はよろしくお付きあいのほどを。
![]()
![]()
Matrox の NS-FNIC/4 、 4 Port (Quad) Fast Ethernet NIC ですわ。
\18k といってもほかの買い物も含んでいたので、これ単体は実質 \12.8k 。
ものはジャンクでなく 2週間保証付き。しかし当然のごとく 1ヶ月以上放置していた。
ドライバ CD なんぞ付いてない。メーカーの動作確認も Windows NT 4.0 、 Windows 2000 、 Linux とあるのみ。
なぜにこれを Solaris で使おうとしたのか。博打だなぁ。 Solaris 全く知らんのに。
まぁ載ってるチップが i82559 系だったのでまず問題なかろうと。
...ちょっと間違いですた...
まず Solaris10/SPARC に i8255x 系の標準ドライバがないようで。
man iprb を見ると Architecture: x86 とか書いていやがる。( e1000g もそうやね。)
/kernel/drv/sparcv9/ 以下にも無い。
Google しまくってみるも、 iprb の設定は on x86 しか見つからず。
Intel のサイトにも Solaris ドライバ無し。
もぅこれは嫌がらせかと。 Ultra5 も QFE-NIC も買ってからずっと放置してたおれに対する嫌がらせかと。ちょっと Solaris を勉強してみんべぇかぁ〜、と安易な気持ちで臨む人間に対する風はこんなにも冷たいものかと。
そんな世を儚んでいた時に見つけたのが Free NIC drivers for Solaris 。す、すばらしすぎる... 多謝。
さっそく ife driver をいただきまして。
基本的には README の通りで良いのですが、自分用にメモ書きを。
# gzcat ife-0.8.8.tar.gz | tar xf -ここではたと気付いて、 prtconf -pv で確認した i82559ER の PCI ID を以下のように追記してっ、
# cd ife-0.8.8/
# ln -sf Makefile.sparcv9_gcc Makefile
# make install
# ./adddrv.sh
# modload sparcv9/ife
# vi /etc/driver_aliasesほんとはここで init 6 しちゃったんだけど、危険なので以下を実行するべきだったの☆
ife "pci8086,1209"
# devfsadm -i ifeなにもメッセージが出なかったら、おもむろに
# ifconfig ife0 plumbをほぉ、出て、出てきたあぁぁぁっ!
# ifconfig ife0
ife0: flags=1000842mtu 1500 index 3
inet 0.0.0.0 netmask 0
ether xx:xx:xx:xx:xx:b4
# ifconfig ife1 plumbんをををぉぉ、いぃ、いぃ、出まくっちゃってましゅうぅぅぅ!
# ifconfig ife2 plumb
# ifconfig ife3 plumb
# ifconfig -a
lo0: flags=2001000849mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843mtu 1500 index 2
inet xxx.xxx.xxx.xxx netmask ffffff00 broadcast xxx.xxx.xxx.255
ether xx:xx:xx:xx:xx:f7
ife0: flags=1000842mtu 1500 index 3
inet 0.0.0.0 netmask 0
ether xx:xx:xx:xx:xx:b4
ife1: flags=1000842mtu 1500 index 4
inet 0.0.0.0 netmask 0
ether xx:xx:xx:xx:xx:b5
ife2: flags=1000842mtu 1500 index 5
inet 0.0.0.0 netmask 0
ether xx:xx:xx:xx:xx:b6
ife3: flags=1000842mtu 1500 index 6
inet 0.0.0.0 netmask 0
ether xx:xx:xx:xx:xx:b7
# ifconfig ife0 192.168.20.11/24 upんほあぁぁぁっおっ(以下自主規制
# ifconfig ife1 192.168.21.11/24 up
# ifconfig ife2 192.168.22.11/24 up
# ifconfig ife3 192.168.23.11/24 up
# ifconfig -a
lo0: flags=2001000849mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843mtu 1500 index 2
inet xxx.xxx.xxx.xxx netmask ffffff00 broadcast xxx.xxx.xxx.255
ether xx:xx:xx:xx:xx:f7
ife0: flags=1000843mtu 1500 index 3
inet 192.168.20.11 netmask ffffff00 broadcast 192.168.20.255
ether xx:xx:xx:xx:xx:b4
ife1: flags=1000843mtu 1500 index 4
inet 192.168.21.11 netmask ffffff00 broadcast 192.168.21.255
ether xx:xx:xx:xx:xx:b5
ife2: flags=1000843mtu 1500 index 5
inet 192.168.22.11 netmask ffffff00 broadcast 192.168.22.255
ether xx:xx:xx:xx:xx:b6
ife3: flags=1000843mtu 1500 index 6
inet 192.168.23.11 netmask ffffff00 broadcast 192.168.23.255
ether xx:xx:xx:xx:xx:b7
スイッチかまして対向のノート PC から ping 試験して結果良好! 負荷試験は気が向いたら!
いやぁ、一安心(笑
んで。これをなにに使うかというと。
せっかく Eterh TAP を 2つも作っている わけですし...
乞うご期待!
……。
や、だめ、やっぱ期待すんな。
参考サイト:
solarisな生活
Free NIC drivers for Solaris
The Linux PCI ID Repository
ほか Google で出会った、貴重な情報を公開していただいたたくさんのサイトの管理者の方々に感謝。
analog の Ver.6.0 からレポートの形式が変わったため、 postanalog による日本語検索語解析がへくるようになってしまった。
そのため、「動きゃぁいいやぁ」的へっぽこパッチを作成した。analog6.0 リリースから半年以上も経って。
postanalog analog6.0 対応へっぽこパッチ
-q , -w オプションもきっと動いてくれると信じてる。使ってないからわかんないけど。
で、 FreeBSD からいろいろといじってみようとしたが挫折。
audio/gtkpod の使い方がわからないよママン。ディレクトリ壊してるようにしか見えないよママン。
今は Windows マシンで iTunes 使ってます。わりと便利かも。
へたれ。
ちぅわけで作業記録は追記行き。
ささ、メインマシンに繋げてみましょ。
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc2, gen=2, CYCLEMASTER mode
firewire0: 3 nodes, maxhop <= 2, cable IRM = 2 (me)
firewire0: bus manager 2 (me)
firewire0: New S400 device ID:000a2700120b2bcf
da8 at sbp0 bus 0 target 0 lun 0
da8:Removable Simplified Direct Access SCSI-0 device
da8: 50.000MB/s transfers
da8: 3906MB (7999488 512 byte sectors: 255H 63S/T 497C)
# mount -t msdos /dev/da8 /mntにゃに?
msdosfs: /dev/da8: Invalid argument
> fdisk da8はれ? 165番ですか?
******* Working on device /dev/da8 *******
parameters extracted from in-core disklabel are:
cylinders=497 heads=255 sectors/track=63 (16065 blks/cyl)
parameters to be used for BIOS calculations are:
cylinders=497 heads=255 sectors/track=63 (16065 blks/cyl)
fdisk: invalid fdisk partition table found
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 63, size 7984242 (3898 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 496/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
# mount /dev/da8 /mntうにゃー。めんどうだにゃー。
mount: /dev/da8 on /mnt: incorrect super block
# camcontrol eject 2:0:0たしか iPod のディスクフォーマットって FAT32 のはずなんだよなぁ。 すぽ。
Unit stopped successfully, Media ejected
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc1, gen=3, CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1, cable IRM = 1 (me)
firewire0: bus manager 1 (me)
# ls -l /dev/da8なぜ抜いても残っているか。
crw-r----- 1 root operator 14, 174 4 15 17:30 /dev/da8
Windows マシンに iTunes 入れて「復元」して FAT32 フォーマットへ。
そしてメインマシンへ挿す。
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc2, gen=4, CYCLEMASTER mode
firewire0: 3 nodes, maxhop <= 2, cable IRM = 2 (me)
firewire0: bus manager 2 (me)
# fdisk /dev/da8
******* Working on device /dev/da8 *******
parameters extracted from in-core disklabel are:
cylinders=497 heads=255 sectors/track=63 (16065 blks/cyl)
parameters to be used for BIOS calculations are:
cylinders=497 heads=255 sectors/track=63 (16065 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 0 (0000),(unused)
start 63, size 80262 (39 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 4/ head 254/ sector 63
The data for partition 2 is:
sysid 11 (0x0b),(DOS or Windows 95 with 32 bit FAT)
start 80325, size 7903980 (3859 Meg), flag 80 (active)
beg: cyl 5/ head 0/ sector 1;
end: cyl 496/ head 254/ sector 63
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
# mount -t msdos /dev/da8s2 /mntおけー。
で。
当初の目論見は、 FreeBSD で mount して適当にディレクトリ分けして突っ込めばよかろう、と iRiver 的感覚だったわけですが、まず iTunes で適当に mp3 ファイルを突っ込んでみると、
iPod ディスク内の /iPod_Control/Music に F01 〜 F49 というディレクトリが掘られ、そこにバラバラと(規則性はあるんだろうが) mp3 ファイルが突っ込まれるようで。そのファイル名も <半角英大4文字>.mp3 となるようで。手作業じゃ無理だ。
audio/gtkpod を使ってみるも F** 形式には対応しているようだが、 mp3 ファイルで書き込むべきがなぜかディレクトリとして書き込まれたり。
audio/gnupod は見なかったということで。
もぅ面倒くさいので iTunes 使ってます!
ID3 タグがしっかり書き込んであればかなり便利なツールですな。わたしのライブラリは ID3 タグを全く使用していなかったので地獄を見ていますが。お気に入りからちまちまとタグ書きつつ iPod 投入してますわ。
まずライブラリ登録するのが ふたなり音楽CD からというのはいかがなものか。
mixi の bbs かなにかで晒されているような気がするが、なにぶんそんな交友関係はないのでなにを理由に晒されているのかわからない... しかもアクセスは数件なんだが... 気になる。
どうせだめ人間だと言ってるんだろう、くそ! くそ!
SCA-HDD 5台を使った gvinum 遊び、想像以上の遅さに感激。
# mount /dev/gvinum/raid5set /mnt4GB 書き込みに 40分? 読み込みは 10分。
# cd /mnt/
# dd if=/dev/zero of=./zero3.bin bs=512 count=8M
8388608+0 records in
8388608+0 records out
4294967296 bytes transferred in 2439.914186 secs (1760294 bytes/sec)
# dd if=./zero3.bin of=/dev/null bs=512 count=8M
8388608+0 records in
8388608+0 records out
4294967296 bytes transferred in 575.131438 secs (7467801 bytes/sec)
da1: 80.000MB/s transfers (40.000MHz, offset 15, 16bit), Tagged Queueing Enabledっていっているのに da4 だけ
da4: 3.300MB/s transfers, Tagged Queueing Enabledというのか気にくわないったら気にくわないわ〜〜〜!!!(メテオさん風(なんとなく
ses0 at mpt1 bus 0 target 6 lun 0ses(4) の意味もよくわかっていませんが。
ses0:Fixed Processor SCSI-2 device
ses0: 3.300MB/s transfers
ses0: SAF-TE Compliant Device
やはり 10000rpm な HDD を こんな繋げ方 しちゃいけません。
GEOM_VINUM: subdisk raid5set.p0.s0 is staleとかいわれて subdisk が全ておだまりになられたようです。 HDD を触ってみると、物凄い熱さ!!!
GEOM_VINUM: subdisk raid5set.p0.s1 is stale
GEOM_VINUM: subdisk raid5set.p0.s2 is stale
ところでシングルユーザーモードで /rescue/vi を使おうとしたら
vi: No terminal database foundなどと言われたわけで。 mount /usr しないと使えませんでした。今時はみんな / only でパーティションを切っているのでしょうか。
ふしぎ星の☆ふたご姫 [BOGARD La+ 経由]
これのもとネタがなんなのかよくわかりませんが。 PANDA-Z とかと似たようなバンダイのキャラクター戦略?
ロリでプニにまったりと癒されてしまいました。 mass です。
iPod mini プレゼントキャンペーン (amazon.co.jp)
ブックストアで一度に \5k 以上買い物すると、抽選で 100名に当たるとのこと。
やっぱり余ってるんか(笑)
「よろしかったですか」の歴史と心理的背景を探ってみる (絵文録ことのは)
これ、言われるとなんか微妙に腹立つんですよね。今まさにやりとりしてる最中やろがっ! って感じて。
で、読んでてふと思い出した。
近所のスーパーに変なおばちゃん店員がいる。
「いらっしゃいませー」はもちろんいいのだが、「ありがとうございませー(語尾上がる)」などとおっしゃる。一時期直ったのだが(店長に言われたのかもしれない)、最近また再発していた。どちらの方なのだろう。
「わたおに」好きに人気がでそうなロリ〜なドール「ちっちゃなもこちゃん」 (ぬるヲタが斬る)
あ、あ、あぁぁぁぁぁ...
『暗いところで待ち合わせ』映画化か? 00:43 (はてなダイアリー - 政宗九の日常系日記)[ぬるヲタが斬る 経由]
乙一作品屈指で好きな作品(超個人的)ですよ! 下手な配役しやがったらぬっコロスですよ!(翠星石風)
みたいな。
要件:
ただソフトウェア RAID がやってみたい。それだけ。 root までやるつもりはなく、データ領域だけ redundant であればよい。
どうせやるなら RAID-5 がかっくいい。それっぽく動けばよいのだ。
そして相変わらずバックアップなどしないのであった。
※これのどこらへんが要件なのか。
ハードウェア的には
・資源を有効利用するの〜 ソフトウェア RAID 構築の下準備
・きょーも RAID の道はまったりと。デバイス認識まで。
にてすでに待ち状態。え〜加減はじめますかぁ。
で、とても長くなったので追記行き。
まずは fdisk でパーティションを切るです。といっても全ディスクは FreeBSD スライスとしていただいちゃいます。
# fdisk -BI da2 ******* Working on device /dev/da2 ******* # fdisk -BI da3 ******* Working on device /dev/da3 ******* # fdisk -BI da4 ******* Working on device /dev/da4 *******全ての HDD にデフォルトな BSD ラベルを書いて、
# bsdlabel -w da2s1 # bsdlabel -w da3s1 # bsdlabel -w da4s1BSD ラベルを編集します。
# bsdlabel -e da2s1エディタが起動しまふ。
# /dev/da2s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 17767811 16 unused 0 0 c: 17767827 0 unused 0 0 # "raw" part, don't edit↑これを、こう↓
# /dev/da2s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 17767811 16 vinum 0 0 c: 17767827 0 unused 0 0 # "raw" part, don't edit※ fstype は gvinum って書くと "Warning, unknown file system type gvinum" って怒られます。
# bsdlabel da2s1 > bsdlabel.da2s1 # bsdlabel -R da3s1 bsdlabel.da2s1 # bsdlabel -R da4s1 bsdlabel.da2s1そしておもむろに
# kldload geom_vinumkldload します。これ以降の gvinum コマンドを使う作業はカーネルモジュール geom_vinum.ko がロードされていなければなりません。たぶん。
# gvinum gvinum -> createエディタが起動します。
drive d0 device /dev/da2s1a drive d1 device /dev/da3s1a drive d2 device /dev/da4s1aエディタでドライブ指定を記述して保存すると、その直後に list が実行されます。
3 drives: D d2 State: up /dev/da4s1a A: 8675/8675 MB (100%) D d1 State: up /dev/da3s1a A: 8675/8675 MB (100%) D d0 State: up /dev/da2s1a A: 8675/8675 MB (100%) 0 volumes: 0 plexes: 0 subdisks:なぜかドライブ名が逆順に並んでいるわけだが。
gvinum -> createまたエディタが起動するねん。(←誰?)
# drive d2 device /dev/da4s1a # drive d1 device /dev/da3s1a # drive d0 device /dev/da2s1a volume raid5set plex org raid5 512k sd length 0 drive d0 sd length 0 drive d1 sd length 0 drive d2すると、
3 drives: D d2 State: up /dev/da4s1a A: 0/8675 MB (0%) D d1 State: up /dev/da3s1a A: 0/8675 MB (0%) D d0 State: up /dev/da2s1a A: 0/8675 MB (0%) 1 volume: V raid5set State: down Plexes: 1 Size: 16 GB 1 plex: P raid5set.p0 R5 State: down Subdisks: 3 Size: 16 GB 3 subdisks: S raid5set.p0.s2 State: stale D: d2 Size: 8675 MB S raid5set.p0.s1 State: stale D: d1 Size: 8675 MB S raid5set.p0.s0 State: stale D: d0 Size: 8675 MBあらやだ奥さん! それっぽくできてるじゃあ〜りませんか!
gvinum -> start raid5set 3 drives: D d2 State: up /dev/da4s1a A: 0/8675 MB (0%) D d1 State: up /dev/da3s1a A: 0/8675 MB (0%) D d0 State: up /dev/da2s1a A: 0/8675 MB (0%) 1 volume: V raid5set State: down Plexes: 1 Size: 16 GB 1 plex: P raid5set.p0 R5 State: down Subdisks: 3 Size: 16 GB 3 subdisks: S raid5set.p0.s2 State: I 0% D: d2 Size: 8675 MB S raid5set.p0.s1 State: I 0% D: d1 Size: 8675 MB S raid5set.p0.s0 State: I 0% D: d0 Size: 8675 MBさぁ、 subdisks: の State: が "I 〜〜%" となって initialize が始まりましたっ!
gvinum -> ls 3 subdisks: S raid5set.p0.s2 State: I 45% D: d2 Size: 8675 MB S raid5set.p0.s1 State: I 45% D: d1 Size: 8675 MB S raid5set.p0.s0 State: I 45% D: d0 Size: 8675 MB gvinum -> ls 3 subdisks: S raid5set.p0.s2 State: I 97% D: d2 Size: 8675 MB S raid5set.p0.s1 State: I 97% D: d1 Size: 8675 MB S raid5set.p0.s0 State: I 96% D: d0 Size: 8675 MBあと少しっ! って s0 と s1 でパーセンテージが違う。こんなタイミングもあるのね...
gvinum -> list 3 drives: D d2 State: up /dev/da4s1a A: 0/8675 MB (0%) D d1 State: up /dev/da3s1a A: 0/8675 MB (0%) D d0 State: up /dev/da2s1a A: 0/8675 MB (0%) 1 volume: V raid5set State: up Plexes: 1 Size: 16 GB 1 plex: P raid5set.p0 R5 State: up Subdisks: 3 Size: 16 GB 3 subdisks: S raid5set.p0.s2 State: up D: d2 Size: 8675 MB S raid5set.p0.s1 State: up D: d1 Size: 8675 MB S raid5set.p0.s0 State: up D: d0 Size: 8675 MBめでたく、全ての State: が up となりました。
gvinum -> exit
# newfs /dev/gvinum/raid5set
/dev/gvinum/raid5set: 17351.0MB (35534848 sectors) block size 16384, fragment size 2048
using 95 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,
3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792,
6398144, 6774496, 7150848, 7527200, 7903552, 8279904, 8656256, 9032608,
9408960, 9785312, 10161664, 10538016, 10914368, 11290720, 11667072, 12043424,
12419776, 12796128, 13172480, 13548832, 13925184, 14301536, 14677888,
15054240, 15430592, 15806944, 16183296, 16559648, 16936000, 17312352,
17688704, 18065056, 18441408, 18817760, 19194112, 19570464, 19946816,
20323168, 20699520, 21075872, 21452224, 21828576, 22204928, 22581280,
22957632, 23333984, 23710336, 24086688, 24463040, 24839392, 25215744,
25592096, 25968448, 26344800, 26721152, 27097504, 27473856, 27850208,
28226560, 28602912, 28979264, 29355616, 29731968, 30108320, 30484672,
30861024, 31237376, 31613728, 31990080, 32366432, 32742784, 33119136,
33495488, 33871840, 34248192, 34624544, 35000896, 35377248
newfs する際、以前は -v オプションを付ける必要があったみたいですが、いまは必要ありません。 src/sbin/newfs/newfs.c - view - 1.60 でさっくり remove されてます。# mount /dev/gvinum/raid5set /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/gvinum/raid5set 17204942 4 15828544 0% /mntあぁっ! RAID-5 まうんとしてるぅぅっ! まうんとしちゃってましゅぅぅぅ!!!
# vim /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/gvinum/raid5set /raid ufs rw 1 1 ↑を追加。
# vim /boot/loader.conf geom_vinum_load="YES" ← を追加。これで再起動してみて、きちんとマウントされたら成功ですよ〜。
というわけで、ソフトウェア RAID-5 の構築までやってみました。ここまで記事にするので疲れたさ。
今後としては、
・ケーブル抜いたりしてアレイをおかしくしてみる。
→ さらに HDD を交換してリビルドしてみる。
・アレイがおかしゅうなったら messages に出るが、メールも飛ぶとよい。
・リムーバブルユニットのついた PC ケースが欲しいなぁ。
などを記事にしようかと妄想しています。はぁはぁ。
...で。ソフトウェア RAID-5 を使ってみての感想というか、あれですが...
・噂通り書き込みが遅い...
実質、ストライピングの 25% は伊達じゃない(vinum(8) より)。
この記事を vim で書いている裏で /usr を RAID-5 領域に書き込ませてますが、 7GB のコピーに 1h かかりました。パリティの計算が頻発するからかリアルタイム系の作業がもたつく感じがします。まぁ速度を求めるもんじゃないからねぇ。速くしたけりゃハードウェア RAID にしろってことで。
・変なことはするもんじゃない。
RAID-5 の初期ビルド中に無理やり gvinum の rm コマンドを発行して subdisk → plex → volume の順で消去、 drive はどうやっても消せないのでそのまま exit して放置してしばらくすると固まった。タイミングからすると、 rm してもビルドは続行していて、ビルド完了直後に固まったようだ。 Xorg 上で作業していたのでマウスもキーボードも利かず。外から ping は通るけど ssh は応答もなく...
・gvinum の help にあって使えないコマンドあり。
resetconfig なんて unknown とか言われましてよ。どういうことかしら。
それ以前に man に gvinum がありませんことよ。
参考リンク:
・vinum編 (FreeBSD覚え書き)
っていうかそのままパクらせていただきました。ほんと、すいますいません。
わたしのメインマシンでは U320-SCSI(mpt) がメインで、それに U160-SCSI(sym) カードを増設して HDD をぶら下げて起動したら、 sym が先に認識されちゃって da? の名前順が変わってもうた、という話は 資源を有効利用するの〜 ソフトウェア RAID 構築の下準備 でも書いたが、その sym を違う PCI-X バスに挿し直しても認識順は変わらなかった。
面倒くさくなったので、 kernel から "device sym" をはずして、以下の /etc/rc.early を作った。
#!/bin/shsym モジュールロードしてバスをスキャンさせてまえ、てな感じ。一番下のコメントしてある camcontrol は rc.early の実行段階で /usr が mount されていないことを知らなくてはまったもの。
HOME=/
PATH=/sbin:/bin
export HOME PATH
kldload sym
camcontrol rescan all
#camcontrol rescan `camcontrol devlist -v | grep sym0 | sed 's/scbus\(.\).*$/\1/'`
sym0: <1010-33> port 0x9000-0x90ff mem 0xfb040000-0xfb041fff,0xfb045000-0xfb0453ff irq 28 at device 2.0 on pci4く〜。いちいち rescan all もあれだけど、 bus number を固定で書くのもあれだなぁ。 firewire もあるから scbus でいうと、 mpt0, mpt1, sbp0, sym0, sym1 だから camcontrol rescan 3 になるんだよねぇ... 後々 firewire はずすかもしれないから bus number は動的に取りたいなぁ...
sym0: Symbios NVRAM, ID 7, Fast-80, LVD, parity checking
sym0: open drain IRQ line driver, using on-chip SRAM
sym0: using LOAD/STORE-based firmware.
sym0: handling phase mismatch from SCRIPTS.
sym0: [GIANT-LOCKED]
sym1: <1010-33> port 0x9400-0x94ff mem 0xfb042000-0xfb043fff,0xfb044000-0xfb0443ff irq 29 at device 2.1 on pci4
sym1: Symbios NVRAM, ID 7, Fast-80, LVD, parity checking
sym1: open drain IRQ line driver, using on-chip SRAM
sym1: using LOAD/STORE-based firmware.
sym1: handling phase mismatch from SCRIPTS.
sym1: [GIANT-LOCKED]
(noperiph:sym0:0:-1:-1): SCSI BUS reset detected.
da2 at sym0 bus 0 target 0 lun 0
da2: <COMPAQ BD00911934 3B02> Fixed Direct Access SCSI-2 device
da2: 80.000MB/s transfers (40.000MHz, offset 15, 16bit), Tagged Queueing Enabled
da2: 8678MB (17773524 512 byte sectors: 255H 63S/T 1106C)
da3 at sym0 bus 0 target 1 lun 0
da3: <COMPAQ BD00911934 3B02> Fixed Direct Access SCSI-2 device
da3: 80.000MB/s transfers (40.000MHz, offset 15, 16bit), Tagged Queueing Enabled
da3: 8678MB (17773524 512 byte sectors: 255H 63S/T 1106C)
da4 at sym0 bus 0 target 2 lun 0
da4: <COMPAQ BD00911934 3B02> Fixed Direct Access SCSI-2 device
da4: 80.000MB/s transfers (40.000MHz, offset 15, 16bit), Tagged Queueing Enabled
da4: 8678MB (17773524 512 byte sectors: 255H 63S/T 1106C)
あいっかわらずソフトウェア RAID への道はまったりゐきゐき。
...ただ HDD 増設しただけだがな。
もぅえーかげんに余っている HDD を何とかしようと思い立ったのがそもそもの始まり。
や、逆か。 vinum があることを改めて思い出して、そういや HDD が余ってるや、ちょうどええ使っちまえ。どうせなら RAID-5 がかっちょええ。
この程度の考え。
余っている HDD は SCA タイプの U2SCSI 9GB 。同型が 5台もあるので、 2台はスペアで 3台で RAID-5 を組むつもり。
SCSI インターフェイスは メインマシン にあるが、今は U320 の 18GB が鎮座在しておられる。しばらくはテストで抜き挿しが多くなるからメインのインターフェイスにかぶせたくはない。よし、かなり前に ファナティック で \10k 位で買った U160 なカードにぶら下げよう。
SCA - UW68 の変換コネクタは持ってるから、あとは電源分岐ケーブルと増設ステイやね。秋葉へ Go!!
![]()
で、買ったもんは左下の 2点だけ。店に顔出ししただけだなぁ。
上〜右 3点が死蔵品だったところがもったいなさすぎ。
![]()
LSI LOGIC の LSI53C1010-33 な U160 かぁど。なぜ買ったのか思い出せない。
FreeBSD 6.0-CURRENT では、
sym0: <1010-33> port 0xa000-0xa0ff mem 0xf3010000-0xf3011fff,0xf3015000-0xf30153ff irq 52 at device 2.0 on pci3う、うむ。
sym0: Symbios NVRAM, ID 7, Fast-80, LVD, parity checking
sym0: open drain IRQ line driver, using on-chip SRAM
sym0: using LOAD/STORE-based firmware.
sym0: handling phase mismatch from SCRIPTS.
sym0: [GIANT-LOCKED]
sym1: <1010-33> port 0xa400-0xa4ff mem 0xf3012000-0xf3013fff,0xf3014000-0xf30143ff irq 53 at device 2.1 on pci3
sym1: Symbios NVRAM, ID 7, Fast-80, SE, parity checking
sym1: open drain IRQ line driver, using on-chip SRAM
sym1: using LOAD/STORE-based firmware.
sym1: handling phase mismatch from SCRIPTS.
sym1: [GIANT-LOCKED]
![]()
ステイでまとめて、 SCA 変換コネクタでさっくさく。筐体の空いたスペースに置いて、いざ起動。
ってしたら、メインの mpt より sym が先に認識して da? の振り分けが変わって mount でこけましたとさ。
うーん、 sym を挿す位置変えれば済みそうだけど、 da? が見っけた順に振られるのってなんとかならんかったっけ。デバイス名は da? だけ
da0 at mpt0 bus 0 target 0 lun 0の target の番号(つまるとこ SCSI-ID)振って欲しいなぁ。その方がおじさんにはわかりやすいよ。で、バスとかインターフェイスが増える度に別桁で a, b, c... 振るとか。
mpt0 bus 0 target 0 lun 0 → daa0やべっ。わかりづれぇ。
mpt0 bus 0 target 14 lun 0 → daae
mpt1 bus 0 target 3 lun 0 → dab3
sym0 bus 0 target 10 lun 0 → daca
ちぅわけで、ソフトウェア RAID-5 への道は「まったりモード」です!
...す、すんません、集中すれば RAID 構築までいけたはずなんですけど、ゆずゆに萌えちゃって手が出せませんでした(意識不明
その時、 mass はぱにくった。
どつぼを力業でのりきった記録。自分用のメモ。
メインマシンの FreeBSD を何気なくアップデートした。 2004/11/7 0:00 頃 cvsup ものである。 2004/9/4 以来やね。今回は /usr/src/UPDATING を読み忘れた。
build 後、
# make installkernel KERNCONF=hogehogeして reboot 、 boot -s で panic しないので一安心。
# ls(たしかこんな感じ)
/libexec/ld-elf.so.1: /lib/libutil.so.4: Undefined symbol "_DefaultRuneLocale"
# pwd(違ったかも。ものによっては ld-elf.so.1 が直接ぶーたれるものもあった。)
/libexec/ld-elf.so.1: /lib/libutil.so.4: Undefined symbol "_DefaultRuneLocale"
うるさいだまれしね。
うぅ、やべぇ。ここまでやばいのは経験がない。(弱)
で、 Live CD で起動を試みるものの、うちの環境だと 5.3R も 5.2.1R も /boot/loader 以前に、 boot0 の選択画面 すら出ずにレジスタ値のようなものが画面いっぱいに怒涛のごとく流れて手も足も出ない。
※ acd0 に Live CD 、 M/B オンボードの SCSI に da0 / cd0 の構成。
なぜか cd0 が起動デバイスとして認識されず。
4.10R の disc2 なら起動したが、 5.3R の Live CD に入れ替えての Fixit はまともに動かず...
そんな時、 HDD 上に /rescue が存在したことを思い出す。素敵!!!
いろいろやってみると、どうやら /var を mount した時点からおかしいようだ。 /var 以下を退避してしらみ潰ししますか。
# mount /var/usr/tmp に退避したものを ディレクトリ第一層単位で
↑これ以降、 dynamic link な通常コマンド死亡
# /rescue/cp -Rp /var/* /usr/tmp/
# /rescue/umount /var
# /rescue/cp -Rp /usr/tmp/hogehoge /varとコピー。都度、 ls とか叩いて確認。
で、結局。
# /rescue/rm /var/run/ld-elf.so.hintsだけでよかったみたい。消しても作り直してくれるし。うゆー。
/usr/src/UPDATING の 20040728 あたりの問題なのかなぁ。でもそれは前回アップデートした時に踏んでるはずなんだけど...
恐いので念のため /usr/src/gnu/usr.bin で make install して、 kernel と userland 作り直して。で、めでたしめでたし。
そっかぁ、 /rescue の下ってクランチバイナリなんだっけ。かこいい。
でもアップデートを繰り返してると古いバイナリが i-node 違い size 違いで残っているのはちょっとかこわるい。
アップデートの時に不要な標準バイナリを消す機構ってないのかな? 対話式とかで。
参考リンク:
Program Library HOWTO - 3.2. ライブラリはどのように使われるか げ、 JF だ!
そっすかぁ、 ELF キャッシュってやつっすかぁ。よくわらかんっす。
ld-elf.so.1(1) と ldconfig(8) を読んで勉強しませう。
おれ、よくこんなんで CURRENT なんて使ってるなぁ。惰性なんだけどね。
ports/security/portaudit は make install すると /usr/local/etc/periodic/security/410.portaudit をインストールし、毎日 Ports Collection のセキュリティ監査ファイルを自動で最新に更新し、インストール済の全ての Ports/Packages のセキュリティ脆弱性を検査してくれるとてもありがたいツールです。
がしかし、私の環境は jail 内からは一切外にコネクションを張りに行けないようにフィルタリングしており、 jail 内の監査ファイルが最新に更新されず、 Ports/Packeages の検査も意味なしになってしまいます。(監査ファイルの取得は fetch(3) を使っているため FTP or HTTP 通信です)
そのため、親環境から jail の Ports/Packages の検査をするようにしました。というメモ。
当初 410.portaudit を直接いじろうかと考えましたが、 portupgrade のたびに上書きされるのは勘弁していただきたいので、 410.portaudit をコピーして 415.portaudit_jail として追加しました。同じ /usr/local/etc/periodic/security/ に置いておけば periodic daily で実行されます。
・ /usr/local/etc/periodic/security/415.portaudit_jail
#!/bin/sh -f
# rc.conf の jail 関連設定を読み込む必要あり。
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
fi
# なければ実行不要。
if [ -z ${jail_list} ]; then
exit 0
fi
if [ -r /etc/defaults/periodic.conf ]; then
. /etc/defaults/periodic.conf
source_periodic_confs
fi
rc=0
case "${daily_status_security_portaudit_enable:-YES}" in
[Nn][Oo])
;;
*)
/usr/local/sbin/portaudit -X "${daily_status_security_portaudit_expiry:-2}" || rc=$?
if [ $rc -lt 2 ]; then
echo
echo "Checking for packages with security vulnerabilities in jail:"
echo
# jail の数だけ portaudit を繰り返し。
for i in ${jail_list}
do
echo "-- ${i} --"
eval j=\$jail_${i}_rootdir
ls ${j}/var/db/pkg | sed 's|/$||' \
| xargs /usr/local/sbin/portaudit \
|| rc=$?
done
fi
;;
esac
exit "$rc"
これで AM3:01 、親環境の periodic daily - security run output メールに結果が記述されます。多い日も安心。
ports/x11/nvidia-driver が Version 1.0-6113 になりました。(お、 Linux より番号高いね! → NVIDIA Linux Drivers Portal)
この Version からなぜかカーネルに "device agp" として build することはご法度らしく、 /usr/X11R6/share/doc/NVIDIA_GLX-1.0/README にもきちんとはずして rebuild せいよ、と書いてあります。(もしくは xorg.conf に Option "NvAGP" でもいいのかな?)
で、 rebuild せずに portupgrade nvidia-driver した私は新しい module がロードされた時点で即死(っていうか reboot )しました。 Ports でインストール完了した時点で kldload してたのね... ってか X 上でビデオドライバーモジュールのアップデートするな。
で、 device agp をはずして cvsup して build したら...
> uname -srなんですと!?
FreeBSD 6.0-CURRENT
仕事もせずに(おい)、 Cygwin をいじっていた一日。
CygTerm で PuTTy jp をコンソールにしたはいいものの、 Vim-6.3.015 でステータスラインのすぐ上にカーソルをおいて "o" をするとステータスラインの下に行挿入してしまう。なんだこれは。おもしろすぎる。 ^L すると直るけど。
コマンドプロンプトで使ってた時は問題なかった(はず)なんだけど... Tera Term Pro にしてみようか...
帰宅後のグラVは辛い。長い。集中力が持続できん。
Type-2 で行くべきか Edit-リップル で行くべきか... リップルだと 1-6 がすごく楽、でもうねるレーザーも捨てがたく。
ていうか下手すぎ。
![]()
たっはー! 買っちまいました! Sun の Ultra 5 (旧モデル製品情報) をですよ!!
前々から改造用に欲しいと思っていたのですが、当時 \30k 前後だったので諦めていました。
今日、別件で Cisco のルータとか探しにジャンク屋巡りをしようと秋葉原に。まず始め に UNIX本舗 へ行ったらこいつが特価で \10k 。もうそんなに値崩れしていたのかとショックで気を失いかけ、ふと気が付いたら「 \8k です。」と言われました。はっ!? レジ!?
※ ヤフオク でも値崩れしてますな。
で、買ったおまけに英語キーボード ( Type5c ) とマウスもあるのですが、すでに持っていたりする。う〜ん、持ってるのは新品だからそのままとっておくか...
もとは改造用として欲しかった筐体ですが、なんとなく素の Sparc で Solaris9 を動かしたい衝動にかられちぅ。
そうそう、わたしってば素の Sparc マシンを動かしたことがないんですよ。 Sun の筐体を 6台も持っていながら。全部改造用で不稼働品でしたから。
ようし、パパ Sparc マシンで Solaris 勉強して Snort も入れて生ログでハァハァしち ゃうぞ! ( この頃 の for Intel は忘れてください(汗))
BOGARD La+ 8月中頃まで一時休業とのこと。お待ちしております。
「プレミアムブック「Answer」感想」(マリア様の悪戯)
うはぁ、こいつはいけねぇ。欲しくなってきちまいやがった。
FreeBSD VuXML
FreeBSD に関する OS / Ports の Security issues リストだそうな。あぁ素敵。めもめも。 Security Officer 自らがメンテですか。アンテナかりかり。
「[FreeBSD-users-jp 80322] portaudit (was: Re: Windows 上のFTP server は insecure か?)」(FreeBSD-users-jp) より。
maidear 、 8/10 で閉店。[Hjk/変人窟 経由]
いろいろあったんだろうなぁ。と愚考するなり。
みんな〜、はやく〜!!
「読子・リードマン with Pinky:st」(Book of The Dream World)
カーッ!!! これは...
イイ!!!
Wnn7 (OMRON) の xwnmo がうちの環境で調子が悪いというのは以前書いた気がしますが、より酷い状況になったのでとりあえず kinput2 で緊急回避。楽々入力が好きなんだけどなぁ...
辞書サーバは製品版の jserver をそのまま使います。
ports/japanese/kinput2-wnn7 を入れておきませう。
またまた長くなったので追記行き。
やってることは .Xdefaults , .xinitrc の編集と kinput2 の ON/OFF キー変更、句読点での変換有効化、ってところです。
で、以下のファイルを編集しまふ。 xwnmo の指定があったらコメントにしませう。
・$HOME/.Xdefaults に追加
*inputMethod: kinput2 Kinput2*ConversionStartKeys: \ CtrlShift+Space で日本語入力 ON されるのは邪魔なので Ctrl+\ に。でもこのままでは入力 OFF は Shift+Space でもできてしまいまふ。むぅむぅ。対策は後述なのれす。backslash KTerm*VT100.kanjiMode: euc KTerm*VT100.openIm: true
・$HOME/.xinitrc に追加
export XMODIFIERS="@im=kinput2" kinput2 -wnn -wnnenvrc $HOME/.Wnn7/wnnenvrc -ccdef ccdef.kinput2.egg &ccdef は egg で。一番 xwnmo のデフォルトに近いかられす。
・/usr/X11R6/lib/X11/ccdef/ccdef.kinput2.egg の変更
> diff ccdef.kinput2.egg.orig ccdef.kinput2.egg 18d17 < "n" ' ' "ん" convert-next-or-move-top-or-sendback 60d58 < "n" shift-space "ん" end-conversion goto Hiragana 107d104 < "n" ' ' "ン" convert-next-or-move-top-or-sendback 149d145 < "n" shift-space "ン" end-conversion goto Hiragana 235d230 < "" ' ' "" convert-next-or-move-top-or-sendback 283d277 < "" shift-space "" end-conversion goto Hiragana1. Space で変換しないようにする。
・/usr/X11R6/lib/X11/ccdef/ ローマ字かな変換ルールファイルの変更
> diff rule.hiragana.egg.orig rule.hiragana.egg 238c238 < # "n" 'n' "ん" --- > "n" 'n' "ん" 240d239 < "n" 'n' "んn" 255,256c254,255 < "n" '.' "ん。" < "n" ',' "ん、" --- > "n" '.' "ん。" convert-next-or-move-top-or-sendback > "n" ',' "ん、" convert-next-or-move-top-or-sendback > diff rule.katakana.egg.orig rule.katakana.egg 238c238 < # "n" 'n' "ン" --- > "n" 'n' "ン" 240d239 < "n" 'n' "ンn" 255,256c254,255 < "n" '.' "ン。" < "n" ',' "ン、" --- > "n" '.' "ン。" convert-next-or-move-top-or-sendback > "n" ',' "ン、" convert-next-or-move-top-or-sendbackネタ元:Wnn7 + kinput2 でちょこっとキーカスタマイズしてみた(Mistral Networks)
・/usr/X11R6/lib/X11/ccdef/rule.kigou.egg の変更
> diff rule.kigou.egg.orig rule.kigou.egg 223,224c223,224 < "" ',' "、" < "" '.' "。" --- > "" ',' "、" convert-next-or-move-top-or-sendback > "" '.' "。" convert-next-or-move-top-or-sendback句読点で変換するための変更れす。これもなぜか癖になってしまいまちた。
ようやく並な日本語入力環境になりまつた。あとはなぜか mlterm 上で日本語入力できないのが納得行ってませんが、折りを見て調査していこうかと思いまつ。しないかもしれまつぇん。
ports/editor/vim (6.3系ですね)でマルチバイトの一部記号が入力できなくて鼻血出そうなのでがむばってみたのこと。
※ "「" など入力直後は表示されず、その後 Enter すると化けたようなのが出る。
あくまで作業メモなのであしからず。
で、意味もなく長くて追記行き。
事前に ports/editor/vim で make build とかして関連 port を勝手に入れさせることをお勧めします(笑)
また、前半部は勘違いによる特にやらなくても良かった KaoriYa パッチの当て方、後半部はマルチバイト取扱いに関する不具合の解消となっています。
vim online から vim-6.3.tar.bz2 , vim-6.3-lang.tar.gz を download して展開、そこにパッチファイルを全部放り込み。
そしてパッチを一気に適用。あ、シェルは tcsh で。
> tar jxf vim-6.3.tar.bz2 > tar zxf vim-6.3-lang.tar.gz > cd vim63 > wget "ftp://ftp.vim.org/pub/vim/patches/6.3/6.*" > foreach i ( 6.* ) foreach? patch -p <$i foreach? end > cd ..KaoriYa.net さんから Vim 6.3 用の差分パッケージを download してパッチ適用まで。
> tar jxf vim-6.3.012-difj.tar.bz2 > cp -Rp vim-6.3.012-difj/* vim63/ > cd vim63 > patch -p <diffs/kaoriya.diff --> -f してもいいかも恐いかも。本家の方がパッチレベル 014 だけど問題なかった模様。パッチ対象の元ファイルがないとぽろぽろとメッセージが出ますが、 MacOS 用とか Windows 用とかそれ系のソースを入れてないだけなので問題なし。
> chmod +x kaoriya.configure > ./kaoriya.configure > make > make installおし。では早速テストしてみようじゃぁないか。
> rehash > vim挿入モードに入って... をぉメッセージが日本語だ。どぅれ、 "「" を入れて、と。
...ほえ?
えぇっと、もっかい、 "「" を入れて、と...
...ほえ?
...
...おぉう。諸君。我々は(ってお前だけ)壮大な勘違いをしていたようだ。
KaoriYa パッチは
日本語を扱う上で便利な設定やスクリプトが追加されています。だって書いてあるじゃん。マルチバイトで動作不具合の解消なんて一っ言も書いてないじゃん。
FreeBSD ports-jp のメールログから [ports-jp 14670] mblen() used in vim を発見、
> diff -crN mbyte.c.bak mbyte.c *** mbyte.c.bak Sun Jul 25 00:51:03 2004 --- mbyte.c Sun Jul 25 01:22:19 2004 *************** *** 657,663 **** * where mblen() returns 0 for invalid character. * Therefore, following condition includes 0. */ ! if (mblen(buf, (size_t)1) <= 0) n = 2; else n = 1; --- 657,663 ---- * where mblen() returns 0 for invalid character. * Therefore, following condition includes 0. */ ! if (i >= 0x80) n = 2; else n = 1;のパッチを当てて問題なく動いたのこと。ありがたや... そして快適。
ports のビルド時に自動でローカルのパッチファイルを当てる設定があったような気がす
るんだけどなぁ... どっかで見た気がするんだよなぁ...
はふ〜。
「東京都心、史上最高の39.5度 千葉・市原40.2度」(asahi.com)
ビル停電で季節を感じた。う〜ん、風流。
と人ごとのように思っていたら、 (株)シーマン 無料サーバー監視サービス から警告メール。
む。 sshd は開けてないからわからん。
で、ご帰宅即調査。
公開サーバの httpd がじゃんじゃかお亡くなり。今日の 10:40 頃から見えなかったようです。申し訳ないです。
ハードウェア的には問題なく、 sshd も動いてる、ログには何も出ておらず... /bin/ps で見ると SsJ のみ残ってた。これでは今までの自作強制再起動スクリプトでは利かないわ...
ってなわけでちょいと手直しして、
#!/bin/shで cron 仕込み。ゾンビが 2匹以上、もしくはセッションリーダー以外が 1 以下なら強制 restart ってことでひとつ。 /bin/ps の仕様、よくわかってません。テストしてません。っていうかこんなスクリプトが必要な状態ってことがおかしい。あぁおかしい。
JID=`jls | grep "www" | awk '{ print $1 }'`
COUNT_ZOM=`ps -axwww | grep ZWJ | grep httpd | wc -l | awk '{ print $1 }'`
COUNT_PRC=`ps -axwww | grep SJ | grep httpd | wc -l | awk '{ print $1 }'`
THRESHOLD_ZOM=2
THRESHOLD_PRC=1
if [ $COUNT_ZOM -ge $THRESHOLD_ZOM -o $COUNT_PRC -le $THRESHOLD_PRC ]; then
jexec $JID /usr/local/etc/rc.d/apache2.sh restart 2>&1 /dev/null
fi
お。復旧通知メールが来た。
sshd 開けるかぁ...
python が exited on signal 6 してた件(この日)は /etc/libmap.conf に、
libc_r.so.5 libpthread.so.1 libc_r.so libpthread.soと書けば良いだけであり、 /usr/src/UPDATING にしっかり書いてあり、シテオク。
久しぶりに動いたのでとても嬉しかったりするのはやはりだめすぎであると思われ、ぐんにょり。
突然タイトルな状態になってびっくりしたのでメモ。
> gs hogehoge.psとか何度も何度もこれでもかと言われてしまった場合、 /usr/local/share/ghostscript/7.07/lib/CIDFnmap を確認。
Can't find (or can't open) font file /usr/local/share/ghostscript/Resource/Font/Ryumin-Light-EUC-H.
(CIDFnmap.jp) .runlibfileという行がなければ入れなさい。 > わたし
というわけで、 ghostscript を portupgrade したときは CIDFnmap & CIDFnmap.jp の中身を確認しやう > わたし
pkgtools.conf をまじめに勉強する頃かもしれづ。
「Vim 6.3 リリース」(/.jp)
6.2.531 の頃からマルチバイトの扱いがおかしくなってる気味。 6.3 も試したら同様。 "、" とか "「" とか入力すると変なことになる。マルチバイト文字上をカーソル移動させると漢字・カタカナは一文字移動するのに 2回入力、ひらがなは 1回で OK 。(一部きちんと判別してる漢字もあるようで...)
※私はマルチバイト処理に関して根本的に分かってません。
最近は jvim3 で逃げてます。ってか vim の最新機能なんて全然使ってないから大差ないといえばない。
同記事のコメントで Ctrl + [ 入力は Esc と同機能ということを知り、さらに手を伸ばさなくて楽になったのでちょっと嬉しい。
ports/www/apache2 が 2.0.49_2 になった際に こうなった ので /etc/rc.conf に
apache2_enable="YES"を追加したのこと。
apache2ssl_enable="YES"
[pgsql-jp: 33045] シーラカンス本第4版(pgsql-jp ML) にて告知。
「「改訂第4版・PostgreSQL 完全攻略ガイド」サポートページ」
シーラカンスフィギュアが予約特典だそうな。もう迷わず予約してしまいました。いつ読むのかは知らんが。
CASIO のラベルプリンター KL-E20 が FreeBSD から使えんもんかと探していたら、 eggprint を見つける。んが、 KL-E11 には対応するがうちので動くか分からない。 CASIO のコマンド仕様書を読んでみると、印字用のイメージメモリの有り無し(イメージデータの格納形式が違う)、プリンタヘッドの印字幅が違う、とかちょこちょこ違う。いじるしかないかなぁ。 C言語知らないんだよなぁ(え?
あ。 VFlib 使ってるのか。 ttf 直接読めないかなぁ。
とソースをつらつらと眺めていた日。雨だしね。
FreeBSD 5.X-CURRENT の /etc/master.passwd で bin とか www のシェル指定が /sbin/nologin から /usr/sbin/nologin になったのはどぅいぅことなんだろぅと思いつつもう寝る。
A5502K で撮ったでかい画像がメールできないのかよ!
ってことで バッファロー の MCR-MINISD を買った。これは小さい。
もちろん FreeBSD(CURRENT 2004/3/4) で使うわけです。メディアを挿した状態で挿して dmesg 。
umass0: Alcor Micro Mass Storage Device, rev 1.10/1.00, addr 3 umass0: Get Max Lun not supported (STALLED) da4 at umass-sim0 bus 0 target 0 lun 0 da4:usbdevs -v 。Removable Direct Access SCSI-0 device- da4: 1.000MB/s transfers da4: 14MB (29120 512 byte sectors: 64H 32S/T 14C)
Controller /dev/usb0: addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00 port 1 powered port 2 addr 2: full speed, self powered, config 1, USB2.0 Hub Controller(0x0058), NEC Corporation(0x0409), rev 1.00 port 1 addr 3: full speed, power 50 mA, config 1, Mass Storage Device(0x9330), Alcor Micro(0x058f), rev 1.00
全く問題なし。
/usr/ports/UPDATING 内の 20040204: にて、
portupgrade -o lang/perl5.8 -f perl-5.6.1_15 portupgrade -f p5-\*とあるが、これだと japanese/p5-Jcode や japanese/p5-nkf が portupgrade のグラブに引っ掛からないので、
portupgrade -f \*p5-\*の方がいいと思った次第。
MovableType が動かなくて焦った(笑)
-t hogehoge
仮のルート環境ディレクトリを hogehoge に指定。
-D hogehoge
出力先ディレクトリを hogehoge に指定。
hogehoge/etc とか書きたいところだけどそれはちがう。
ってわけで親環境 Single User Mode で installworld 後に 親/jail環境 mergemaster をまとめてできるようになってパパ納得。わざわざ mergemaster のためだけに jail 立ち上げてたのがばかみたい。
ってわけで(にかいめ) ここらへん 更新。
「FreeBSD-SA-04:04.tcp」
「III. Impact」を Excite の テキスト翻訳 に通したら比較的分かりやすい翻訳をしてくれて感動したのでコピペ。
遠隔の攻撃者は、TCP(HTTP、SMTPおよびFTPを含む多くのそのようなサービスがあります)に基づいたというわけであぷだてしちぅ。
サービスを提供する機械に対する低い帯域幅のサービスの否認の攻撃を行なってもよい。多くのシー
ケンス外TCPセグメントを送ることによって、攻撃者はシステム衝突に恐らく結びついて、目標機械
に利用可能なメモリ・バッファー("mbufs")をすべて消費させることができます。
まとめてメモ。追記行き。
全然調整してないけどそこはそれ。
/usr/ports/www/analog で make install clean 。
/usr/local/etc/analog.cfg のレポート機能をがしがし ON 。
標準の analog.cfg に以下を追加。
HOSTNAME "てきとーなホスト名" # 統計のタイトル・ヘッダーで使用 HOSTURL "解析対象のURL" # "HOSTNAME" の <a> タグで使用 LANGUAGE JAPANESE-EUC HOSTEXCLUDE 集計対象外のホスト名かIPアドレス FILEEXCLUDE *.jpg,*.gif,*.png,*.css,*.cgi # 集計対象外のファイル拡張子 ARGSEXCLUDE /*/*.cgi # 対象の引数を無視 CHARTDIR /admin/ # 円グラフ置き場の URL LOCALCHARTDIR /usr/local/www/admin/ # 円グラフ置き場のファイルシステムパス DNS WRITE # DNS 検索とキャッシュ更新の指定 DNSFILE /usr/local/etc/dnscache.txt # DNS キャッシュファイル DNSLOCKFILE /tmp/analog_dnslock # キャッシュのロックファイル DNSGOODHOURS 720 # 検索結果の保持(信用?)期間 # 〜〜これ以下は参考リンク「analog 5.32 on FreeBSD 5.2」そのまま。〜〜 GENERAL ON # General Summary 全体の概要 YEARLY ON # Yearly Report 年別レポート QUARTERLY ON # Quarterly Report 4半期別レポート MONTHLY ON # Monthly Report 月別レポート WEEKLY ON # Weekly Report 週別レポート DAILYREP ON # Daily Report 日別レポート DAILYSUM ON # Daily Summary 曜日別集計 HOURLYREP ON # Hourly Report 時間別レポート HOURLYSUM ON # Hourly Summary 時間別集計 WEEKHOUR OFF # Hour of the Week Summary 時 QUARTERREP OFF # Quarter-Hour Report 15分間隔レポート QUARTERSUM OFF # Quarter-Hour Summary 15分間隔集計 FIVEREP OFF # Five-Minute Report 5分間隔レポート FIVESUM OFF # Five-Minute Summary 5分間隔集計 DOMAIN ON # Domain Report ドメインレポート ORGANISATION ON # Organisation Report 組織別レポート HOST ON # Host Report ホストレポート FAILHOST ON # Host Failure Report ホスト不成功レポート FAILHOSTFLOOR 0r # ホスト不成功レポートを省略せずに… FAILREF ON # Failed Referrer Report リンク元URL不成功レポー> ト REFERRER ON # Referrer Report リンク元URLレポート REFFLOOR 0r # リンク元URLレポートを省略せずに… REFREPEXCLUDE http://www.mass.dnsalias.com/* REFSITE ON # Referring Site Report リンク元サイトレポート REFSITEFLOOR 0r SEARCHQUERY ON # Search Query Report 検索語句レポート SEARCHQUERYFLOOR 1r SEARCHQUERYCHART OFF SEARCHWORD ON # Search Word Report 検索単語レポート SEARCHWORDFLOOR 0r SEARCHWORDCHART OFF BROWSERREP ON # Browser Report ブラウザレポート BROWSERSUM ON # Browser Summary ブラウザの概要 BROWSUMFLOOR 0p # ブラウザの概要を… OSREP ON # Operating System Report OSレポート STATUS ON # Status Code Report 状態コードレポート SIZE ON # File Size Report ファイルサイズレポート FILETYPE ON # File Type Report ファイル種類別レポート TYPEFLOOR 0b # ファイル種類別レポートを… DIRECTORY ON # Directory Report ディレクトリレポート DIRFLOOR 0b # ディレクトリレポートを… FAILURE ON # Failure Report リクエスト不成功レポート REQUEST ON # Request Report リクエストレポート REQFLOOR 0r # リクエストレポートを…サーチエンジンから来た場合の検索語の文字化けを解消するために postanalog を入れる。その前に同ツールが perl で use NKF; なので、 /usr/ports/japanese/p5-nkf を make install clean 。
/usr/local/bin/analog | /usr/local/bin/postanalog -i > /usr/local/www/admin/analog.htmlで analog.html をきちんとブラウザで表示できれば OK 。
10 0 * * * 実行ユーザー名 /usr/local/bin/analog | /usr/local/bin/postanalog -i > /usr/local/www/admin/analog.html 2>/dev/nullを追加して(実行時間は適当に、一行で書く)、 cron に SIGHUP 送るのだ。
参考リンク:
「analog 5.32 on FreeBSD 5.2」(Welcome to TAKE-LABO)
「postanalog:ログ解析analog用ポストプロセッサ(日本語検索語解析)」(テクニカルファシリテータ i16(愛一郎) .jp)
今日は手伝いをしつつ読書。

FreeBSD Expert 2004 技術評論社編集部
初心者から中級者まで何かが多い日も安心。
わーい、ぼくも Nessus 入れてみよー!
で不正アクセスで捕まっちゃうのー! もがもが。
「ディスクが BIOS から認識しなくても諦めるな!」(不定期性写真日記)
こういう尋常じゃない力業ができるのもいろいろな環境で鍛えているからなんだろうなぁ。素直に尊敬です。
やっぱりバックアップはとっておけ、ということで。 > 自分
突然とち狂ってモバイルで Blog 更新だだだという気分になってしまった場合にパスワードが平文で流れるのは気分が悪いので管理画面を SSL にするのこと。でも SSL とかさっぱりなのでやっぱりパクっていいとこどりするいやなやつ > mass
あまりに長くなったので「追記」行き。
前提:
FreeBSD 5.X-CURRENT で Ports から apache2 をインストールしていること。
DocumentRoot とか cgi-bin とかの位置はデフォルトのまま。
# cd /usr/local/etc/apache2/ # mkdir ssl.key ssl.crt
# openssl genrsa -des3 -rand /var/log/httpd-access.log -out ssl.key/server.key 1024 15249751 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus ...............................................++++++ ..........++++++ unable to write 'random state' e is 65537 (0x10001) Enter pass phrase for ssl.key/server.key:<てきとーなpassphrase> Verifying - Enter pass phrase for ssl.key/server.key:<もっかいpassphrase>途中で妙なメッセージが出てるけど私は気にしません。
# openssl req -new -key ssl.key/server.key -out server.csr Enter dpass phrase for ssl.key/server.key:<秘密鍵のpassphrase> You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:JP ← 日本在住の方ならこれで。 State or Province Name (full name) [Some-State]:[てきとーな都道府県名] Locality Name (eg, city) []:[てきとーな市区町村名] Organization Name (eg, company) [Internet Widgits Pty Ltd]:[てきとーな組織名] ← サイト名とかで良いかも。 Organizational Unit Name (eg, section) []:[てきとーな部署名] ← ネタにつまったら空欄でも可 Common Name (eg, YOUR name) []:[WWWサーバのFQDN] Email Address []:[管理者のメールアドレス] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: ← 入力不要 An optional company name []: ← 入力不要せっかくの自己認証なのでばか正直に答えちゃいけません! ここがあなたのセンスの見せどころなのです!!(なぜだ)
# openssl x509 -req -in server.csr -signkey ssl.key/server.key -out ssl.crt/server.crt -days <証明書有効日数> Signature ok subject=/C=JP/ST=[てきとーな都道府県名]/L=[てきとーな市区町村名]/O=[てきとーな組織名]/OU=[てきとーな部署名] /CN=[WWWサーバのFQDN]/emailAddress=[管理者のメールアドレス] Getting Private key Enter pass phrase for ssl.key/server.key:<秘密鍵のpassphrase> unable to write 'random state'また妙なメッセージが出ていますが、また気にしません。
| CSR | /usr/local/etc/apache2/server.csr |
| サーバ証明書 | /usr/local/etc/apache2/ssl.crt/server.crt |
| 秘密鍵 | /usr/local/etc/apache2/ssl.key/server.key |
# vim ssl.conf ServerName <WWWサーバのFQDN>:443 ServerAdmin <管理者のメールアドレス> SSLCertificateFile /usr/local/etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/etc/apache2/ssl.key/server.key → apache2 のデフォルト設定。 鍵、証明書ともこれにあわせると手間が減ります。
# /usr/local/sbin/apachectl startssl Apache/2.0.48 mod_ssl/2.0.48 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide us with the pass phrases. Server www.mass.dnsalias.com:443 (RSA) Enter pass phrase:<秘密鍵のpassphrase> Ok: Pass Phrase Dialog successful.エラー無く起動したなら、ブラウザで https://<WWWサーバのFQDN>/cgi-bin/mt/mt.cgi にアクセスしてみましょう。
AdminCGIPath https://www.mass.dnsalias.com/cgi-bin/mt/これを追加しないと、ログアウトした後のログイン画面が非 SSL 画面になってしまいます。それ以外にも不都合があるかも...
# cd /usr/local/etc/apache2/ssl.key/ # mv server.key server.key.bak # openssl rsa -in server.key.bak -out server.key Enter pass phrase for server.key.bak:<秘密鍵のpassphrase> writing RSA keyこうすると次回以降、パスフレーズなしで起動できます。本当は望ましくないのかも知れませんが...
---- 2004/9/17 追記。
月日の経つのは早いもので、半年などあっと言う間です。この記事を書いた当時はゲームやアニメ三昧でのんべんだらりと日々をすごし、周りからは「いい加減働いてください。」「だめ人間ですね。」「何のために生きているのですか。」「いまならひっそりと死ねますよ。」などと言われながら働き口を探していたような気がなんとなくします。(後半 は恐らく被害妄想)
そのときに作ったサーバ証明書も作成時に指定した 180日という期限がやってきました。このままでも個人的に実害はないのですが、「いちいち出るウインドウがうざってぇんだこんちきしょうめぇ」ということで日付だけ更新しました。
# cd /usr/local/etc/apache2 # openssl x509 -req -in server.csr -signkey ssl.key/server.key -out ssl.crt/server.crt -days 180 # /usr/local/etc/rc.d/apache2.sh restartまた 180日に設定したので、また 180日後に更新する必要があります。(や、しなくてもいいんですが。)
---- 2005/3/16 追記。
また更新すた!!
#jail_example_devfs_ruleset="123" # devfs ruleset to apply to jail これが... #jail_example_devfs_ruleset="ruleset_name" # devfs ruleset to apply to jail これに。気づいた理由は昨日 mergemaster したから。
# pkgadd intcgigae.pkg # touch /reconfigure # shutdown -y -g0 -i6で、どうも ifconfig -a で出てこない。 ifconfig e1000g0 plumb なんぞ no such interface と言われる。man をよみよみしていたら、こんにゃろう内蔵NICの関係か、 instance number がずれてやがる。
# ifconfig e1000g1 plumbきた!
# touch /etc/dhcp.e1000g1 # echo [hostname] > /etc/hostname.e1000g1でリブート。で、 IPアドレスはもらえたものの、 Hostname : unknown ってなんだよ。google で DHCPサーバとクライアントの管理 (Running System V) というページに導かれる。そうか、 DHCP サーバの実装の問題か。確かに /etc/init.d/ で "unknown" で grep すると変なのが出てくる。で、
# diff /etc/inetsvc.orig /etc/inetsvc 158c158 < hostname=`/sbin/dhcpinfo Hostname` --- > hostname=`/bin/cat /etc/nodename` # diff /etc/network.orig /etc/network 810c810 < "dhcp") hostname=`/sbin/dhcpinfo Hostname` ;; --- > "dhcp") hostname="`shcat /etc/nodename 2>/dev/null`" ;;のように強引に Go 。 /etc/network 内では /bin/cat だと not found とな。これで無事、 DHCP による IPアドレスの取得とホスト名の設定が完了。
うむ。何やら挙動がおかしいと思ったら filesystem full だった。
mozilla が起動しない。と思ったら 1.6 が正式リリース のようなのでとりあえず build ちぅ。
しょうがないから w3m で blog を更新しよう。と思ったら記事投稿はできるが rebuild されない。 mozilla の build を待つか。
と w3m を使っていたら、タブ機能があることに気付く。キーボードオンリーの操作系と相まってなかなか使い易い。これはくせになりそう。
と mozilla の build が終わった。問題なく起動するようだ。
w3m よ。お前は良い奴だった。
メールいただいた いつきさん 、ありがとうございました。心の奥底から激しく感謝しております。もう激しく感謝しすぎて目の前のわたおにのフィギュアに(以下自粛)
というわけで、 devfs in jail。 を更新しました。
「KDEから日本語ロケールが消える可能性あり」(/.jp)
しばらく前まで KDE (日本KDEユーザ会) を使ってましたが、とにかく重い。起動に時間がかかる。
で、ふとした拍子に XFce (XFce Wiki) を使ってみたら、動作が軽いし自分的に必要な機能は揃っているし。で、さくっと乗り換えちゃいました。起動時間も10分の1。
最近 Kuser ML の流量がほとんど無くなってたので、やばそうだなぁ... とは感じていましたが...
「MySQLコマーシャルライセンス早分かり」(株式会社 ソフトエイジェンシー) [[pgsql-jp: 32107] Re: PostgreSQL の優位性 againstMySQL (日本 PostgreSQL ユーザ会)]
ほぅほぅ。 MySQL でコマーシャルライセンスを回避したければ、
・開発ソースコードを再配布する。
・その改変と再配布を無制限許可する。
なのね。だったら BSD ライセンスの PostgreSQL の方が費用面で有利だなぁ。
関連リンク(IT用語辞典 e-Words):
「BSDライセンス」「GPL」
技術資料を本棚から取ろうとしたときに、マリみての文庫本が並んでて取れなかったときー。
ちなみに取ろうとしたのはこれ。

sed & awk プログラミング
UNIX でスクリプト組むなら必携。絶対。
マリみてとどっちを取るかって言われたらもちろんマうわなにをするやめConnection to www.mass.dnsalias.com closed.
当サイト、自前でサーバを立てておりますが、よく止まります。
ハードウェアの調子が悪いわけでなく(作りは怪しいが)、停電が起きてる訳でもなく(UPS入れてます)、 apache のプロセスが zombie になってしまうのですな。今日も自宅に帰ってきたら zombie さんが湧き出ていたわけであります。週一くらいのペースかな?
いつもだったら手で apache を再起動していたのですが、なぜか今日はむかっ腹が立ったので急拵えのスクリプトを cron に仕込んで回避するようにしてみました。
Fail time は最長で 304秒程度になるはずです。
いつも申し訳ありません。
常日頃申し訳ありません。
根本的な解決でなくて申し訳ありません。
「[FreeBSD-users-jp 78029] sysctl hw.model を教えていただけませんか ?」(FreeBSD-users-jp)
まだアーカイブ化されてなかった...
ぼくのメインマシンは〜
5.2-CURRENT 2003/12/29 CVSup:
> sysctl hw.model
hw.model: Intel(R) Xeon(TM) CPU 2.40GHz
> dmesg | grep CPU:
CPU: Intel(R) Xeon(TM) CPU 2.40GHz (2400.09-MHz 686-class CPU)
P-4 Xeon 二つだよぅ...
Solaris9 作業記録〜。
Intel® PRO/1000 T デスクトップ・アダプタが認識できなくて困りました。
Solaris 用の Driver をダウンロードして、
# pkgadd intcgigae.pkg
で、質問にはいはいはいはい、
# devlinks
# touch /reconfigure
# shutdown -y -g0 -i6
ってやっても dmesg に e1000g なんて出てこないのよ。
> prtconf -Dv
には "pci8086,1112 (driver name: e1000g)" なんて出てくるんだけど。
精進が足りんのぅ。
grep 使おうとして -r オプションがないことを知ってびっくりする。 ps 使おうとして -x オプションがないことを知ってびっくりする。(なら GNU 版を入れろ > おれ。)
FreeBSD にべったりすぎて他の OS で通用しないことを痛感する。
(つД`)うわぁぁん...
参考にさせていただきました。:
Solarisのインストール (次世代情報都市"みらい")
memo (MARUYAMA Hiroshi personal page(Japanese page))
フォントの老舗、「株式会社 モトヤ」から新フリーフォント公開のお知らせが来た。モトヤアポロ1 だそうな... をぉ、明朝体風のフリーフォント来たーーー!! (← その程度の認識。)
ゴシック体の モトヤシーダ と併せて使えば、個人で使う分には不自由はないかと。
東風フォントの公開・開発終了。品質の良いフリーフォントは出てこないものかと首を長くして待っていました。(← 自分で開発に参加しようという意思はない。)
※や、みかちゃんフォントという手もありますが。
モトヤさんのフリーフォント、再配布は一切不可というのがさみしいところ。ディストリビューションに同梱もできませぬ。まぁ、開発に莫大な労力が必要だからねぇ... しょうがないよねぇ... ねぇ...
だめ? > モトヤさん
フリー(かもしれない含む)フォント関連のリンク:
株式会社 モトヤ
みかちゃんフォント開発者のサイト
あくあフォント開発者のサイト & あくあフォント推進委員会
東風フォント開発者のサイト & 東風フォント代用品開発サイト
みかちゃん と あくあ はかなり緩やかなライセンスやね。
というわけで早速。症状変わらず。はふはふ。
相変わらず xwnmo → XIMフォーカスの当るアプリ の順で起動し、そのアプリを終了すると xwnmo が "exited on signal 10 (core dumped)" でお亡くなりになる。
ちくせぅ、こうなればオムロンに殴り込みしかござらぬ!!
...やっぱり SMP が関係しているのだろうか。
アップデートに期待していただけに、ちと辛いわ...
また報告しよう...
ちなみに商品ページはこちら → Wnn7 Personal (オムロンソフトウェア(株))
IE 起動して〜。 blog 管理ページでエントリーの新規追加〜。
漢字変換しようとして〜。 [Ctrl] + [W] したら〜。
ウィンドウ閉じてんじゃねぇっ > IE 。
や、 xwnmo (Wnn7) の変換キーが [Ctrl] + [W] なんすよ。
もうそれに体が慣れちゃっててね。
MS-IME向け に xwnmo のキーマップってパッと割り当てできないのかな?
暇なときにでも探してみよう。
で、エントリー追加して「保存」するとなぜ IE 様は
「ページを表示できません」
などとおっしゃられますか?
しかもしっかり保存されてるし。再構築はされてないし。