2007年8月27日月曜日

[ports] lang/jruby

今月初め頃、
lang/jruby はshebang 行をbash にしないとダメではないのかなー
とおもってその旨 MAINTAINER に直接メルしてみたものの、音沙汰なし・・・orz..

ちょっと見てみたら、こないだ修正されていた。ひょっとして気づいてくれたのだろうか。

どこに報告するのが正しい手順だったのかな、、、うーむ。
ドキュメント漁っておくか。

2007年8月26日日曜日

VMware Fusion

Parallelsに不満はないけども
VMware Fusion を試してみることに。
以前 windows 版 workstation を買うときに作ってたアカウントで
30日間の評価版をぽちっとな。

仮想化万歳。

2007年8月25日土曜日

[Mac OS X] ExposéやらDock

前 iBook G4 使ってたときに気づいたこと。
shift を押しながら操作するとまたーりとした動作になる。

これってマニュアルの類に載ってたのかな。

[FreeBSD] cached

ちょっと前、「名前解決がおかしい」というのを skype でやりとり。
なんだろなーと思ったら、NSCDを再起動したら解消したとのこと。

FreeBSD にはそういうの(名前解決のキャッシュ) ない、、よなと思ってたけど、
7-CURRENT には cached とゆーのが入っていた。
SoftwareDesign9月号を見てて気づいた。。

Google Summer of Code 2005 の成果物っぽい。

2007年8月18日土曜日

[FreeBSD] man pthread

thread programming てものはできない、しないんだけど。
libc_rの記述が無くなってたことに気づいた。

6.2-RELEASE:
(snip)
LIBRARY
POSIX Threads Library (libpthread, -lpthread)
1:1 Threading Library (libthr, -lthr)
Reentrant C Library (libc_r, -lc_r)
(snip)
INSTALLATION
The current FreeBSD POSIX thread implementation is built in three
libraries, Reentrant C Library (libc_r, -lc_r), POSIX Threads Library
(libpthread, -lpthread), and 1:1 Threading Library (libthr, -lthr). They
contain both thread-safe versions of Standard C Library (libc, -lc) func-
tions and the thread functions. Threaded applications are linked with
one of these libraries.

7.0-CURRENT:
(snip)
LIBRARY
POSIX Threads Library (libpthread, -lpthread)
1:1 Threading Library (libthr, -lthr)
(snip)
INSTALLATION
The current FreeBSD POSIX thread implementation is built in two
libraries, POSIX Threads Library (libpthread, -lpthread), and 1:1
Threading Library (libthr, -lthr). They contain both thread-safe ver-
sions of Standard C Library (libc, -lc) functions and the thread func-
tions. Threaded applications are linked with one of these libraries.

2007年8月16日木曜日

sshguard

sshguard をいれてみた。まぁ、パスワード認証 off にしてるから
いれなくてもいいっちゃいいんだけど、お試し。アクセスあるだけでも嫌だしねっ。


o 導入
対応しているファイアウォール類は以下。素晴らしい。ipfだけexperimental.
* PF (OpenBSD, FreeBSD, NetBSD, DragonFly BSD)
* netfilter/iptables (Linux)
* IPFIREWALL/ipfw (FreeBSD, Mac OS X)
* IPFILTER (Experimental) (FreeBSD, NetBSD, Solaris)
* tcpd's hosts.allow (boxes without a network-layer firewall)

FreeBSD で pf を使っているので以下のコマンドでいれる。
% sudo portinstall security/sshguard-pf

man がインストールされなかった。。けど気にしない。


o pf 設定
pfの設定ファイルに下記追加

table のところに
table persist

フィルタリングルールのところに
block in quick on $ext_if from to any port 22 label "ssh bruteforce"
($ext_if を設定してない場合は適宜 interface 名を)

pfctl で読み込み直す。
% sudo pfctl -Fa -f [pfの設定ファイル]


o 動作確認
テストしてみる。auth.log をパイプで sshguard に流し込む。
# tail -n0 -F /var/log/auth.log | /usr/local/sbin/sshguard

ちなみに以下のログフォーマットに対応している。
* syslog entries
* syslog-ng entries
* metalog entries
* multilog entries
* raw log entries

てきとーなホストから何度もsshでつないで認証に失敗してみる。
するとそのホストからはつながらなくなっているはず。

# pfctl -Tshow -tsshguard
で追加されたアドレスを確認。

o syslog.conf 設定
ログインのたびにtail してもいいけども
root で実行しなきゃなんね
それかsshguard をsetuid root しなきゃなんね
ので、syslog.conf で設定して流し込む。下記を追加。

auth.info;authpriv.info |exec /usr/local/sbin/sshguard

他に auth.info;authpriv.info なエントリがある場合
(通常、auth.info;authpriv.info /var/log/auth.log が存在)
はそれより上に書く。

とりあえずこれだけでOK

するとまぁこんなかんじでブロックしてくれる、と。

sshguard[10351]: Blocking 221.8.79.168: 4 failures over 21 seconds.
sshguard[10351]: Releasing 221.8.79.168 after 454 seconds.

sshguard[20597]: Blocking 218.104.51.58: 4 failures over 5 seconds.
sshguard[20597]: Releasing 218.104.51.58 after 465 seconds.

デフォルトは4回で弾く。
ブロックしたアドレスのリリースまでの秒、アタックと認識する間隔も設定可能。
whitelist の機能もあるのでそれらを活用するとよりよいsshライフ(?) が送れることでしょう。


2007年8月7日火曜日

[Programming] Indent style

いわゆる「自転車小屋の議論」ってーやつ。

インデントがなんちゃら、とかスペースをあけるとか。
それで生産性があがるの?何が幸せ?お金になるの?と言われる(多分

読みにくい のは確かに実感としてある。
「慣れればどうってことない」そのとおり。
「慣れ」るまでのコストは?

僕にはこれが読みにくい。。
if(blah-blah-blah){
hoge = fuga;
return hoge;
}

全ておなじレベル。
頭がいいひとにはこれで差し支えないってことなんだろうな。
凡人でごめんなさい。 orz

以下希望なんです。
if(blah-blah-blah){
hoge = fuga;
return hoge;
}

だったり
if(blah-blah-blah)
{
hoge = fuga;
return hoge;
}

だったり
GNUスタイル? はしたことないけど、よさそう。
if(blah-blah-blah)
{
hoge = fuga;
return hoge;
}

自分はちょろりとスペースをいれる。
if (blah-blah-blah) {
hoge = fuga
return hoge;
}


自分の場合、書くより読む時間のほうが圧倒的に長いから
そう思うのかなー。

python だとこの議論が起きることは無い・・・・のかな。

2007年8月6日月曜日

nginx

という www server がある。
「ンギンクス」なんだろうか。

nginx
ロシア語わかりまへん。。。 orz
というわけでこっち
nginx [engine x] is a HTTP server and mail proxy server written by me (Igor Sysoev).
「ンギンクス」でなくて「エンジンエックス」

ロシアのヴァーチャルホストでは結構な数つかわれているっぽい。
Linux 2.2 やら FreeBSD 3.x でもテストしてるってことは
かなり前からあるのかな。
lighttpd のようにFLVのストリーミングもできる模様。
パフォーマンスよさそう& リソース消費すくなそう。
(使ってみてないのでなんともいえない)