(2005-09の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

2005-09-01 Thu (他の年の同じ日: 2006 2012)

config ファイルを使ってホスト毎の設定
2005-09-01-3 / カテゴリ: [linux][ssh] / [permlink]

ssh でリモートログインする際に、サーバ毎にユーザ名が違ったり、ポートが wellknown じゃなかったりすると、そのたびにオプションを指定するのがメンドウ。
で、~/.ssh/config にホスト毎の設定を記述しておけば、引数にホスト名をしていするだけでアクセスできるようになる。

Host server1         # 以下 server1 に接続するときの設定
  User foo             # ユーザ名は foo
  Port 10022           # 接続するポートは10022
  Compression yes      # 圧縮を有効にする
  CompressionLevel 5   # 圧縮レベルは5(1:低/9:高)
Host server2         # 以下 server2 に接続するときの設定
  User bar             # ユーザ名は bar
  IdentityFile ~/.ssh/id_rsa_serv2 # 使用する秘密鍵はid_rsa_serv2
Host server3         # 以下 server3 に接続するときの設定
  User baz
  LocalForward 10110 server3:110 # localの10110をserver3のpop接続にフォワードする

みたいな。
明示的に指定しなかった項目は、デフォルトの値が使用される(ハズ)。debian なら /etc/ssh/ssh_config かな。

c.f. man ssh_config(5)
     ssh obtains configuration data from the following sources in the follow-
     ing order:
           1. command-line options
           2. user's configuration file ($HOME/.ssh/config)
           3. system-wide configuration file (/etc/ssh/ssh_config)

LAN 用 zone の設定
2005-09-01-2 / カテゴリ: [linux][debian][bind] / [permlink]

おうちサーバは no-ip の DDNS サービスを利用していて、外からは no-ip のドメインでアクセスできるけど、自宅の LAN からは、ADSL モデムが自身の global IP で自分にアクセスできない(local IP じゃないとアクセスできない)ので、ドメイン名でのアクセスはできない。
ので、ローカル用の BIND に、(local IP を返すように)no-ip で使用しているドメイン名の名前解決をやらせる。

※ 都合上、使用しているドメインは zaki.example.org とします。でもって、LAN のアドレスは 192.168.1.* です。あと、記述に誤りがあるかもしれません ^^;;

/etc/bind/named.conf
zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.zaki.rev";
};
zone "zaki.example.org" {
        type master;
        file "/etc/bind/db.zaki.zone";
};
を追記。

でもって、
/etc/bind/db.zaki.rev (逆引き用)
$TTL    86400
@       IN      SOA     ns.zaki.example.org.     root.zaki.example.org. (
                2005082801 ; Serial
                3600       ; Refresh
                900        ; Retry
                604800     ; Expire
                3600 )     ; Minimum
@       IN      NS      ns.zaki.example.org.
1       IN      PTR     cheddar.zaki.example.org.
2       IN      PTR     camembert.zaki.example.org.
20      IN      PTR     parmesan.zaki.example.org.
100     IN      PTR     mozzarella.zaki.example.org.
101     IN      PTR     mimolette.zaki.example.org.
102     IN      PTR     chaource.zaki.example.org.

/etc/bind/db.zaki.zone (正引き用)
$TTL    86400
@       IN      SOA     ns.zaki.example.org.     root.zaki.example.org. (
                2005082801 ; Serial
                3600       ; Refresh
                900        ; Retry
                604800     ; Expire
                3600 )     ; Minimum
@       IN      NS      ns
@       IN      A       192.168.1.1
cheddar         IN      A       192.168.1.1
camembert       IN      A       192.168.1.2
parmesan        IN      A       192.168.1.20
hdlan0          IN      A       192.168.1.30
mimolette       IN      A       192.168.1.101
chaource        IN      A       192.168.1.102

そーいや parmesan なんてマシンあったな。電源壊れて全く使ってないけど。
Referrer (Inside): [2006-07-02-5]

proxy.pac で自動proxy設定
2005-09-01-1 / カテゴリ: [HTTP][JavaScript] / [permlink]

今更ドキュメントシリーズ。
ちょうど1年前くらいに社内用で作成してたけど、メモってなかったので。

Proxy Auto-Config File Format

必ず定義しなければならないのは FindProxyForURL(url, host) 関数。通常のプログラムの main に相当するようなもの。
引数の url にはアクセスしようとする URL が、host にはそのアドレスが入る。
で、戻り値として "DIRECT" で直接接続、"PROXY proxy.example.org:8080" で proxy.example.org:8080 を使うようなる。
個人的に良く(という程使ってないけど)使う関数は isInNet と shExpMatch。まぁ例見るのがわかりやすいかな。shExpMatch は正規表現ではなくファイルグロブによるマッチング(っぽい)

以下、「ホスト名でのアクセス, example.org, example.net, 192.168.*.*, localhost は直接接続、example.com, 10.*.*.* は proxy に 172.24.1.1:8080 使い、それ以外は proxy.example.org:8080 で Web アクセス」

function FindProxyForURL(url, host)
{
  if (isPlainHostName(host) ||
      shExpMatch(url, "http://*example.org*") ||
      shExpMatch(url, "http://*example.net*") ||
      isInNet(host, "192.168.0.0", "255.255.0.0") ||
      isInNet(host, "127.0.0.1", "255.0.0.0")) {
    return "DIRECT";
  }
  else if (shExpMatch(url, "http://*example.com*/") ||
           isInNet(host, "10.0.0.0", "255.0.0.0")) {
    return "PROXY 172.24.1.1:8080";
  }
  else {
    return "PROXY proxy.example.org:8080";
  }
}

んで、proxy.pac という名前で、proxy 不要でアクセスできる Web サーバにおいておき、ブラウザの「自動構成スクリプトを使用する」やら「自動でプロキシを設定する」やらで設定すれば OK

で、netscape のドキュメントには、application/x-ns-proxy-autoconfig という MIME type を追加せよとあるんだけど、なくても一応動くんだよな… うーむ
前の日 / 次の日 / 最新 / 2005-09

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12