IPv6に勤しんでみる tcp wrapperでアクセス制御

ip6tablesに続いて/etc/hosts.deny, hosts.allowでsshのアクセス制御をしてみます。まずは何も設定しない状態でクライアント側からsshを叩いてみる

$ ssh -l admin xxxx:xxxx:xxxx:8401::902

admin@xxxx:xxxx:xxxx:8401::902's password:
Last login: Wed Mar 11 11:17:28 2009 from xxx:xxx:xxx:8401::902

ログインできているのでまずはdneyの設定を突っ込んでみる。

# vi /etc/hosts.deny

ALL:ALL

クライアント側から叩いてみる

$ ssh -l admin xxxx:xxxx:xxxx:8401::902
ssh_exchange_identification: Connection closed by remote host

弾かれました。ちゃんとIPv6対応してるみたい。続いてallowをつっこんでみる。

# vi /etc/hosts.allow

sshd:xxxx:xxxx:xxxx:8401::903

クライアント側から叩く

$ ssh -l admin xxxx:xxxx:xxxx:8401::902
ssh_exchange_identification: Connection closed by remote host

あれー?通ってないなぁ。denyされるようになったって事はいけると思うんだけど...。と、色々悩むこと数時間。

# vi /etc/hosts.allow

sshd:[xxxx:xxxx:xxxx:8401::903]

これで通った・・・・。何この魔法のブラケット?やっぱりデリミタがコロンなのはアプリケーションレイヤの人涙目がちらついてるな〜。firefoxとかブラウザもURLにアドレス直接入れる時はブラケットで囲むのが一般的?みたいですね。不幸な臭いが漂ってますな。

追記

どうやらブラケット"[ ]"を使ってアドレスを囲むのはRFCで規定されているようですね。
http://www.ne.jp/asahi/earth/stomomi/RFC/rfc2732-j.txt