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