8-3. DHCP のテストと LDAP は (1) DHCP の概要とテスト環境 '97 * DHCP( Dynamic Host Configuration Protocol ) の概要 動的にIPアドレスの割り当てを行う機構である。コンピュ−タにIPアドレスを固定し ないので、コンピュ−タの移動などで、従来IPアドレスを付け直していたような場合に 効力を発揮する。仕組みはクライアント・サ−バ方式で、クライアントは DHCP のサ−バ にIPアドレスを要求し、確保してあるものを割当ててもらう。割り当ての方法は基本的 には、その度に割り当ててもらう、アドレス固定の2通りである。WIDE Project の DHCP サ−バは、以前のIPアドレスを極力割り当てようとすると書かれている。 DHCP はIPアドレスの他にデフォルトゲ−トウェイ、DNSのIPアドレス、 サブネッ トマスクなども配布できる。当初 DHCP は内部ネットワ−クのIPアドレス管理として出 てきたが、最近では SOHO ル−タに実装されてきている。 IPアドレスの変換である IP Masquerade と組み合わせば、 まさに小さな事務所向けのインタ−ネット接続装置となる。 ただし一般的には、IPアドレスとホスト名の対応がDNSに反映されないとか、DHCPの クライアントの認証はこれから検討されるとか問題が残されている。 DHCP の利用は同じセグメント上にサ−バとクライアントを置く必要がある。DHCP はブロ −ドキャストを使うため、ル−タで止められるからである。セグメントをまたぐ場合には、 ゲ−トウェイやル−タに、 DHCP のパケットをリレ−する DHCP リレ−・エ−ジェント・ ソフトが必要である。DHCP サ−バとリレ−・エ−ジェント間の通信は、 ブロ−ドキャス トでもユニキャストでもいいことになっている。このためリレ−・エ−ジェントのホスト はゲ−トウェイである必要はない。リレ−・エ−ジェント機能を使わないのであれば、セ グメント毎に DHCP サ−バをおくことになる。この場合、 DHCP サ−バ間では調整機能は ないので、あらかじめ別のIPアドレスの範囲をそれぞれ管理するように設定する。 * DHCP の対応状況 ・Windows 95 がクライアントを、Windows NT Server がサ−バ機能を標準でもつ。 ・米 Sun Soft の SolarNet。 ・INDY は IRIX 6.2 から標準サポ−ト。リレ−・エ−ジェント機能もある。 ・INDY の IRIX 5.3 にはクライアント機能しかない。 ・Solaris 2.6 には DHCP クライアント/サ−バ機能が入った。 * WIDE Project 版 DHCP サ−バ 97年4月分の version 1.3.6 が最新リリ−スである。 ftp://sh.wide.ad.jp を見ると 以下のようにある。http://www.wide.ad.jp/software/index.html にもある。対応するコ ンピュ−タは、dhcp-1.3beta の時から変わっていないようである。 よく雑誌で WIDE 版 は紹介されるが、Solaris 2.5.x や Silicon Graphics IRIX 5.x/6.x ではコンパイルで きない。現在対応しているのは、BSD/386, BSD/OS, FreeBSD, NEWS-OS 4.2, SunOS 4.1.4 であり、OSのカ−ネルを書き換える作業が伴う。 133326 Nov 16 1995 dhcp-1.3beta.tar.gz 2681 Aug 20 03:15 dhcp-1.4.0-1.4.0p1.patch 135135 Aug 8 01:24 dhcp-1.4.0.tar.gz 135244 Aug 20 03:16 dhcp-1.4.0p1.tar.gz * ISC 版 DHCP サ−バ `21/02 頃 もう一つ有名な DHCP サ−バは、ISC( INTERNET SOFTWARE CONSORTIUM ) が開発している ものである。ここは BIND の実装プログラム namedを開発しているところでもある。この named、皆お世話になっている。他にも News(ネットワ−ク・ニュ−ス) のソフト INN も ここが開発している。全部オ−プンソ−スである。ここでの DHCP サ−バのソフトは、バ −ジョン1のもので十分安定しているとのこと。ディレクトリ dhcp-1.0-history 以下に ある。ホ−ムペ−ジは http://www.isc.org/。 % ftp ftp.isc.org ftp> cd /isc/dhcp ftp> ls drwxr-xr-x 2 .. 8192 Sep 29 23:03 dhcp-1.0-history drwxr-xr-x 2 .. 8192 Sep 29 23:03 dhcp-2.0-history -rw-r--r-- 1 .. 294909 Sep 6 2000 dhcp-2.0pl5.tar.gz drwxr-xr-x 2 .. 8192 Feb 22 23:22 dhcp-3.0-history -rw-rw-r-- 1 .. 1184720 Feb 22 23:52 dhcp-3.0b2pl18-solaris-2.6.tar.gz -rw-rw-r-- 1 .. 816082 Feb 23 00:41 dhcp-3.0b2pl18.tar.gz -rw-r--r-- 1 .. 12302 Feb 27 18:49 draft-ietf-dhc-concat-00.txt -rw-r--r-- 1 .. 14311 Feb 27 18:52 draft-ietf-dhc-csr-04.txt * DHCP 機能ヘの提案 パソコンのIPアドレスはあらかじめ管理者が決めて、手作業で設定する。IPアドレス はいったん決めれば、そう変えることがないので、これぐらいやってもいいかということ である。それ以外のネットワ−クの設定、デフォルトゲ−トウェイやDNSのIPアドレ スなどは、DHCP が利用できれば便利ではないか。現状の DHCPではIPアドレスを主に自 動設定するのが DHCP の機能になっているので、そういう訳にはいかない。MACアドレ スとの対応でIPアドレスを決める静的 DHCP というのも、最近 SOHO 機器には実装され てきてはいるが、ちょっと繁雑である。IPアドレスだけは、どのパソコンに付けたのか きっちり管理し他の設定、デフォルトゲ−トウェイ、DNS、プロキシのIPアドレスは DHCP に自動でやらせたい訳である。 レイヤ3スイッチでVLANを切る場合のことである。1つのVLANのネットワ−クに 対して、1つの DHCP サ−バが働くというのはどうだ。現状だと、同じIPアドレスで複 数のVLANを切ると、これら全部が DHCP サ−バの対象になる。VLANというのはい わば課であるとか係と言ったグル−プとなる場合が多いはずである。ならばそのグル−プ のIPアドレスは、これこれの範囲にしましょうとできれば、分かりやすいと思うのだが。 同じネットワ−クIPアドレスのVLANの範囲、つまりコンピュ−タの台数が多いと朝 の出勤した時、DHCPサ−バに皆が一斉にアクセスしにいってしんどくないか。数十台程度 で1つのVLAN、1つの DHCP サ−バを使うようにできればと考える。 * DHCP テスト環境 ------- |hostA| DNS,WWW : ------- □ Router .3 | | ---------------------------------------- 202.241.128.0 nix.co.jj | ------- ------- FireWall-1 |hostG| |hostB| SMTP and POP サ−バ IPアドレス変換 ------- ------- | | .1 ---------------------------------------- 192.168.1.0 .9 | ------- ------- IRIX 6.3 |hostX| |hostD| DHCP サ−バ DHCP クライアント ------- ------- □ □ □ Windows 95 | .1 | .2 | | | -------------------------------------------------------- 192.168.2.0 ここでは同じセグメント上に DHCP サ−バとクライアントがいる場合をとりあげる。DHCP サ−バは hostD の Silicon Graphics O2 標準のデ−モンを使う。 DHCP クライアントは、 Windows 95 標準の機能を使う。DHCP サ−バは、 192.168.2.5〜7 の範囲で順番に1ずつ 増やしながら、IPアドレスをクライアントに割り振っていくようにする。hostX にはイ ンタ−ネットへの経路情報をもたせておく。hostG の FireWall-1 にはIPアドレス変換 で 192.168.2.5〜7 を通すように設定しておく。 FireWall-1 のル−ルベ−スにホストを 登録する際には、適当なホスト名をつけておけばよい。 DHCP クライアントは、パソコンの起動時にブロ−ドキャストを出し、DHCP サ−バを探し IPアドレスの割り当てを受けようとする。割り当ての有効時間は IRIX 6.3 の DHCP サ −バの設定ファイルの下記例では pro_lease: 60、この場合60秒間である。そして有効 時間の半分になると、クライアントは引き続き使えるようにお願いを出す。この場合30 秒毎にお願いすることになる。パソコンの使用をやめて、電源を切ったら割り当てられた IPアドレスは一応返上するわけである。 しかし、どうもこれだけでなく、WIDE 版 DHCP でもそうだが、 次に割り当てる時もでき るだけ同じIPアドレスになるように働くようである。どうも一度割り当てたIPアドレ スとそのホストのMACアドレスの対を、一定時間 DHCP サ−バが覚えているみたいであ る。arp -a で表示される情報は見ていないようである。/usr/sbin/ProclaimServerMgrと いう DHCP のGUIソフトがあり、これを使えば色々細かいことが表示されるのかも知れ ない。起動しようとしたら、セグメンテンション・エラ−が出て動かなかった。 ・割り当てたことがないホストには、最後に割り当てた他のホストのIPアドレス を覚えていて、これを元に次のIPアドレスを割り振る。 ・DHCP サ−バは、クライアントのパソコンの電源を入れ直しても、前に割り当てた IPアドレスを再度割り当てようとする。 (2) DHCP サ−バ/クライアントの設定 '97 * SGI O2 の DHCP サ−バの設定 % chkconfig proclaim_server on << DHCP サ−バの起動フラッグ。 % chkconfig Flag State ==== ===== proclaim_relayagent off << これは、ここでは off でよい。 proclaim_server on << これ確認。 /usr/etc/inetd.conf << このようになっているか確認。 -------------------------------------------------------------------------- |#bootp dgram udp wait root /usr/etc/bootp bootp |bootp dgram udp wait root /usr/etc/dhcp_bootp dhcp_bootp -o 続く | /etc/config/dhcp_bootp.options /etc/services << このようになっているか確認。 ----------------------------------------------- |bootp 67/udp bootps # bootp server |bootpc 68/udp # bootp client % /etc/killall -HUP inetd << コンフィグ・ファイルを書いてから実行。 % ls /var/dhcp/config << 元々これだけ。 config.Default dhcp_relay.servers /var/dhcp/config/config.192.168.2.0 << ネットワ−ク・アドレスをつけること。 ----------------------------------- |Serve_This_Network: 1 << DHCP サ−バのサ−ビスをします。 |pro_lease: 60 << IPアドレスの有効時間。単位:秒。 |pro_ipaddress_range: 5-7 << 192.168.2.5 〜 7 の範囲でつける。 |pro_address_counter: 1 << 192.168.2.5 の次は 6、1ずつ増やす。 |pro_host_prefix: xnet << ホスト名のベ−ス。 |pro_host_pfx_counter: 1 << 最初のホスト名は xnet1、次は xnet2。 |pro_netmask: 255.255.255.0 << ネットマスク。 |pro_router_addr: 192.168.2.1 << デフォルトゲ−トウェイのIPアドレス。 |pro_dns_domain: nix.co.jj << ドメイン名。 |pro_dnsserver_addr: 202.241.128.3 << DNS サ−バのIPアドレス。 |pro_SMTPserver_addr: 192.168.1.1 << これらは設定しても、Windows パソコンでは |pro_POP3server_addr: 192.168.1.1 無視される。他にもオプションは多々ある。 |pro_choose_name: 1 << これ以下、とりあえずこのように設定する。 |pro_mtu: 1500 |pro_allnets_local: 1 |pro_domask_disc: 0 |pro_resp_mask_req: 0 /etc/config/dhcp_bootp.options << 何もいじらなくてもよい。 ------------------------------------------ |# BOOTP options file for DHCP related options 注.もし実験でコンフィグの値を変更したような場合、% /etc/killall -HUP inetd だけ ではダメである。DHCP クライアントからのアクセスがあると、 dhcp_boot プロセス が表に出てきて、しばらく出たままになる。数分すると消えるが。dhcp_boot がフォ ア・グラウンドで稼働していると、こっちが優先されて inetd 経由の dhcp_boot に アクセスしなくなる。何のための inetd アクセスなのだ。 こういうのがセキュリテ ィ・ホ−ルとしてクラッカ−の餌食になるのだ。 % ps -e | grep dhcp_boot 1479 ? 0:00 dhcp_boot % kill 1479 % /etc/killall -HUP inetd * Windows 95 の DHCP クライアントの設定 コントロ−ルパネルのネットワ−ク設定の中で、 "IPアドレスを自動的に取得" だけ指 定する。他の設定はやる必要はない。パソコンを立ち上げ直すと、自動的にネットワ−ク 接続の各種設定がされる。Internet Explorer はそのまま使える。しかし Internet Mail の SMTP、POP サ−バのIPアドレスの設定まではできない。 Windows パソコンのメ−ル の設定は、今のところ手作業でやるしかない。 ん−、何となく Windows 95 の DHCP は挙動がおかしいと思う。どうも確かなことは、パ ソコンの電源を切ると、切る時に割り当てIPアドレスを解放すること。これで他のパソ コンの電源を入れれば、IPアドレスは自動的に割り当てられる。そこで他のパソコンは 電源を入れたままだったとする。その時点ではIPアドレスは割り当てられなかったとす る。どうなるか。Internet Explorer を起動してチェックすると、接続する場合もあるし、 しない場合も出てくる。 "conflict for IP address" とエラ−・メッセ−ジが自分のパソコンや他のパソコンに出 たりもする。リ−ス権期限を過ぎるとどうなるか。これもおかしい話だが、別になんとも ない。リ−ス期間の半分の時間毎に継続できるようにお願いを出すのだから、使い続けら れる訳だ。何のためにリ−ス期間があるか分かったもんでない。ん−、理解できん!。と りあえずよく分からないので、Windows パソコンは次のように使用した方がいいかも。 ================================================================================ Windows パソコンは、使わない時は電源を切ること。インタ−ネットなど TCP/IP のアク セスをしようとして、接続できなかったら、パソコンを再起動してみること。しかし大学 のコンピュ−タ・ル−ムでもなければ、もはやいちいちパソコンの電源を入れたり切った りといった使い方はしない。企業においては DHCP は使えないか。あるいは DHCP でIP アドレスを使い回すというより、十分な数のIPアドレスを DHCP でプ−ルしておくかだ。 ================================================================================ C:\WINDOWS> winipcfg << このDOSコマンドで設定内容が確認できる。 ---------------------------------------------------------- | IP 設定 | |--------------------------------------------------------| | - ホスト情報 ----------------------------------------- | | | ホスト名 : note.nix.co.jj | | | | DNS サ−バ− : 202.241.128.3 | | | | ノ−ドタイプ : ブロ−ドキャスト | | | | | | | | ------------------------------------------------------ | | - Ethernet アダプタ情報 ------------------------------ | | | CONTEC C-NET(PC)C Adapter | | | | アダプタアドレス : 00-80-C4-??-??-?? | | << MACアドレス。 | | IP アドレス : 192.168.2.5 | | | | サブネットマスク : 255.255.255.0 | | | | デフォルトゲ−トウェイ : 192.168.2.1 | | | | DHCP サ−バ− : 192.168.2.2 | | | | | | | | | リ−ス権取得日 : 月12 22 99 13:39:16 | | << 60 秒しか権利がな | | リ−ス権期限 : 月12 22 99 13:40:16 | | いことが分かる。 | ------------------------------------------------------ | | | | [ OK ] [解放] [更新] [すべて解放] [すべて更新] | | | ---------------------------------------------------------- * INDY での DHCP 動作の確認 % arp -a xnet1 (192.168.2.5) at 0:80:c4:??:??:?? << ?? のとこは本当はちゃんとある。 ? (192.168.2.6) at 0:80:c4:??:??:?? % /usr/local/bin/tcpdump udp tcpdump: listening on ec0 クライアントがブロ−ドキャストを出している。 16:20:05.504913 0.0.0.0.bootpc > 255.255.255.255.bootp: .. [|bootp] 16:20:07.507579 0.0.0.0.bootpc > 255.255.255.255.bootp: .. secs:512 [|bootp] 16:20:09.511923 0.0.0.0.bootpc > 255.255.255.255.bootp: .. secs:1024 [|bootp] 16:20:11.359728 hostD.bootp > 192.168.2.6.bootpc: .. Y:192.168.2.6 [|bootp] 16:20:11.363065 hostD.bootp > 192.168.2.6.bootpc: ... Y:192.168.2.6 [|bootp] 16:20:11.368536 hostD.bootp > 192.168.2.6.bootpc: ... Y:192.168.2.6 [|bootp] 16:20:11.516156 0.0.0.0.bootpc > 255.255.255.255.bootp: .. secs:1536 [|bootp] 16:20:11.516510 0.0.0.0.bootpc > 255.255.255.255.bootp: .. secs:1536 [|bootp] 16:20:11.520865 hostD.bootp > 192.168.2.6.bootpc: ... Y:192.168.2.6 [|bootp] 16:20:11.551631 hostD.bootp > 192.168.2.6.bootpc: ... Y:192.168.2.6 [|bootp] | | 30秒毎にIPアドレスの継続使用のお伺いをしている。 16:25:11.739868 xnet1.bootpc > hostD.bootp: .. C:xnet1 [|bootp] 16:25:11.761295 hostD.bootp > xnet1.bootpc: .. C:xnet1 Y:xnet1 [|bootp] 16:25:41.763470 xnet1.bootpc > hostD.bootp: .. C:xnet1 [|bootp] 16:25:41.783424 hostD.bootp > xnet1.bootpc: .. C:xnet1 Y:xnet1 [|bootp] (3) Cobalt の DHCP サ−バで再テスト `02/10 (1日で済んでしまった) * DHCP サ−バのテスト再挑戦 SOHO 用/部門用ばかちょんサ−バの Cobalt Qube2 を入手できたので、 再度 DHCP に挑 戦してみる。宣伝のように簡単に設定して使えるものなら、実戦配備したい。 Cobalt の 設定で注意すること。プライマリネットワ−ク側に DHCP クライアントになるマシンをお くことだけである。ほか特にめんどくさいことや、不安定なことはなかった。ものの30 分で DHCP の環境はできてしまった。 DHCP クライアントにした Gateway Solo のパソコ ンでは "IPアドレスを自動取得する" とだけ設定した。それがデフォルトゲ−トウェイ もDNSのアドレスも DHCP サ−バから供給され、そのままインタ−ネットにアクセスで きた。実は Solo 設定後、最初の起動ではおかしなIPアドレスが振られたが、再度起動 し直したらOKだった。 DNS □ □ Router Apache .3| | ------- -------------- 202.241.128.0 |Proxy| | ------- .5 □ FireWall-1 | | ------------------------------------- 192.168.1.0 | .6 DHCP Client -------- -------- DHCP Server Windows 98 | Solo | |Cobalt| NAT(IP Masquerade) Gateway Solo-------- -------- | | .2 Cobalt プライマリ ------------------------------------- 192.168.2.0 ネットワ−ク側 もう少し、以下で設定したこのネットワ−クの環境を説明しよう。 DHCP クライアントの デフォルトゲ−トウェイは 192.168.2.2 にした。 つまりパソコン Solo のデフォルトゲ −トウェイは Cobalt になる。Cobalt のデフォルトゲ−トウェイは 192.168.1.5 にした。 192.168.1.5 のマシンはインタ−ネットに抜ける経路や、内部ネット全部の経路情報を持 っている。Cobalt では IP Masquerade 機能も働いている。 これにより 192.168.2.0 側 にあるマシンから、 他のネットワ−クにアクセスすると 192.168.1.6 からの発信になる。 さらに Solo の Netscape Navigator の設定に Proxy サ−バ 192.168.1.5 とした。これ は FireWall-1 でホスト追加のル−ル設定をするのが、めんどうだったからに過ぎない。 * Cobalt Qube2J の設定 << マシンの設定 >> プライマリネットワ−ク側のIPアドレスを、箱裏のボタンで先ず設定する。これができ たら同じネットワ−クにパソコンを 192.168.2.1 ぐらいで接続する。ここから Netscape で http://192.168.2.0/ アクセスする。Cobalt の管理画面が出て、あと細かな設定がで きるようになる。[管理者サイト] をクリックし admin と入れる。メニュ−が7つぐらい 出る。その中の [ネットワ−ク] のところをクリックし、以下のように入れてみた。デフ ォルトで "IP転送" と "NAT" はチェックされていた。 少し気になることは、デフォル ト経路の設定項目しかないこと。静的経路の追加は画面メニュ−にはない。 ------------------------------------------- -------------------------------- | 一般設定 | | Cobalt Qube2 箱の裏 | |-----------------------------------------| | | |? ホスト名 cobalt | | | |? ドメインネ−ム nix.co.jj | | | |? プライマリDNSサ−バ 202.241.128.3 | | -------------------- | |? セカンダリDNSサ−バ | | |cobalt.nix.co.jj | | |? デフォルトゲ−トウェイ 192.168.1.5 | | |192.168.2.2 | | |? IP転送 〆 | | -------------------- | |-----------------------------------------| | ○ ○ 選択 | | インタ−フェイスの設定−プライマリ | | <○ ○> | |-----------------------------------------| | ○ ○ 実行 | |? IPアドレス 192.168.2.2 | | | |? サブネットマスク 255.255.255.0 | | セカンダリ プライマリ | |? NAT(Network Address Translation) 〆 | | ------ ------ | |? MACアドレス 00:10:XX:00:XX:8C | | | | | | | |-----------------------------------------| | ------ ------ | | インタ−フェイスの設定−セカンダリ | ------------|---------|--------- |-----------------------------------------| | | |? IPアドレス 192.168.1.6 | 192.168.1.6 192.168.2.2 |? サブネットマスク 255.255.255.0 | |? MACアドレス 00:10:XX:00:XX:88 | ------------------------------------------- << DHCP サ−バの設定 >> [管理者サイト] -> [コントロ−ルパネル] -> [DHCPサ−バ] にチェックし、DHCP サ−バ を使うようにする。さらにメニュ−のパラメ−タをクリックする。すると左下の画面がで てくる。(動的アドレス割り当てを追加) をクリックし、 割り当てたいIPアドレスの範 囲を入れる。次に (DHCPクライアントの設定) をクリックし、右下のように入れた。 --------------------------------- ----------------------------------------- | | | DHCPクライアントの設定 | | (DHCPクライアントの設定) | |---------------------------------------| | | |? ドメインネ−ム nix.co.jj | | (動的アドレス割り当てを追加) | |? プライマリDNSサ−バ 202.241.128.3 | | ------------------------------| |? セカンダリDNSサ−バ | | 動的アドレスの割り当てリスト | |? サブネットマスク 255.255.255.0 | | 192.168.2.3 - 192.168.2.9 | |? デフォルトゲ−トウェイ 192.168.2.2 | | | |? 最大リ−ス時間(秒) 86400 | --------------------------------- ----------------------------------------- * パソコンの設定 Netscape Navigator の設定: バ−ジョンは 4.51 だった [編集] -> [設定] -> [詳細] -> [プロキシ] ◎手動でプロキシを設定する [表示] << [表示]をクリックして、 HTTP 192.168.1.5 80 << HTTP Proxy Server を指定。 Windows 98 パソコンの設定: Gateway Solo ノ−トPC [スタ−ト] -> [設定] -> [コントロ−ルパネル] <アイコンのネットワ−クをクリック> [ネットワ−クの設定] -> [TCP/IP->3Com EtherLinkШ PCMCIA] ----------------------------------------------------- | TCP/IP のプロパティ | |---------------------------------------------------| | この中で | | IPアドレスは ◎IPアドレスを自動で取得 | | DNS設定は ◎DNSを使う | DNSを使わないにして | ホスト[solo] ドメイン[nix.co.jj] | もインタ−ネットへのア | ゲ−トウェイは何も設定しない | クセスは問題ない。 ----------------------------------------------------- * パソコンの設定の確認 C:\WINDOWS> winipcfg これで別画面が次のように出て来る。Windows 2000 では > ipconfig とやる。 ------------------------------------------------------- | IP 設定 | |-----------------------------------------------------| |- Ethernet アダプタ情報 -----------------------------| || [ELPC3R Ethernet Adapter ▼] || || アダプタアドレス[ 00-80-C4-XX-XX-XX ] || || IPアドレス[ 192.168.2.3 ] || || サブネットマスク[ 255.255.255.0 ] || ||デフォルトゲ−トウェイ[ 192.168.2.2 ] || |-----------------------------------------------------| | [ OK ] [ 解放 ] [ 書換え ] | | [すべて解放] [すべて書換え] [ 詳細 ] | [詳細] をクリックすると ------------------------------------------------------- 下の画面が出て来る。 ---------------------------------------------------------- | IP 設定 | |--------------------------------------------------------| | - ホスト情報 ----------------------------------------- | | | ホスト名 : solo.nix.co.jj | | | | DNS サ−バ− : 202.241.128.3 | | | | ノ−ドタイプ : ブロ−ドキャスト | | | | NetBIOSスコ−プID : | | | | IPル−ティング有効 : Wins Proxy有効: | | | |NetBIOSの解放にDNSを使用: | | | ------------------------------------------------------ | | - Ethernet アダプタ情報 ------------------------------ | | | ELPC3R Ethernet Adapter | | | | アダプタアドレス : 00-80-C4-XX-XX-XX | | | | IP アドレス : 192.168.2.3 | | << 動的に割り当てら | | サブネットマスク : 255.255.255.0 | | れたIPアドレス。 | | デフォルトゲ−トウェイ : 192.168.2.2 | | | | DHCP サ−バ− : 192.168.2.2 | | | | プライマリWINSサ−バ− : | | | | セカンダリWINSサ−バ− : | | | | リ−ス取得日 : 10 04 00 10:24:40 | | << 1日分。 | | リ−ス期限 : 10 05 00 10:24:40 | | | ------------------------------------------------------ | | | | [ OK ] [解放] [書換え] [すべて解放] [すべて書換え] | ---------------------------------------------------------- * Cobalt Qube3 の DHCP はどうかな Qube2 の後継機種として Qube3 が出て来たのでこれもチェックしてみた。 IPアドレス を動的に割り当てるやり方の他に、もう一つ静的アドレスの割り当てというのが追加され ていた。動的アドレスの方は一般的な DHCP 機能である。静的アドレスの方は、IPアド レスを割り当てるホストのMACアドレスを調べておき、そのMACアドレスとIPアド レスの対を設定する。これによりホストに対し、必ず同じIPアドレスを付けることがで きる。この他の設定などは Qube2 と変わってない、同じである。 * NetAttest D3 の DHCP どうかな `2h/09/s この装置は DNS サ−バ、DHCP サ−バ2つの機能があるアプライアンスである。社内用の DNS サ−バとして設置するために購入した。一応その設定は行なって実稼働させているが、 まだ常の利用には供してない。それで今の内にもう1つの機能の DHCP サ−バも見ておこ うと思った。社内では DHCP サ−バはこれまで、ほとんど利用してこなかった。一部、イ ンタ−ネットのテスト用回線の所に無線LAN装置をかましていて、その装置の DHCP サ −バ機能を設定している位である。どうだろう、社内で積極的に DHCP サ−バを利用する ことは今後あるか?。多分、無いような気がする。かつては DHCP サ−バを利用するには Linux マシンを用意する必要があった。2007年頃にはアプライアンスで Infoblox と 言うのが出てきていた。お値段は結構したと記憶している。その後 OpenBlockS というア プライアンスも出てきた。多分、現時点でのお勧めは NetAttest D3 でいいと思う。 サ−バ−状態 サ−バ−稼働状態 停止、冗長化状態 冗長化しない サ−バ−設定 システム起動時にDHCPサ−バ−起動する □ ほか リ−ス情報 表示するデ−タ−はありません スコ−プ 表示するデ−タ−はありません 登録クライアント 表示するデ−タ−はありません 静的割り当て 表示するデ−タ−はありません 冗長化設定 冗長化機能を使用する 冗長化構成台数 2台から4台 認証用NetAttest EPS設定 表示するデ−タ−はありません ユ−ザ−定義オプション 表示するデ−タ−はありません ベンダ−固有オプション 表示するデ−タ−はありません [ "サ−バ−設定"の中身 ] システム起動時にDHCPサ−バ−起動する □ 仮想IPアドレスでDHCPサ−ビスをする □ 仮想IPアドレス [ ] << 何に使うのだろうか。冗長化設定かな。 DHCP警告メ−ル設定 DHCPリ−ス情報の監視設定 << 細かな設定ができる。Qube3 にはない。 DHCPゴ−ストMACアドレス設定 << こんなの初めて見た。なんなんだろう。 (4) LDAP サ−バは使えるか `22/08 * 初めに 最初 LDAP については "19-2. デジタル証明書の管理" で検討してみた。デジタル証明書 を LDAP サ−バで連携するのを確認したかったのである。でもその時その確認はできなか った。LDAPはネットワ−クでの資源管理のメカニズムであり、 DHCP の管理機構と性質が 似ている。その意味合いでこの章に移した。正直言って LDAP はかなりややこしく、取り つきにくい。この際 X.500 ディレクトリと LDAP の関係はとか、X.500 の DNディレクト リ・ツリ−だとか、そんなことは忘れてしまおう。LDAP は X.500 ディレクトリのサブセ ットである。これらをリポジトリ( Repository )という、日本語では格納庫。それだけ分 かっていればいい。多分 LDAP サ−バを利用するのは社内でのみだろう、外出先から利用 するというのは想定しにくい。昨今、社内の中にも部門ファイアウォ−ルがあるかも知れ ない。知識として LDAP サ−バが使うパケットは 389/TCP, 389/UDP である。 * LDAP( Lightweight Directory Access Protocol ) ユ−ザのデジタルIDを格納する場所として利用できるか調べるには、 OpenLDAP の 2.x 代でテストするべきだった。INDY の IRIX 5.3 では openldap-2.0.25 はコンパイルがや っかいだったので、openldap-1.2.10 でやってしまった。 LDAP でのデジタルIDの属性 である userCertificate。 これが含まれる inetOrgPerson というオブジェクトのクラス が、openldap-1.2.10 ではサポ−トされていないみたいだった。しかし、そのことを差し 引いても LDAP サ−バという代物、使えるようには思えなかった。 LDAP で管理する情報 はユニ−クなIDとして、DN( Distinguised Name ) という識別子を付け、属性を記述す る。記述フォ−マットは LDIF( Ldap Data Interexchange Format ) という。しかし、そ の記述はかなり自由度が高いというか、非常に分かりにくいものになっている。 slapd.conf と LDIF ファイルの中で現われる DN は、かなりあいまいと言える。DN は階 層構造をとるとは言うが、階層の実質的な意味合いは薄い。dn: cn=katou,o=NIX,c=JJ で も、dn: cn=katou,c=JJ,o=NIX でも定義としては問題ない。一番上の階層が国名を示す c でなくても構わない。識別するためだけの意味で DN はある。何でもいいのである。 オブジェクトは継承の階層構造をとるが、その親子関係がどうなっているのか分からない。 OpenLDAP のドキュメントには書かれていないのでないか。RFCを見ないことにはダメかも 知れない。slapd.oc.conf にオブジェクトの定義が書かれているが、親オブジェクトの記 述はない。RFC には XML の検証ファイルのような定義文が書かれている。 Netscape Communicator の機能をよく見ると、自分のデジタルIDを LDAP サ−バに送る メニュ−がある。これは一体どうなっている。 LDAP サ−バ側ではどういう処理をしてお くのか。更に疑問が。暗号化メ−ルを送りたい相手のデジタルIDが自分のコンピュ−タ に入っていないとする。暗号化メ−ルを送ろうとするその度に、 LDAP サ−バから相手の デジタルIDを取りに行くことはできるのか。取りに行っても、そのデジタルIDは自分 のパソコンには保管しないとか、するとか。もし保管しないとなると、 LDAP サ−バが動 いていなければ、暗号メ−ルを送れないことになってしまう。これはメ−ルソフトの実装 によるのだろうけど、 LDAP サ−バを実際に運用する段では、確認しておく必要があるこ とである。なかなかめんどくさい。 * OpenLDAP の動きを先ずは見てみたい << OpenLDAP 1.2 による >> /usr/local/etc/openldap/slapd.conf ------------------------------------------------------- |include /usr/local/etc/openldap/slapd.at.conf |include /usr/local/etc/openldap/slapd.oc.conf |schemacheck off |pidfile /usr/local/var/slapd.pid |argsfile /usr/local/var/slapd.args |database ldbm |suffix "o=NIX, c=JJ" << この2行が肝心。 |rootdn "cn=Katou, o=NIX, c=JJ" << 管理者の DN エントリ。 |rootpw secret |directory /usr/local/etc/openldap/NIX << デ−タベ−スを作るところ。 % /usr/local/libexec/slapd -d 1 << OpenLDAP サ−バを稼働させる。 -d 1 はデバ slapd 1.2.10-Release (2002年 8月22日(木曜日) 14時46分10秒 JST ) ッグ・オプション。 katou@indy:/usr/local/source/openldap-1.2.10/servers/slapd slapd starting LDIF ファイルをこんなように作ってみた。多分デジタルIDを登録するのは、 こんなよ うになるのでないか。しかし OpenLDAP 1.2のバ−ジョンでは、inetOrgPersonというオブ ジェクトをサポ−トしてないようなのだ。 エラ−も出るところで出ないので、 非常に分 かりにくい。今使えるオブジェトは、slapd.oc.conf に書かれている。 しかし OpenLDAP 2.x でも inetOrgPerson はデフォルトではサポ−トされていない。 別途定義したオプシ ョンのファイルを slapd.conf に追加指定して対応させる。 /usr/local/etc/openldap/temp.ldif -------------------------------------------------- |# ル−トDN |dn: o=NIX, c=JJ |objectclass: organization |o: CAD | |# 個々のユ−ザの DN |dn: cn=katou, o=NIX, c=JJ |objectclass: inetorgperson |cn: Katou Ikken |sn: Katou |mail: katou@nix.co.jj |userCertificate;binary:< file:///path/to/cert.der | |dn: cn=yasuko, o=NIX, c=JJ top の下に Person があって、Personの 下に |objectclass: top inetOrgPerson がある。クラス階層である。 |objectclass: Person |objectclass: inetOrgPerson mail と userCertificate属性は、例題でよく |cn: Hana Yasuko 使われる personオブジェクトには入ってない。 |sn: Yasuko inetOrgPersonというオブジェクトに入ってい |mail: yasuko@nix.co.jj る。userCertificateの属性値はデジタルID |userCertificate;binary: henomohohe.. だが、指定には2通りがある。 1個のレコ−ドに1つの識別子 DN( Distinguished Name ) を付ける。次にその識別子に 対する内容を記述する。属性という。属性は利用するオブジェクトに定義されたものを記 述する。必須と任意で記述の属性がある。 objectclass: organization には o のみが必 須である。Person には名前の cn, sn のみが必須になっている。 % ldapadd -D "cn=katou, o=NIX, c=JJ" -w secret -v -f temp.ldif % ls /usr/local/etc/openldap/NIX << 情報を登録するとこんなファイルができた。 NEXTID dn2id.gdbm id2entry.gdbm dn.gdbm id2children.gdbm objectclass.gdbm [ コマンドで確認してみる ] % ldapsearch -L -b "o=NIX, c=JJ" "(objectclass=*) " << 全部の情報が出る。 % ldapsearch -L -b "cn=yasuko, o=NIX, c=JJ" "(objectclass=*) " dn: cn=yasuko, o=NIX, c=JJ objectclass: inetorgperson cn: Hana Yasuko sn: Yasuko mail: yasuko@nix.co.jj [ Netscape Communicator で確認してみる ] Netscape のメニュ−、[Communicator]->[アドレス帳面] の [ファイル]->[新しいディレ クトリ] を選ぶ。ここには最初から"個人用アドレス帳"、"Netcenter Member Directory", "Verisign Directory" がある。これに検索するディレクトリを追加する。 ---------------------------------------- | ディレクトリ サ−バのプロパティ (全般) |--------------------------------------- | 説明 : [ Test Desu ] << "Test Desu" という名前にしてみた。 | LDAPサ−バ : [ 192.9.10.2 ] << OpenLDAP を入れた INDY のマシン。 | 検索開始場所: [ o=NIX, c=JJ ] << o=NIX c=JJ はダメ。区切りのカンマ | ポ−ト番号 : [ 389 ] がいる。 | | アドレス帳の検索画面で katou と入れると、"Katou Ikken" と "katou@nix.co.jj" が出 た。検索に大文字、小文字は関係ないようだ。入力画面では、リタ−ンキ−を押さなくて も、すぐに検索に行った。検索して何も見つからないと、 "一致する項目は見つかりませ ん" と出た。検索画面の出力項目には "名前、電子メ−ル、組織、電話番号、市町村、ニ ックネ−ム" がある。 ここでの検索は temp.ldif の "dn: cn=katou,o=NIX,c=JJ" の cn ではなく、その下の "cn: Katou Ikken" を見ている。 ------------------------------------------------- Netscape Navigator | LDAP 検索結果 - Netscape から LDAP を利用す |------------------------------------------------ る。URL入力場所 | 場所:[ ldap://192.9.10.2/cn=katou,o=NIX,c=JJ ] から LDAP サ−バに |------------------------------------------------ アクセスし検索する | Katou Ikken | オブジェクト クラス inetorgperson | 名前 Katou Ikken | 姓 Katou | 電子メ−ル katou@nix.co.jj * ダメ押しでこれでテストしてみるか strongAuthenticationUser オブジェクトの中に userCertificate 属性がある。 mail 属 性は入っていない。多分これで行けるのでないか。似たようなので、オブジェクト image の jpegPhoto 属性で試してみた。 Netscape では画像がちゃんと出なかったが認識はし てるみたいだった。 satou.ldif -------------------------------------------------- |dn: cn=satou, o=NIX, c=JJ |objectclass: top |objectclass: Person |cn: Satou Ikken |sn: Satou |objectclass: strongAuthenticationUser |userCertificate;binary:< file:///path/to/cert.der % ldapadd -D "cn=katou, o=NIX, c=JJ" -w secret -v -f satou.ldif << 追加する。 * 参考 「Software Design」 2001/01, P.102〜109, openldap-2.0.6 での例。 > Linux 真はまり道、LDAPを使ってみよう(前編)。2000/08/31 OpenLDAP 2.0 がリリ−ス。 LDAP v3 プロトコルに対応し TLS, SASL, UTF-8 日本語対応, 日本語検索が可能に。 「OpenDesign」 1998/10, SuiteSpot 3.5 におけるサ−バの構築。 > 第5章に Netscape Directory Server、ディレクトリと LDIF の詳しい解説がある。 「ASCII network PRO」 2000/07, P.100〜103, inetorgperson の記述は疑問。 > Apache-SSL & OpenLDAP インスト−ル実習。openldap-1.2.10 での例。 http://www.interq.or.jp/earth/inachi/openldap/admin/index-ja.html > OpenLDAP 2.1 管理者ガイド。とても詳しい。 http://www.linux.or.jp/JF/JFdocs/LDAP-Implementation-HOWTO/certificates.html > 9.LDAP によるデジタル証明書の発行。実際 LDIF ファイルにどう記述するのか。 「導入ガイド Netscape Directory Server バ−ジョン 3.0」 日本語ドキュメント > Enterprise Server を2000年対応でアップグレ−ドした際に入っていた。 「UNIX USER」 2002/01, 1,580 円税込み。見てない。特集:認証は LDAPで、OpenLDAP の > 導入と基本設定など。`26/10 に http://apt.jp/Articles/2002/uu-ldap/ に記事発見。 「Solaris による LDAP 実践ガイド」 2002/07/20, 3,800 円+税。見てない > ピアソンエデュケ−ション刊。iPlanet Directory Server の設定など。 ※Netscape Directory Server、 今は iPlanet Directory Server という名称に変わって いる。思った程高くないのでないか、15万円ぐらいじゃなかったか。1つ買ってみる か。他市販品には Novell NDS eDirectory と Microsoft Active Directory がある。 (5) LDAP サ−バの理解に再度挑戦 `26/10 -------------------------------------------------------------------------------- ここでは LDAP サ−バを利用するメドを付けるまでとする。 LDAP の理解には LDIF の記 述の仕方を理解することだが、C++の継承の構造を勉強した人は、一旦それを忘れた方 がいい。LDAP は大方何でも定義できるが、それをクライアントが利用できるかである。 -------------------------------------------------------------------------------- * だいたい分かった分かったぞ! 「導入ガイド Netscape Directory Server バ−ジョン 3.0」これをじっくり読むこと。ち ょっととっつきにくい感じがするが、よく読むと LDAP の仕組みにそのポイントが分かっ てくる。P.135 の"付録Aの DN についてのアドバイス"、uid ユ−ザIDは人間が見てあ る程度わかりやすいのにする、社員番号のような無意味な文字や数字の羅列はだめ、メ− ルアドレスの左辺がいいだろう。katou@nix.co.jj なら uid=katou とするということ。 LDAPサ−バのデ−タ構造の設計がポイントか。後々情報を追加できるようにしておきたい。 LDAPサ−バの中でのデ−タの管理は配列か。いやデ−タ構造は考えなくてもいい、それが LDAP というもの。RDB のように自分でデ−タ構造を設計したりする必要はない。LDAP に はデ−タのリレ−ションはない。大方、使うデ−タは決まっている。デ−タ構造は継承の 仕組みが取り入れられてはいるが、オブジェクト指向のとは少し感じが違う。 階層の名前の付け方は、インタ−ネットのドメイン名を元にするのが一般的になっている。 DN はただの識別のために利用される、dn: banngou=1, banngou=2 こんなんでもいいみた い。でもこれでは何だか分からないので、dn: uid=katou dc=henomohe というように付け る。検索は DN に対してするのではない。属性に対して行なう。そのため階層のツリ−は あまり広げない方がいいということである。 DN には決められた属性を使う必要はない。しかし各種ソフトウェアで DNの属性もそれな りに見て利用しているので、決められた属性を使うのが現実的である。X.500 では DN で 使うことができる属性、それに順番も決められている。LDAPでは順番は関係はない。それ に DN で使う属性とエントリで使う属性は対応してなくてもいいが、ツリ−の管理をやり 易くするということで、対応させておいた方がいい。 Netscape Directory Server ではエントリはGUIで入れる、その際にスキマ−チェック 機能をオンにしておけば、エントリを適当に書くとエラ−やワ−ニングが出て教えてくれ る。OpenLDAPにはそうしたGUIはない。テキストで記述していく。ひょっとしてフリ− ソフトの phpLDAPadmin が使えるかも知れない。Webベ−スの LDAP 管理ソフトである。 http://phpldapadmin.sourceforge.net/。PHP の ldap 関数でブラウザからデ−タを登録。 RDN( Relative Distinguished Name )相対識別名。DN の一番左の要素で uid か cn がよ く使われる、DNの他はブランチポイントという、o は組織名、ou は部署名、dc はドメイ ン構成要素などがよく使われる。uid には番号より名前の方が LDAP では望ましいとされ る。uid には無機的な 4097 とかいう社員番号より、kken という方が分かり易い。 だい だい DN の構造は dn: uid=kken, ou=people, dc=nix, dc=co, dc=jj でいいだろう。 * LDIF の記述について /etc/passwd ------------------------------------------------------- |kken:zxspokdo:200:100:Ikken Katou:/home/kken:/bin/csh xxx.ldif --------------------------------------------- |dn: uid=kken, ou=People, dc=example, dc=com |uid: kken |objectClass: top objectClass の topは必ずいる。雑誌、本によっては |objectClass: account top を記述してないのもあった。各自要確認。 |objectClass: posixAccount |cn: ken Katou 以下 posixAccount の属性が記述されている。cnは2 |cn: かとうけん つ書いているが、属性は複数あってもいい。 |userPassword: {CRYPT}zxspokdo |loginShell: /bin/csh cn の "かとうけん"、日本語は UTF-8コ−ドであるこ |uidNumber: 200 と。ldifファイルを UTF-8コ−ドに変換するコマンド。 |gidNumber: 100 # lv -Ou8 変換元ファイル > 変換先ファイル |homeDirectory: /home/kken |geos: Ikken Katou 最初の uid: kken はどこのクラスのものか。account の uid、posixAccount の uid。 account の属性くさいぞ、でないと account の意味がない。それとも acount のuid でもあり、posixAccount の uid でもあるということ?。結論は気にしなくてもいい。 最初の uid: kken の記述。objectClassを書いた後に、属性は記述すべきだと思うが。 どうでもいいみたい、変なの。objectClass の記述の順番はどうでもいいみたい。あ る記事には下位の継承のオブジェクトクラスは下に書くこととあったが。 省略した名称があるのもある、全部にある訳ではない。uid userid、o organizationName、 ou organizationUnitName、紛らわしい。大文字と小文字は区別しない、userPassword も userpassword も一緒。inetOrgPerson の定義は、inetorgperson.schema ファイルに入っ ている。posixAccount は nis.schema ファイルに入っている。 top { 必須 objectClass } person 以下、任意に description というの がある。これって何、注記みたいなものか。 dcObject { 継承 top, 必須 dc } person { 継承 top, 必須 cn cn, 任意 description userPassword ... } account { 継承 top, 必須 uid, 任意 host o ou ... } organization { 継承 top, 必須 o, 任意 userPassword ... } organizationalUnit { 継承 top, 必須 ou, 任意 userPassword ... } posixAccount { 継承 top, 必須 cn uid uidNumber gidNumber homedirectory, 任意 userPassword geos loginShell } organizationalPerson { 継承 person, 必須 objectClass cn sn, 任意 ou userPassword ... } > cn sn userPassword は person からの継承。 inetOrgPerson{ 継承 organizationalPerson, 必須 objectClass cn sn, 任意 uid o ou givenName mail jpegPhoto userPassword ... } > cn sn userPassword は person からの継承, ou は organizationPerson からの継承。 * 利用の検討 Usermin で各自いろいろ設定できるようにする。フォワ−ド機能とかバケ−ション機能と か。アカウントの発行やパスワ−ドの変更も Usermin でできる。 メインのマシンでやっ たら、予備のマシンでも同じことをやらないけないのでないか。これは大変だ。実際のと ころそんな二重手間をきちんとやるのはできる話ではない。一応 Mail-Store を予備のマ シンにしようと考えている。そこで LDAP を使って、一元的にできないか。 実際 LDAP サ−バを運用するには1台だけではだめだ。予備もないとだめだ。予備の持ち 方にマルチマスタ−・レプリケ−ションとシングルマスタ−の方式がある。マルチマスタ −は複数のサ−バで登録変更ができる。シングルマスタ−は1ヶ所だけでできる。他、登 録でなくて参照するだけのサ−バもあったりする。 Sun ONE Directory Server はマルチ マスタ−ができる、1つのサ−バはツリ−の部分に分けてもデ−タを持つことができる。 LDAP を導入すれば、それで全部解決できるのか。LDAP サ−バが動いてないと、何もでき ないことになってしまわないか。集中管理の危険性である。パソコン自体のロッグオンが LDAP なしでもできるようにできるのか。LDAP サ−バが動いてないと、ロッグオンもでき ないのか。Sun の NIS はまさにそうだった。Apollo はマシンにしばらくはロッグインで きた、ロ−カルでアカウント情報を保持するようになっていた。 多分、支店にも LDAP のスレ−ブサ−バがいるだろう。Mail-Storeだけの利用なら支店に LDAP サ−バがいる理由はない。パソコンのロッグオンを LDAP制御しようとするなら支店 は、支店内に LDAP サ−バがあった方がいい。そのためのサ−バを支店に置かないけない。 1Uの奥行きのない奴とか箱型とか、うるさくない奴がいい。支店や営業のノ−トパソコ ンの扱いはやっかいだ。客先に持ち出したり、本社に持参したり。 パソコンのロッグオンを LDAP 制御にするなら、いっそ DHCP サ−バもやるか。これまで 固定IPでパソコンの設定はやってきたが。支店のパソコンを本社にもってきた時、IP アドレスを変更しないといけない。めんどうである。1Uに LDAP と DHCP サ−バを稼働 させる。PRIMERGY なんかどうか。 さらにパソコンのファイルのバックアップとしても使 えないか。前から思っているのだが。パソコンの管轄は自分でないので実施は難しい。 何を管理するか。アカウント、ユ−ザが使えるリソ−スうんぬん。先ずは Mail-Store の メ−ルのアカウントだけ対象にする。それから後でファイル共有もやりパソコンのロッグ オンなどもやっていきたい、としよう。他に挙げると勤怠管理のアカウント、市販ソフト のアカウント、社内共有 Samba サ−バのアカウント、SSL-VPN 装置の A-Gateがざっとあ る。更に加わるものがあるとすると、認証VLANとか検疫ネットワ−クか。 何かのサ−ビスを利用する際に、アクセスしてきているユ−ザがちゃんと登録されたユ− ザか調べる。あるいはユ−ザは分かっていて、その人のさまざまな情報を知りたい。その 場合にも LDAP サ−バに問い合わせるということ。一つ注意したいのは、マシンのログイ ンには LDAP は利用しない方が無難ということ。/etc/passwd で root ユ−ザなどはログ インした方が安全である、ログインそのものができなくなる恐れがないということで。 LDAP を調べているとマシンそれにアプリケ−ションのユ−ザ情報を管理する仕組みにPAM と言うのが関係しているのが分かってくる。マシンのログイン等でデフォルトで PAMは使 われているらしい。最初から有効になっているようなのだ。制御ファイルは Solarisでは /etc/pam.conf である。このファイルはへたに書き換えてはいけない。二度とマシンにロ グインできなくなる恐れがある。PAM( Pluggable Authentication Module ) * パスワ−ドの暗号化について LDAP のユ−ザのアカウント登録用の LDIFファイルには、ユ−ザのパスワ−ドには暗号化 パスワ−ドを使うこと。CRYPT 暗号化方式のパスワ−ドは推奨しない。SSHA辺りを使用す ること。xxx.ldif ファイルで userPassword: {SSHA}/zaA/gPhX7R5N0hKOeyDR0palQMtTZjA というように記入する。暗号化の文字列は以下のように slappasswd コマンドで表示でき る。他にも LDAP の制御ファイルの slapd.conf の中でも、 LDAP 情報の構成木の管理者 であるパスワ−ドにも "rootpw {CRYPT}yAZ/QU1SiS1a7" このように利用される。 # slappasswd -h {CRYPT} << この暗号化のオプションの指示はだめみたい。 New password: henomohe << 文字列の henomohe を入れた。 実際にはこの Re-enter new password: henomohe << ように表示はされてこない。 Password generation failed for scheme CRYPT: scheme not recognized # slappasswd -h \{CRYPT\} '{CRYPT}' でもいい。小文字でもいい。CRYPT 暗 New password: henomohe 号化された "henomohe" は "qq00s1neY.UI."とい Re-enter new password: henomohe うこと。同じ文字列を入れても、毎回異なる文字 {CRYPT}qq00s1neY.UI. 列がでてくる。そういうことでよかったのかな?。 # /usr2/local/sbin/slappasswd デフォルトで SSHA 暗号化になっている。ここの New password: 記述は実は `2b/03 でのこと。LDAPのバ−ジョン Re-enter new password: は slapd -V とやって 2.4.19 です。 {SSHA}/zaA/gPhX7R5N0hKOeyDR0palQMtTZjA * 参考 「Software Design」2003/05, P.108〜119, 前後の号でも LDAP を掲載。 > "バ−チャルドメインと LDAP でらくらくシステム管理, 第2回 LDAP と Postfix"。 「UNIX MAGAZINE」2003/07と08, "特集:LDAP でネ−ムサ−ビス"。長原宏治。 > Solaris 9 の iDS の設定。Solaris 9 システム管理ハンドブックと記述は同じみたい。 http://www5f.biglobe.ne.jp/~inachi/openldap/ 稲地稔 この人、本も出している。 > OpenLDAP 2.2 管理者ガイド、英文の和訳。 「LDAP Supper Expert」2,079 円税込み、技術評論社、`26/04 本屋で見た。 > 最新ディレクトリサ−ビス活用情報、LDAP の今がわかる1冊。買いました。 「LDAP/OpenLDAP によるユ−ザ管理/認証ガイド」 秀和システム 2004/09 2,800 円。 > Samba との連携方法、セキュリティ設定方法。買ってないです。 「Software Design」2003/12, P.86〜93, "Sun Java System Identity Server による > Liberty Alliance Version 1.1 Specification の実現" 情報の一元管理。買ってない。 ------------------------------------------------------------------------------------ [ 付録 ] OpenLDAP のインスト−ル * SGI INDY IRIX 5.3 でコンパイルしてみた 2002年8月現在の安定版を make しようとしたのだが、 IRIX 5.3 では snprintf が ありませんとエラ−になってしまった。 openldap-stable-20020618.tgz、1304098 bytes。 展開したら openldap-2.0.25。 仕方ないので、openldap-1.2.10.tgz にしてみた。 % zcat gdbm-1.8.0.tar.gz | tar xvf - /usr/local/source/ に入れる。 regex-0.12 % cd gdbm-1.8.0 も同じく。ftp.iij.ad.jp などから取って来 % ./configure; make る。IRIX 5.3 では、% make install がうま % cp libgdbm.la /usr/local/lib/ く行かない。手作業でコピ−する。gdbm.hの % cp gdbm.h /usr/local/include/gdbm.h パ−ミッションを 644, bin, bin にする。 % zcat regex-0.12.tar.gz | tar xvf - これもないと openldap のコンパイルでエラ % cd regex-0.12 −になる。% make で regex.h とregex.o が % ./configure; make できる。手作業で % ar .. をやって、 ライ % ar ru libgnuregex.a regex.o ブラリ libgnuregex.a を作ること。 % setenv CPPFLAGS "-I/usr/local/source/regex-0.12 -I/usr/local/include" % setenv LDFLAGS -L/usr/local/source/regex-0.12 % setenv LIBS -lgnuregex % setenv CC gcc % ftp ftp.dti.ad.jp ftp> cd pub/net/OpenLDAP/openldap-release ftp> get openldap-1.2.10.tgz ( 1028715 bytes, Mar 23 2000 ) % zcat openldap-1.2.10.tgz | tar xvf - OpenLDAP の本家 http://www.openladp.org/。 % cd openldap-1.2.10 コンパイル・エラ−が出た場合などに、見る % ./configure --with-ldbm-api=gdbm こと。 % make depend; make % cd tests; make; cd .. % make install % ls -F ANNOUNCEMENT Makefile aclocal.m4 configure* libraries/ CHANGES Makefile.in build/ configure.in libtool* COPYRIGHT README clients/ contrib/ servers/ INSTALL acconfig.h config.log doc/ stamp-h LICENSE acinclude.m4 config.status* include/ tests/ /usr/local/etc/openldap に入ったの ldap.conf ldaptemplates.conf slapd.oc.conf slapd.conf 他にこれらのデフ ldapfilter.conf slapd.at.conf ldapsearchprefs.conf ォルトのファイル。 xxx.conf.default /usr/local/bin に入ったの ldapadd ldapdelete ldapmodify ldapmodrdn ldappasswd ldapsearch ud /usr/local/libexec に入ったの fax500 go500gw mail500 rp500 xrpcomp go500 in.xfingerd rcpt500 slapd * snprintf をゲットする 2004年2月、OpenSSH を試すためコンパイルの過程で Zlib が必要で、Zlibをコンパ イルしようとしたら、何やら snprintf のワ−ニングが出た。FAQ を見たら次のようなこ とが書いてあった。これで snprintf モジュ−ルの扱いが分かった。 If you don't have snprintf() or vsnprintf() and would like one, you can find a portable implementation here: http://www.ijs.si/software/snprintf/ % cd /usr/local/source % zcat snprintf_2.2.tar.gz | tar xvf - autoconfのソ− % cd snprintf_2.2 スも入っていた。 % ls -F ↓ INSTALL Makefile README.html snprintf.h with_autoconf/ LICENSE.txt README snprintf.c test.c Makefile ------------------------------------------------------------------- |# Make sure you include -DHAVE_SNPRINTF in CFLAGS if your system |# does have snprintf! |# If you need (long long int) support and you sprintf supports it, |# define -DSNPRINTF_LONGLONG_SUPPORT |CC = gcc |CFLAGS = -DPREFER_PORTABLE_SNPRINTF -O3 \ << 02 に変更すること。 | -Wall -Wpointer-arith -Wwrite-strings \ | -Wcast-qual -Wcast-align -Waggregate-return \ | -Wmissing-prototypes -Wmissing-declarations \ | -Wshadow -Wstrict-prototypes | | % make << GNU make 使用。できた snprintf.o を必要なところにおく。 % ls INSTALL Makefile README.html snprintf.h test.c LICENSE.txt README snprintf.c snprintf.o with_autoconf * Red Hat Linux 9 ではまるでコンパイルできんかった # cd /etc/openldap;ls ldap.conf ldapfilter.conf ldapsearchprefs.conf ldaptemplates.conf ldap.conf ---------------------------------------------------------------------------- |# $OpenLDAP: pkg/ldap/libraries/libldap/ldap.conf,v 1.4.8.6 2000/09/05 ... |# | |#BASE dc=example, dc=com |#URI ldap://ldap.example.com ldap://ldap-master.example.com:666 |#SIZELIMIT 12 |#TIMELIMIT 15 |#DEREF never |HOST 127.0.0.1 |BASE dc=example,dc=com # rpm -qa | grep ldap パッケ−ジは入っているみたいだが、実体はどこにある?。 openldap-2.0.27-8 openldap-devel-2.0.27-8 nss_ldap-202-5