ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

FreeBSD

ezjail の正しい更新手順?

ezjail を使って仮想環境をたくさん管理してる人は多いと思います。 が、システムの更新を行う際の手順があまりまとまっていないのでまとめておきます。まずは、作業前のバージョンを覚えておきます。 $ uname -r 11.1-RELEASE-p4 なるほど。んで、freebsd-u…

ディスク破損でシステムファイルが壊れたら

いまだに HDD を使ってる人もさすがにいないと思いますが、 自宅のサーバが HDD で、ついに壊れました。あらら。んで、不良セクタにぶち当たってシステムファイルが破損してしまいました。 常にバイナリアップデートしていれば、freebsd-update コマンドで検…

FreeBSD 12.0-R に上げた話

NO_PROFILE はもう古い warning: "NO_PROFILE is defined, but deprecated. Please use MK_PROFILE=no instead." だってさ。指示通り MK_PROFILE に直しましょう。 diff コマンドが BSD diff に置き換わった side-by-side 表示ができなくなったのでツラい。 …

namecoin を動かしてみた

めっちゃハマって動かすのに一晩かかったのでメモを残しておく。 以下の pkg をインストールする autoconf automake boost-libs git-lite gmake libevent libiconv libtool pkgconf git で最新版のソースコードを拾ってくる # git clone https://github.com/…

ipfw と completely duplicate packets

netstat -s -p tcp で TCP のプロトコルスタック統計が見られます。 その中の項目、「completely duplicate packets」。 こっちから送った ACK が落ちたときに、 向こうからパケットが再送されてカウントされるものです。 せっかくなので MRTG でグラフ化し…

mrtg で rtt をグラフ化する

サーバのネットワークの安定性を見たくて、RTT (round-trip time) を MRTG でグラフ化してみました。1.ping 結果をロギングするこんなスクリプトを作って... #!/bin/sh ping -c 290 8.8.8.8 > /tmp/ping/$$.log /bin/mv /tmp/ping/$$.log /tmp/ping/last.l…

daily security run output メールの link state changed がうるさい!

前々から思っていたんですが、このメッセージがやかましくて 重要な情報を見落としかねないんですよね。 かといって、kernel log messages 自体を無効化するのは危険。 何か重要なこと言ってる可能性があるから、見てはおきたい。 そこで、このメッセージだ…

10.3-R にしたら、CPU 周波数が下がらなくなった!?

いつの間にか FreeBSD 10.1-R の EoL が過ぎていたので(ぉぃ このたび、10.3-R へとマイナーバージョンアップをしました。 そしたら、MRTG で監視している CPU 周波数がやたら高い。 なんか高い。 ほとんど負荷がかかってないのに高い。 powerd が動いてな…

DNSSEC 導入

いつの間にか Tucows が gTLD の DNSSEC に対応していたので、 手元の実験用ドメインで導入してみました。 まずは鍵リポジトリを作ります。 $ cd /usr/local/etc/namedb $ sudo mkdir keys KSK のロールオーバーは来年考えることにしてとりあえず作成。 末尾…

soft-updates のバグがようやく治った?

問題は id:Hossy:20141230:p1 の通り。 このたび、ようやく修正パッチがコミットされた様子。[base] Revision 280760 4/10 付でめでたく 10.1-R へのマージも行われた様子。[base] Revision 281350 あとは freebsd-update に降りてくるのを待つだけっぽい。

ezjail 環境から ping を送れなくなった件

昔は、ホスト環境の /etc/sysctl.conf に一行書き足して再起動すればよかった。 security.jail.allow_raw_sockets=1 …が、いつの間にかこれじゃダメになっていたという話。 最近のバージョンだと ezjail 環境の設定ファイルを編集するのがたぶん一番スマート…

add_dyn_rule: Cannot allocate rule

システムログにこんなメッセージがぽつぽつと。 ipfw のダイナミックルール用のバッファが足りなくなっているみたい。 本家 send-pr でも指摘されていて、バッファのデフォルト値を増やした様子。 193300 – Improve "ipfw: add_dyn_rule: Cannot allocate ru…

10.1-R で変わったところ

これまで periodic で送られていたメールには、 daily, weekly, monthly, security の4種類がありましたが、 最近は daily, weekly, monthly の3種類はそのままで、 security の内容を項目単位で、どの頻度で実行するか選べるようになった様子。 たとえば、/…

10.1-R でハマった話 (3) - jail のホスト名

10.1-R に上げた途端、ezjail の仮想マシンからメールが送信できなくなりました。 どうにもおかしいと思って調べたら、いつの間にか仮想マシンのホスト名が変わっているようでした。 仮想マシンのホスト名は、それぞれの /etc/rc.conf に書いて設定していた…

10.1-R でハマった話 (2) - BDB の更新

だいぶ前から認証周りを OpenLDAP に統合していたのですが、 いつの間にか db46 パッケージが消えてることに気付く罠。 仕方がないので一番古い db48 パッケージを入れて openldap-server をビルド。 ...うん、立ち上がらないね!(笑顔 なんだよ「Program v…

10.1-R でハマった話 (1) - soft-updates のバグ

なんか、soft-updates がバグってるらしい。 詳細は公式の bugzilla に。 195458 – Hang on shutdown/root unmount after FreeBSD 10.1R upgrade 要約するとこんな感じ。 10.1-R に上げたら最初のリブートでフリーズしたよ! 最後の行は「All buffers synced…

手元のクリップボード経由でファイルをコピーする

2つの FreeBSD 環境があって、 .cshrc みたいなちょっとしたサイズのファイルをコピーしたいとき、 わざわざ HTTP アクセスできるところにコピーするのも面倒だし、 あまり外部に置きたくないファイルの場合もあります。 そんな場合は、gzip で固めて uuenco…

さくらVPSでシリアルコンソールを使う

先日書いた通り、Java6 をインストールしないと、 (普通の方法では)コントロールパネルにあるリモートVNCを使うことができません。 そして、自分でトンネルをはる方法はいささか面倒です。 そこで、FreeBSD のインストールだけは仕方なくトンネルをはり、 …

ブートローダを探検してみた

プロローグ PC の電源を入れると、まずは BIOS が走っていろいろします。 この辺りは FreeBSD じゃないのでさっくりと飛ばして…… BIOS のブート優先順位に従って「HDD0!君に決めた!」となると、 HDD0 の第0セクタを、メモリの 0x7c00 から1セクタ分(512By…

MBR 形式のディスクのデータ

MBR の構造 MBR は HDD の第0セクタにあります。 # dd if=/dev/ad0 of=tmp.bin iseek=0 bs=512 count=1 # hexdump -Cv tmp.bin 00000000 fc 31 c0 8e c0 8e d8 8e d0 bc 00 7c be 1a 7c bf 00000010 1a 06 b9 e6 01 f3 a4 e9 00 8a 31 f6 bb be 07 b1 000001…

ezjail 仮想マシンで実行する (2)

id:Hossy:20110627 これのバージョンアップ版です。 マシン名を . にするとホストマシンで実行します。(=sudo) $ jsudo . hostname host.example.net マシン名を / にすると全仮想マシンで実行します。 $ jsudo / hostname host.example.net jm1.example.…

DIAGNOSTIC を付けると nullfs で panic するバグ

これを踏みました。 DIAGNOSTIC を付けるとデバッグ用に各種診断コードが挿入されますが、 nullfs 内で、false positive が発生しているようです。 http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/141091対策パッチは send-pr されている通り、診断コード…

loader.conf で ukbd.ko を読み込むと起動しないバグ

/boot/loader.conf に ukbd_load="YES"と書いておくと、GENERIC カーネルでも起動しなくなるバグを踏みました。 @FreeBSD 7.4-RELEASE-p1 http://www.freebsd.org/cgi/query-pr.cgi?pr=usb/125736 既に send-pr されてますが、7 系にはパッチがあてられてい…

snmpd のセキュリティ

mrtg でグラフ化するために snmpd を走らせてましたが、 デフォルトのままだとプロセス一覧とかディスク一覧とかいろんな情報がダダ漏れ状態なので、 リードオンリーとは言えセキュリティ的にちょっと... なのでその辺をきちんと設定。 /usr/local/share/snm…

snmptrapdって?

net-snmp をインストールすると一緒に入る snmptrapd。 snmp trap メッセージを受信してログを記録したりメールしたりしてくれるものらしい。 私は mrtg でグラフ化したいだけだから要らないや。。。 というわけで無効化。 #snmptrapd_enable="YES"

ntpd の Listen アドレス

FreeBSD 標準の ntpd は問答無用で 255.255.255.255 で Listen してしまいます。 ezjail などでマルチホストにしてると警告が出たりして面倒。 回避策を探してみたけどソースコードに手を加える必要がありそうなので、 諦めて OpenNTPD に逃げ。こちらは Lis…

ezjail 仮想マシンで実行する

したかったこと。 $ cd /usr/jails/pub/usr/local/ $ jsudo pwd /usr/local $ jsudo etc/rc.d/apache22 status apache22 is running as pid 2575.もしくはホームから直接。 $ cd $ jsudo /usr/jails/pub/usr/local/etc/rc.d/apache22 status apache22 is run…

PHP のバグ再来

詳細はここに。パッチもここに。 http://bugs.php.net/bug.php?id=52797 簡単にいえば、char* をそのままコピーしてしまったバグです。 strdup などを作って新規領域にコピーするのが正しいコーディング。 典型的な double free のバグですね。 いつになった…

OpenVPNのインストール

OpenVPN を port からインストールすると、自動でmake testが走ります。 test してくれるのはいいんですが、ipfw などで使わない UDP パケットを drop しているとテストが通りません。 今までは一時的に UDP を通すルールを追加して pass していましたが、 O…

ezjail で jdk を使うとき

http://d.hatena.ne.jp/Hossy/20090920 に書いた通り、jdk をコンパイルする時に procfs が邪魔になります。 ezjail なら、/usr/local/etc/ezjail/NAME ファイルに procfs の設定があるので、 -export jail_NAME_procfs_enable="YES" +export jail_NAME_proc…