libwrap(tcp_wrapper) の設定を確認するコマンドを書いてみた。 /etc/hosts.allow や /etc/hosts.deny の試し書きをして、それが正しく接続を許可・拒否するかを調べるのに便利かもしれない。 例えば、ホスト hogefuga.masaruyokoi.com から SSH connection が張れるかどうかを検査するには 「check_hosts_access.c -d sshd -n hogefuga.masaruyokoi.com」なんていうふうに実行してみてください。
/* check_host_access.c : evaluate hosts.allow/hosts.deny condition.
*
* Requires:
* libwrap (tcp_wrappers)
*
* How to compile:
* cc check_hosts_access.c -o check_hosts_access -lwrap
*
* How to use:
*
* When check connection will be accepted/denied from a host
* addressed as 192.168.1.2 to the daemon in.telnetd, execcute it as
* following:
*
* ./check_hosts_access -d in.telnetd -a 192.168.1.2
*
* When check with remote host name, specify with -n option.
*
* ./check_hosts_access -d in.telnetd -n a-host-name
*
*
*/
#include <stdio.h>
#include <tcpd.h>
extern char *optarg;
extern int optind, opterr, optopt;
#define printusage() { \
printf("%s -d <daemon name> [-n hostname|-a addr] [-u user]\n", argv[0]); \
exit(0); }
int main (int argc, char ** argv) {
struct request_info req;
char *addr = NULL, *daemon = NULL, *name = NULL, *user = NULL;
int c, result;
opterr = 0;
while ((c = getopt(argc, argv, "a:d:n:u:h")) != -1) {
switch(c) {
case 'a':
addr = optarg;
break;
case 'd':
daemon = optarg;
break;
case 'n':
name = optarg;
break;
case 'u':
user = optarg;
break;
case '?':
if (isprint(optopt))
errx("Unknown option : -%c.\n", optopt);
else
errx("Unknown option character : \\x%x.\n", optopt);
break;
case 'h':
default:
printusage();
}
}
if (daemon == NULL && name == NULL && addr == NULL)
printusage();
if (daemon == NULL) {
printf("daemon name (-d) is not specified.\n");
exit(1);
}
if (name == NULL && addr == NULL) {
printf("client name (-n) and addr (-a) is not specified.\n");
exit(1);
}
request_init(&req, RQ_DAEMON, daemon, 0);
if (name != NULL)
request_set(&req, RQ_CLIENT_NAME, name, 0);
if (addr != NULL)
request_set(&req, RQ_CLIENT_ADDR, addr, 0);
if (user != NULL)
request_set(&req, RQ_USER, user, 0);
result = hosts_access(&req);
printf("daemon=\"%s\" addr=\"%s\" name=\"%s\" user=\"%s\" : %s (%d)\n",
daemon, addr, name, user, result ? "accept" : "deny", result);
}
今日はいつもの急行に乗務して出勤中。久しぶりの晴れの天気。
今日は定時退社。 ちと初台西新宿あたりを見てみるテスト。
さっき初台駅近くのアパートを外から見たのだが、場所的にはかなりいい。 ただその部屋が1階で日当たりがいまいちかもしれない。 明日不動産屋に行って内覧させてもらおうっと。
買ったはいいけど全然使わなかった AVアンプをヤフオクに出品したところ、23,500円で落札されていた。ィェィ。 ってか落札価格が俺が買った値段より高いぞ。アレ(笑)
御意。
東京に来てから買った、スーパーカブとTREKの自転車を除くすべての車両は中古車なオイラにとって、中古車買うのにそれほどためらいないんだよな。。 安くてモノが悪くなければよいじゃん、ちょっと使ったぐらいでx割引ならよいじゃん、どうせクルマの履歴がちょっと多いだけだろ、てな発想なんだが。 それにしても 360モデナが中古だったとは意外だ。 なんで不人気色なんかに乗っているんだなんて思ったのだが、安かったからなんだろうなw
借金についても同じように思う。 借金って返せなくなるというリスクや金利負担というデメリットがあるが、将来の現金貯まる時まで待っていられないとかの理由で、金利で時間を買うと考えればよいのではないでしょうかね。 タイムマシンのご利用は計画的に。 もちろん現金主義を否定するつもりはさらさらないですが、現金主義がすばらしいなんて言うつもりもさらさらない。
都心で車を持つのはナンセンスってのも理解できます(車好きを除く)。
クルマ好きな人は都心でも高い月極駐車料払うとか、郊外に住むとか、いろいろしますからね。
・ 改善隊 [にゃ〜!カワイイですねぇ♪しかも美形。毛並みも良さそうです。触りたーいっ。(=^・^=) ミャー ]
・ まさる [今年あたりからウチのベランダでウロウロしていたネコかと思います。]
・ いけだ [天気よかったもんねー。わたしは、今週末、Soをだっこしてたらギックリ気味。。orz]