inetd - みる会図書館


検索対象: UNIX MAGAZINE 1999年2月号
10件見つかりました。

1. UNIX MAGAZINE 1999年2月号

連載 / IJN Ⅸの玉手箱ー① 図 7 tcpd のアクセス言彖 Dec 17 19 : 55 : 22 mypc rshd [ 14918 ] : connect from herpc Dec 17 19 : 48 : 12 mypc te1netd[14832] : connect from somepc Dec 17 18 : 09 : 07 mypc ftpd [ 14421 ] : refused connect from herpc Dec 17 15 : 22 : 52 mypc ftpd [ 10418 ] : connect from nullpc ジで提供される tcpd の場合、 syslog デーモンの設疋フ ァイル (/etc/syslog. conf) を修正しないとログは残りま せん。 syslog については機会を改めて詳しく紹介する予定な ので、今回は tcpd のアクセス言当求をファイルに残す手順 だけを簡単に紹介します。 1. ログファイルを決める ます、アクセス記録を保存するログファイルを決めま す。ここでは、、 /var/log/tcpd. log" にします。 2. 空のログファイルを作成する touch コマンドを使って、空のログファイルを作成し ます。 bash# touch /var/log/tcpd. 10g bash# ■ 3. /etc/syslog. conf を修正 syslog の疋ファイル /etc/syslog. conf をエデイタで 編集し、ファイルの地頁に以下の 1 行を加えます。 /var/log/tcpd. 10g auth . info 4. syslog デーモンに変更を反映させる syslog デーモン (syslogd) に SIGHUP シグナルを送 ると、設定ファイルを読み込みなおします。 syslogd の プロセス ID は /var/run/syslog. pid に言当求されてい るので、以下のように実行します。 bash# kill -HUP 'cat /var/run/syslog. pid' bash# ■ 以上の作業をおこなえば、 tcpd を利用しているサー ピスのアクセス記録が /var/log/tcpd. log に残ります。 FreeBSD と BSD/OS とではメッセージの形式か彳妙 に異なり、 FreeBSD のログファイルの内容は図 7 のよう になります。あとは定期的にログファイルを詩ヾ、おかし なアクセスがないかどうかをチェックします。 このほかにも、 tcp-wrappers のパッケージには、ア クセス制御データベースのチェック・プログラムである tcpdchk や、与・えられたサービスとホストの組に対して UNIX MAGAZINE 1999.2 アクセスの可否を調べる tcpdmatch といったフグラム が用意されています。これらのプログラムは、 FreeBSD では /usr/local/sbin に、 BSD/OS では /usr/libexec/ tcpd-bin の下にあります。詳しい使い方については、オ ンライン・マニュアル tcpdchk(8) や tcpdmatch(8) な どを参照してください。 なお、 tcp-wrappers と似たような機能を実現するソフ トウェアとして、 xinetd と呼はれるパッケージがありま す。 xinetd は tcp-wrappers と違い、 inetd そのものを 置き換える去がとられています 5 。 BSD/OS には tcp-wrappers が付属しているため、今 回は tcp-wrappers のみを紹介しましたか : 両者の機能面 での上交については本誌の「転ばぬ先のセキュリティ TCP wrapper と xinetd 」 [ 1 ] に詳しく書かれています。 興未のある方は参照してください。 NIS サーバーの設疋 これまでにも、 NIS て提供されるユーサー情報やホスト 情報などを扱うガ去は紹介しました。しかし、とりあげた のは NIS の情報を利用する側、つまり NIS クライアント としてマシンを重川乍させるための設定だけでした。 この節では、 NIS の清報を提供する側、つまり NIS サ ーを構築するための設定を紹介します。マシンが 2 ~ 3 台しかなく、ユーサーが自分 1 人だけという自宅のネ ットワークのような竟だとあまり有効ではないかもしれ ませんが、マシンがそれなりに増えてくると、 NIS サー バーで情報を集中管理することのありがたみが分かるでし NIS サーバーには 2 種類あり、情報のオリジナルデ ータをイ尉寺する、、マスター (master) サー " と、マ スターサーバーからコピーされたデータをもつ、、スレープ (slave) サーバー " に分かれます。 5 FreeBSD には、 xinetd のノヾイナリ・ノ、ツケージ (xinetd-2.2.1. tgz) が用意されています。 99

2. UNIX MAGAZINE 1999年2月号

96 ~ 98 行目 : スクリーン・フォントの成疋 ような処理がおこなわれます。 /etc/rc. d/rc. font ファイルかま行可能であれば、読み 18 行目 : スクリーン・セーバーカ種川乍するまでの時間を 込んで実行します。 コンソールのフォントを変更したいときは、このスクリ /bin/setterm コマンドを用いて、コンソールのスクリ プト中に言己します。 ーン・セーバーカ種川乍するまでの時間を 15 分に言し 107 ~ 109 行目 : iBCS 工ミュレータの成疋 /etc/rc. d/rc. ibcs2 ファイルかま行可能であれは、読 27 ~ 29 行目 : CD-ROM ドライプをマウント み込んで実行します。 /etc/rc. d/rc. cdrom が実行可能であれば、これを読み iBCS (lntel Binary Compatibility Specification 込んで実行します。 工ミュレータとは、 Linux 上で SystemV R3/R4 な IDE/ATAPI 、 SCSI 、および独自規格の CD-ROM どのプログラムを実行するエミュレータです。 ドライプを順番に探し、もしあれば /cdrom 以下にマ 112 ~ 114 行目 : httpd の走旦重力 ウントします。 /etc/rc. d/rc. httpd ファイルか夫行可能であれば、 32 ~ 34 行目 : /etc/HOSTNAME がなければ作成 み込んで実行します。 38 行目 : システムのホスト名を設定 117 ~ 119 行目 : samba の起動 41 ~ 53 行目 : ネットワーク関係の設定 /etc/rc. d/rc. samba ファイルかま行可能であれば、読 /etc/rc. d/rc. inetl カ躾行可能であれば、 /etc/rc. d/ み込んで実行します。 rc. inetl と /etc/rc. d/rc. inet2 を読み込んで実行しま 122 ~ 124 行目 : キーポードマッフ。の言聢 す。 /etc/rc. d/rc. keymap ファイルが実行可能であれは、 /etc/rc. d/rc. inetl では、ネットワーク・インターフェ 読み込んで実行します。 イスの言置をおこないます。 127 ~ 129 行目 : rc. 10Ca1 の実行 /etc/rc. d/rc. inet2 では、 /usr/sbin/rpc ・ portmap /etc/rc. d/rc.local ファイルか夫行可能であれば、 や /usr/sbin/rpc. inetd など、ネットワーク関連のデ み込んで実行します。 ーモンを起動します。 通常、ホスト固有の設定はこのファイルに言当します。 56 ~ 58 行目 : netatalk の起重力 /etc/rc. d/rc. atalk というファイルカ躾行可能であれ /etc/rc. d/rc. s や /etc/rc. d/rc. M から読み込まれる ば、これを読み込んで実行しますにの行は、デフォル 期化ファイル (/etc/rc. d/rc. pcmcia など ) は、そのフ トではコメントアウトされています ) 。 ァイルか実行可能でなけれは第売み込まれません。このため、 63 行目 : crond デーモンの起動 # chmod 644 /etc/rc . d/rc . pcmcia 66 ~ 72 行目 : 不要なロックファイルや c 。 re ファイルの 削除 などとして実行許可をなくしておけば、このファイルは読 75 ~ 76 行目 : / 、 /tmp 、 /var/tmp の許可ビットを設 み込まれなくなります。 シングルユーサー・モードへの移行時 ルート・ディレクトリの許可ピットを 755 に、一一時ディ レクトリの許可ビットを 1777 に強制的に設定します。 システムがシングルューサー・モード ( 実行レベル 1 ま 79 行目 : 共有ライプラリの設定 たは S) へ移行するときは、初期化スクリプト /etc/rc. d/ 82 ~ 85 行目 : sendmail デーモンの起動 rc. K が実行されます。 /usr/sbin/sendmail をバックグラウンド・モードで このスクリプトは、最初にすべてのプロセスに SIG- 起動します。 TERM シグナルを送出して約 8 秒待ちます。その後、 88 ~ 93 行目 : APM (Advanced Power Management) quota とアカウンティングを中止し、すべてのプロセス デーモンの起動 に SIGKILL シグナルを送出します。 ー① 連載 / Linux でリラックス 1 一 = ロ ニ 1 一口 UNIX MAGAZINE 1999.2 128

3. UNIX MAGAZINE 1999年2月号

連載 / IJN Ⅸの玉手箱ー① 図 1 inetd のみを用いた場合 ホスト A FreeBSD の場合、 OS 本体にはイ寸属しておらす、バイ ナリ・パッケージとして提供されています。そこで、まず はバイナリ・パッケージを FreeBSD マシンにインストー ルするところから始めましよう。 バイナリ・パッケージのインストール tcp-wrappers のノヾイナリ・ノヾッケージは FreeBSD の CD-ROM に鸞求されています。ファイル名は tcp- wrappers-7.6. tgz です。 CD-ROM の構成によって多 少違うかもしれませんが、 CD-ROM を /cdrom にマウ ントした場合は /cdrom/packages/All に置かれている 、はすです 1 。 〇 バイナリ・パッケージは FreeBSD 関連の FTP サイ トからも入手できます。国内であれは、 ・ ftp://ftp[1-6].jp.freebsd.org/pub/FreeBSD/ packages-stable/AII/ などにあるので、 FreeBSD の CD-ROM が手許にない 場合はこちらから入手するといいでしよう。 こでは、ノヾイナリ・ノ、ツケージを / tmp に置いたこと にします。インストールは、バイナリ・パッケージのイン ストーラである pkg-add を実行するだけで自重加勺におこ なわれます。図 3 のように、 、、一 v " オプションを付けると ともできます。 インストールの様子か詳しく表示さプログラム・ファ tcp-wrappers の最新バージョンは 7.6 です。国内で イルのほか、ライプラリやオンライン・マニュアルなどが は、以下に示す FTP サイトなどからソースパッケージ どこに置かれるのかが分かります。 (tcp-wrappers-7.6. tar. (z) が入手できます。 以 E ぞインストールは完了です。しかし、このままの状 ・ ftp://ftp.jpcert.or ・ jp/pub/security/tools/ 態ではインストール前と何も変わりません。 tcpd の機能 tcp-wrappers/ を利用するには、すくなくとも以下の設定が必要です。 ・ ftp://ftp.win.or ・ jp/pub/network/security/ ・ (inetd カ甘是供する ) どのサーピスに対して tcpd を適 tcp-wrappers/ 用するか。 ・あるサービスに対して、 tcpd をどのように動作させる BSD/OS に付属の tcp-wrappers は、ノヾージョン 7.3 をもとに BSD/OS 独自の拡張が施されたものです。具 ー勺には、、、 nolog" および、、 exec" というオプションか 前者は inetd の設定ファイルである /etc/inetd. conf 加されています。詳しくは、 BSD / OS のオンライン・マ を編集し、特定のサービスに対して tcpd を起動するよう ニュアル hosts-options(5) などをご覧ください。機育顎勺 に変更します。後者は tcpd が参照するアクセス制御デー には肄 i バージョンとあまり変わりませんが、必要であれ タベースを作成し、アクセスを許可 ( あるいは拒否 ) する は・ソースパッケージを入手してインストールするといいで ホストを設定します。 しよう。去斤バージョンは BSD/OS にも対応している 1 これと異なる場合は、 "packages" というサプディレクトリを探してみ ので、すんなりコンパイルできます。 てください。 fingerd i netd ホスト B telnetd 図 2 inetd と tcp-wrappers を組み合わせた場合 ホスト A tcpd ftpd i n etd ホスト B telnetd アクセス制御 テータベース アクセスログ 93 UNIX MAGAZINE 1999.2

4. UNIX MAGAZINE 1999年2月号

連載 / UN Ⅸの玉手箱ー① 図 4 FreeBSD のバイナリ・パッケージに付属する inetd. conf のサンプルファイル ( 一部 ) # lnternet server configuration database ( # ) inetd. conf 5.4 (Berke1ey) 6 / 30 / 90 ftp telnet shell login finger stream stream stream stream stream t CP t cp tcp tcp t cp nowait nowait nowait nowait nowait て 00t root root nobody /usr/local/libexec/tcpd ftpd ー 1 /usr/local/libexec/tcpd /usr/local/libexec/tcpd /usr/local/libexec/tcpd rlogind /usr/local/libexec/tcpd fingerd —s rshd telnetd tcpd が /usr/libexec にインストールされているとしま しよう。 FreeBSD や BSD/OS ではオリジナル・ディ レクトリが /usr/libexec なので、あるサーピスに対して tcpd を適用するためには、以下の手順でファイルの移動 などをおこないます。 1. オリジナルのサーバー・フログラムをデフォルト・ディ レクトリに移重丿ける。 2. オリジナルのサーバー・プログラムは、 tcpd へのシン ポリック・リンクとする。 たとえは、 ftpd を tcpd 経由て起動したけれは次のよ うに実行します。 bash# cd /usr/libexec bash# mv ftpd /usr/local/libexec/ftpd bash# ln —s /usr/libexec/tcpd ftpd ー屬己の設定をした場合、あるリモートホストがローカル ホストに対して ftp を実行したときの重川は以下のように なります。 1. /etc/inetd. conf の ftp サーヒ、スに対応する行には、 第 6 フィールドに、、 /usr/libexec/ftpd" と書かれてい る。したがって、 inetd は /usr/libexec/ftpd を実行 するが、これは /usr/libexec/tcpd へのシンポリック・ リンクであるため、実際には tcpd か起動される 2 2. tcpd は ( 彳幻する ) アクセス制御データベースをチェッ クし、アクセスか許可されていれば、 /etc/inetd. conf の第 7 フィールドを参照する。 3. 第 7 フィールドに、 ftpd -1 " と書かれていれば、 tcpd はデフォルト・ディレクトリにある ftpd を起重丿ける。 2 BSD/OS の場合、第 6 フィールドには最初から "/usr/libexec/ UNIX MAGAZINE 1999.2 tcpd" と書かれているため、直接 tcpd か徒斷力されます。 ただし、 BSD/OS に新属する tcpd や FreeBSD のノヾ イナリ・パッケージで十当共される tcpd の場合、デフォル ト・ディレクトリは /usr/libexec となっており、オリジナ ル・ディレクトリと同しです。このため、 /etc/inetd. conf を変更したくなければ、ソースパッケージを入手してデフ ォルト・ディレクトリを変更した tcpd をインストールし なおす必要があります。 この方法は /etc/inetd. conf を変更しなくてもいいと いうメリットがある反面、どのサービスに tcpd が使わ れているのかが分かりにくいという欠点があります。次に 紹介するガ去なら、 /etc/inetd. conf を見ればどのサーピ スに tcpd カイ吏われているかが一一目瞭然なので、そちらを 利用するほうがいいでしよう。 /etc/inetd. conf を変更する 2 番目の方法は、デフォルト・ディレクトリとオリジ ナル・ディレクトリか 1 司ーの場合に適用できます。 /etc/ inetd. conf を修正するだけでよく、サーバー・プログラ ムの場所などを変更する必要はありません。 具イ勺には、 /etc/inetd. conf ファイルの第 6 フィー ルドを tcpd の系寸パス名に変更します。 FreeBSD の場 合、 tcp-wrappers のノヾイナリ・ノヾッケージをインストー ルすると、 inetd. conf. wrapped. sample というサンプル ファイルが /usr/local/etc にインストールされます。 サンプルファイルの中身は図 4 のようになっています。 オリジナルの /etc/inetd. conf とくらべると、 inetd 自身 が処理するサービス ( つまり、第 6 フィールドが、、 inter- nal " となっているもの ) を除き、すべてのサービスの第 6 フィールドが、、 /usr/local/libexec/tcpd" に置き換わっ ています。すべてのサーピスに対して tcpd を適用する必 要はないかもしれませんが、朝行で紹介する ) アクセス 95

5. UNIX MAGAZINE 1999年2月号

連載 / UN Ⅸの玉手箱 - ① 図 5 テフォルト・ティレクトリ以外のサーバー・プログラムを指定する場合 finger stream tcp 変史後 finger stream tcp nowait nobody /usr/local/libexec/tcpd fingerd —s nowait nobody /usr/local/libexec/tcpd /usr/local/libexec/in. fingerd 制御データベースて軻も指定しなけ川ま従来の inetd と同 し重川をするので、サンプルファイルを /etc/inetd. conf にコピーするのがてっとり早いでしよう。 また、第 7 フィールドのサーバー・プログラム名を絶 対パスて指定すると、デフォルト・ディレクトリ以外にあ るプログラムを実行できます。たとえは、 GNU finger の ように、 OS に伺属する fingerd とは異なるバージョンの finger サーバーを導入する場合を考えてみましよう。 FreeBSD で提供されている GNU finger のバイナ リ・ノヾッケージ (gnu-finger-l. 37. tgz) をインストール すると、従来の fingerd に相当するサーバー・プログ ラムは /usr/local/libexec/in.fingerd となります。これ を /usr/libexec/fingerd にコピーしてしまう方法もあり ますが、できるだけファイルの構成を変えたくなけれは、 /etc/inetd. conf の finger サービスに対応する行の第 7 フィールドを、図 5 のように変更します。 /etc/inetd. conf を変更したら、それを inetd に反映 させなけ川まなりません。 inetd は、 SIGHUP シグナル を受け取ると /etc/inetd. conf の内容を読み込みなおすの で、マシンを起動したくなければ以下のように実行しま アクセス制御データベースの設定 bash# ■ bash# kill -HUP 130 130 ? ? IWs 0 : 00.00 (inetd) bash# ps ax ー grep inetd す。 96 を拒否するサービスとホストの組をそれぞれ言当します。 ーピスとホストの組、 hosts. deny ファイルにアクセス れます。 hosts. allow ファイルにアクセスを許可するサ アクセス制御データベースには 2 つのファイルが用いら サーピスとホストの組を指定します。 タベースを設定し、アクセスを許可 ( あるいは拒否 ) する か決まったら、次は tcpd が参照するアクセス制御デー /etc/inetd. conf を変史して tcpd を適用するサーピス これらのファイルは、 BSD/OS に付属する tcpd であれ は /etc 、 FreeBSD てオ是供されるバイナリ・パッケージで であれß/usr/local/etc に作成します。両方とも存在し なかったり空の場合はアクセス制彳卸がおこなわれす、従来 の inetd と同じ重川乍になります。 アクセス制御の対象はホスト単位だけでなく、ネット ワークやネットグループなどのグループ単位て指定するこ とができます。これらはテキスト形式のファイルで、以 下に示すフォーマットに従って 1 行ずつ工ントリを書き ます。 d 佖 emo れ」な信 client-list [ : shell-command] 各フィールドの意味は以下のとおりです。 ・ d 佖 emo れ」な アクセス制御の対象となるデーモンを指定します。 でいうデーモンとは、サーバー・プログラムのプログラ ム名を指します。 /etc/inetd. conf の第 7 フィールドに 絶対パスで指定した場合も、 こにはプログラム名のみ を言当しなけれはなりません。絶対パスて指定すると、 tcpd がアクセス制御データベースを検索してもマッチ しないので注意してください。複数のデーモンを指定す るには、以下のように空白またはカンマで区切ります。 rlogind,telnetd ・ c 〃 e れた〃 アクセス制御の対象となるホストを指定します。ホスト 単位でもグループ単位でも指定でき、ホスト単位の場合 は該当するホストのホスト名か IP アドレスを言当しま す。 れ ullpc , somepc , 192.168.1.12 グループ単位での指定には 3 つの去があり、ネットワ ークかドメイン、またはネットグループを記主します。 ネットワークを指定する場合はドット表記でネットワー ク番号を言当します。このとき、ホスト番号の部分は省 UNIX MAGAZINE 1999.2

6. UNIX MAGAZINE 1999年2月号

U N Ⅸの玉手箱 null tcp—wrappers と NIS サーバーの設定 前回は、ホスト名と IP アドレスを対応づけるための 仕組みとして、ローカルな /etc/hosts ファイルと NIS 、 DNS の概要、クライアントとしての設定について説明し ました。さらに、リモートホストからのアクセスを制彳卸す るための方法として、 inetd カ壻理するサーピスに対する アクセス制御の設定などを紹介しました。 オリジナルの /etc/inetd. conf ファイルをカスタマイ ズすることにより、あるサービス ( ポート ) に対応するサ ーバー・プログラムを起動しないように設正できます。し かし、この方法では、あるサービスを提供する / しないと いう単純な制御しかおこなえません。 これに対し、あるサービスへのアクセスをホストごと に制御する機能を、従来の inetd を拡張するかたちで実 現する方法がいくつか提案されており、 BSD/OS には tcp-wrappers というパッケージが組み込まれていま す。 FreeBSD では OS にバンドルされてはいないものの、 バイナリ・パッケージを利用すれは簡単にインストールで きます。そこで、はしめに前回の続きとして tcp-wrap- pers の概要と設定について説明します。 後半では、 NIS サーバーの設定方法を紹介します。 れまでにも述べたように、ネットワークに接続されたマシ ンが数台を超えると、アカウントやホスト情報の管理はか なり煩雑になってきます。 NIS を導入すれは、 NIS サー バーがこれらの↑帯にを集中管理するので、更新の手間を軽 減できるだけでなく、設疋ミスの可能性を減らし、情報の 整合をより確実に保つことができます。 残念ながら、 BSD/OS には NIS サーバーに必要なフ ログラムなどが付属していないため、今回は FreeBSD を 対象に NIS サーバーの設定去を説明します。 92 tcp wrappers inetd と、 tcp-wrappers は、大雑把に表現すると、 inetd か管理するサー ・プログラムとの仲介役として 機能し、サーバー・フログラムの起動を制御する " プログ ラムです。 inetd は各サーバー・プログラムを直接起世す、最 初に tcpd を起動します。 tcpd はリモートホストのホス ト名 ( または IP アドレス ) をもとに独自のアクセス制御 データベースを参照し、許可されているホストなら対応す るサーバー・フログラムを起動し、そうでなけれはアクセ スを拒否します。ちょうど tcpd が inetd を包み込むよ うなかたちて機能するため、、、 wrapper" と名付けられて います。 たとえは、リモートホストであるホスト A およびホス ト B が、ローカルホストに対して ftp コマンドを実行した としましよう。オリジナルの inetd は、 /etc/inetd. conf で ftp に対応する行をコメントアウトしていないかぎり、 どちらのホストからのアクセスも許可しサー ノヾーー・、フロ グラムである ftpd を起動します ( 図 1 ) 。この場合、ホス ト A とホスト B にかぎらす、すべてのリモートホストか らの ftp リクエストを受け付けます。もちろん、 ftpd の 言立によって特定ユーサーからのアクセスを拒否すること はできますが、すくなくとも ftpd は起動されます。 一方、 tcp-wrappers を導入し、ホスト A からの ftp リクエストのみを許可するようにアクセス制御データベー スを設定しておくと、ホスト B からの ftp リクエストは拒 否さ ftpd は起動されません ( 図 2 ) 。さらに、 syslog デーモンやメールなどを利用してアクセスの言当求を残すこ UNIX MAGAZINE 1999.2

7. UNIX MAGAZINE 1999年2月号

連載 / IJN Ⅸの玉手箱ー① 図 3 tcp-wrappers のインストール (FreeBSD) bash# pkg—add —v /tmp/tcp—wrappers—7.6. tgz Requested space: 224392 bytes, free space : 136899584 bytes in /var/tmp/instmp. R26578 extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : extract : Package name is tcp—wrappers—7.6 CWD to /usr/local /usr/local/include/tcpd. h /usr/local/libexec/tcpd /usr/local/sbin/tcpdchk /usr/local/sbin/tcpdmatch /usr/local/bin/safe—finger /usr/local/bin/try-from /usr/local/lib/libwrap. a execute ' ranlib /usr/local/lib/libwrap. /usr/local/lib/libwrap. so . 7.6 execute '/sbin/ldconfig —m /usr/local/lib' /usr/10ca1/man/man3/hosts—access . 3. gz /usr/10ca1/man/man5/hosts—access . 5. gz /usr/IocaI/man/man5/hosts—options.5. gz /usr/10ca1/man/man8/tcpd.8. gz /usr/10ca1/man/man8/tcpdchk.8. gz /usr/10ca1/man/man8/tcpdmatch.8. gz /usr/local/etc/inetd. conf . wrapped. sample CWD t 0 Running mtree for tcp—wrappers—7.6. mtree —U —f + MTREE—DIRS —d —e —p /usr/local Attempting to record package int0 /var/db/pkg/tcp-wrappers-7.6. Package tcp-wrappers—7.6 registered in /var/db/pkg/tcp—wrappers—7.6 bash# 日 BSD/OS の場合、いくつかのサービスに対して tcpd を起動する言定があらかしめ /etc/inetd. conf にⅱ当され ています。しかし、 OS のインストール時にはアクセス 制御データベースか存在しないため、そのままでは従来の inetd と同じ重川をします。したがって、 BSD/OS でも アクセス制御データベースを作成する必要があります。 以降では、それぞれの設定を順に説明します。 /etc/inetd. conf の設定 inetd の成疋ファイル /etc/inetd. conf には、どのサー ビスに対して tcpd を起動するのかを指定します。具イ勺 には、 /etc/inetd. conf の第 6 フィールドと第 7 フィー ルドを書き換えることにより、 tcpd 経由てサーバー・プ ログラムを起動するように設定します。 オリジナルの inetd を利用する場合、第 6 フィール 94 う意味でした。 ドは、、サーノ、 フィールドは、、 tcpd のパス名 ( 絶対パス ) " 、第 7 フィー これに対し、 tcpd を利用する場合、第 6 フィールドは、、サーバー・プログラム夫行時の引数 " とい ・プログラムのパス名 ( 糸寸パス ) " 、第 7 ルドは、、 ( アクセスカ午可されていれは ) tcpd か起動づ - る サーバー・プログラムの名前と引数 " という意味に変化し ます。また、 tcpd ではコンパイル時に、、サーバー・プロ グラムが置かれているディレクトリ " が定義されています にこでは、、、デフォルト・ディレクトリ " と呼ぶことにし ます ) 。第 7 フィールドのサーバー・プログラムをプログ ラム名のみで指定すると、サーバー・プログラムはデフォ ルト・ディレクトリにあるものとして扱われます。 この性質を利用すると、あるサービスに対して tcpd を 適用するための設定に 2 不頁のガ去カ硬えます。具ー勺に は、それぞオ LJ ユ下のようになります。 サーパー・プログラムを tcpd で置き換える デフォルト・ディレクトリが、オリジナルのサーバー プログラムが置かれているディレクトリにこでは、、、オ リジナル・ディレクトリ " と呼ぶことにします ) とは異な る場合、このガ去を使うと /etc/inetd. conf をまったく変 更する必要がありません。 デフォルト・ディレクトリが /usr/local/libexec で、 UNIX MAGAZINE 1999.2

8. UNIX MAGAZINE 1999年2月号

うがよい、 G3 の場合キャッシュ容量が OKB と 512KB では明らかな速度差があるが、 512KB と IMB の差はほ とんどない、 MacOS がキャッシュを有効に使いきって いないだけではないか、といったフォローがありました。 Newsgroups: . os. bsd. freebsd fj.lan fj.unix Subject: host name FreeBSD の山も丘のバージョンでは、ホスト名に ( アンダースコア ) か含まれているとうまくネームサーバ ーか引けないようです。 nslookup でうまくいっても tel- net ができないという現象もあります。 RFC952 などに はホスト名やドメイン名は英数字とハイフン (- ) とピリオ ド (. ) て構成されると書いてあるのですが、 /etc/hosts に書くと telnet で使えたりして、実装に混乱がみられま す。このあたりの経緯について参考になる情報はあるで しようか、という質間記事です。 これに対して、 ーが使えないのは DNS だけで、ホ スト名そのものにはそのような制限はない、 ーが使え ないのはかって区切り記号に使っていたなどの歴史的経 緯があるのではないか、 BIND の新しいバージョンで は使える文字のチェックが厳しくなっている、もともと ーは DNS の規格て認められた文字ではなかった、 が使えないシステムとのメール・ゲートウェイなどを実 現するために制限を加えたのではないか、英数字とハイ フンというのは OSI の PrintabIeString と一致して いる、 RFC1912 には DNS のラベル文字そのものに 対する制限はない、インターネットのホスト名やドメイ ン名で使用できるのは英数字とハイフンだけで、これは ARPANET のホスト名の制限にまて遡る、 SMTP で使 用するホスト名やメールアドレスにも同し制限が適用さ れるという言当がある、といったフォローがきました。 Newsgroups: fj.unix,fj. sys. sgi Subject: [Q] Apache Apache 1.3.3 をインストールしたのですが、 httpd が 起動しません。工ラーログには「ポート 80 番がすでに使 われている」というメッセージが残っています。どのよ うにすれはポート 80 番で httpd を動かすことができる のでしようか、という質間記事です。 これに対して、コマンド行から一 f オプションで httpd. c 。 nf ファイルを指定して起動し、エラーメッセージや工 ラーログの内容をよく確認する、指定したポートがすで に使われている場合は、そのサーピスを停止するか別の ポートを使う必要がある、 1023 番以下のポートを使用す るには r 。。 t 権限でソフトウェアを起動する必要がある、 スタンドアローンで動作させるためには ServerType を inetd ではなく standalone とする、 OS 付属の httpd がすでに動いているのではないか、スタンドアローンで 動作させる設疋と inetd で動作させる設定が両方書いて あるのではないか、 inetd を使わないようにするのであれ は、 /etc/inetd. conf 内の http に関する記を削除する かコメントアウトして、 inetd に対して、、 kill -HUP" で HUP シグナルを送り、 inetd. conf を再言もムみさせると よい、といったフォローがありました。 ネットワーク関連のデーモンは UNIX のプート時に 起動する方法と、 inetd から起動する方法がありますが、 inetd の役割を知らないと混乱するのでしよう Newsgroups: fj.sys. mac Subject: Win/Mac でのネットワークの組み方 いままで Windows を使ってきましたが、 Macintosh のユーサーになったので、 Microsoft の Personal Web Manager を使って Macintosh から既存の Windows の LAN に参加しようと思います。しかし、現在は Macin- t 。 sh 側では自分しかみられません、どうしたらよいので しようか、という質間記事です。 これに対して、もとの記事に書かれている情報が少な く、何をどうしたいのかが分からない、というフォロー がきて、 6 台の Windows PC ( 95 / 98 / NT ) でピアツー ピア型のネットワークを組んであり、 Macintosh からこ のネットワーク上のプリンタと MO ドライプを共有し たい、 Personal Web Server を使うと Macintosh を WWW サーバーにすることができ、 FTP でファイル共 有ができると聞いた、という追加説明がありました。 これに対して、ネットワーク上で Macintosh に Win- dows のふりをさせる DAVE というソフトウェアや、 逆に Windows に Macintosh のふりをさせる PC MACLAN というソフトウェアがある、 Personal Web Server で FTP を使うことはできるが Macintosh や Windows のファイル共有とは操作性が異なる、 per- sonaIWeb Server ではプリンタの共有ができない、プリ ンタ共有はあきらめることにして W ⅲ d 。 ws に Personal 4 い・物ををい・物い 3 等を物い 3 ' を臼工を ' 等 4 , けい等を , をい等い等い等い等い等い等い。いい等い等をい・をい - いいをい 4 ・ UNIX MAGAZINE 1999.2 135

9. UNIX MAGAZINE 1999年2月号

157 : 158 : 163 : 図 4 1 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : 27 : 28 : 29 : 30 : 31 : 32 : 33 : 34 : 35 : 36 : 37 : 38 : 39 : 40 : 41 : 42 : 43 : 44 : 45 : 46 : 47 : 48 : 49 : 50 : 51 : 52 : 53 : 54 : 55 : 56 : 57 : 58 : 59 : 60 : 63 : 64 : 65 : 66 : 67 : 68 : 連載 / Linux でリラックスー① # Screen blanks after 15 minutes idle time . echO "Going multiuser. # Te11 the viewers what ' s going to happen ・ # ! /bin/sh /etc/rc. d/rc. M ( 一一部省略 ) # . /etc/rc . d/rc . serial # Run serial port setup script : /bin/setterm —blank 15 # Look for a CD—ROM in a CD—ROM drive , if [ —x /etc/rc. d/rc. cdrom ] ; then /etc/rc . d/rc . cdrom f i and if one is found, # If there ) s Ⅱ 0 /etc/HOSTNAME, fall back 0 Ⅱ this default : if [ ! -r /etc/HOSTNAME ] ; then echo "darkstar. frop. org" > /etc/HOSTNAME f i # Set the hostname. This might not work correctly if TCP/IP is not # compiled in the kernel . /bin/hostname ( cat /etc/HOSTNAME ー cut -fl -d # lnitialize the NET subsystem. if [ —x /etc/rc . d/rc . inetl ] ; then /etc/rc . d/rc . inetl /etc/rc . d/rc . inet2 else if [ —x /usr/sbin/syslogd ] ; then /usr/sbin/syslogd sleep 1 # Prevents a race condition with SMP kernels /usr/sbin/klogd if [ —x /usr/sbin/lpd ] ; then /usr/sbin/lpd f i # Start netatalk. (a file/print server for Macs using App1eta1k) # Remove stale hunt sockets so the game can start . /tmp/. X*10ck /tmp/core /core 1 > /dev/null 2 > /dev/null /bin/rm —f /var/spool/locks/* /var/lock/* /var/sp001/uucp/LCK. # Remove stale locks and junk files (must be done after mount /usr/sbin/crond ー 110 >>/var/adm/cron 2 > & 1 # Start crond (Di110n's crond) : #fi # /etc/rc . d/rc . atalk #if [ —x /etc/rc . d/rc. atalk ] ; then UNIX MAGAZINE 1999.2 131

10. UNIX MAGAZINE 1999年2月号

連載 / UN Ⅸの玉手箱ー① ストの部分に注目するのかか変わります。たとえは、ある マシンの /etc/master. passwd ファイノレに +@admin : nu Ⅱの権限で r コマンドを実行できるようになります。 のユーザー null と aoki は、 somepc に対してユーサー ューサーを信頼することになります。したがって、 mypc する部分が利用され、ホスト mypc の null と aoki という すると、今度はネットグループ admin のユーサーに関 mypc @admin これに対し、次のような設定をおこなったとしましょ なります。 ワード・チェックなしに ) r コマンドを実行できるように null は、 somepc に対してユーザー null の権限で ( パス を信頼することになり、 fileserv と mailserv のユーサー この例では、ネットグループ admin に属するホスト @admin ディレクトリの . rh 。 sts を以下のように設正したとしまし たとえは、 somepc のユーザー null が、自分のホーム・ を指定するとユーサーの要素だけか利用されます。 けか利用さ、、信頼するユーザー名 " にネットグループ ホスト名 " にネットグループを指定するとホストの要素だ という形式でエントリを言当します。この際、、、信頼する 信頼するホスト名 [ 信頼するユーサー名 ] ります。前回紹介したように、これらのファイルは、 hosts. equiv や . rhosts の場合、話がすこしややこしくな ただし、信頼するホストやユーサーを指定する / etc / /etc/hosts. equiv と . rhosts についてのラも意 す。 サーやホストを列挙する必要がなくなり、たいへんイ甦リで このように、ネットグループをうまく設定すれはユー クセスか許可されます。 視され、 fileserv および rnailserv というホストからのア ィールドに、、@admin" を指定するとユーザーの要素が無 れます。一方、 tcpd の hosts. allow ファイルの第 2 フ ザーがログインできるようになり、ホストの要素は無視さ という行を入れておくと、 null および aoki というユー 106 /etc/hosts. equiv や . rhosts で信頼する このように ホストやユーザーにネットグループを指定する際は注意が 必喫です。もっとも危険なのは、ユーザーの要素が省略さ れているネットグループを指定してしまった場合です。 mypc @clients 上記の例では、 mypc というホストのネットグループ clients に属するユーザーを信頼します。しかし、 clients というネットグルーフ。の設定をみると、ユーサーの要素が こでは、、すべてのユーザー " を表 省略されているため、 すものとして扱われます。したがって、一屬己のような言置 をおこなうと、 mypc のすべてのユーサーが somepc に 対してユーサー null の権限で r コマンドを実行できるこ とになります。 前回触れたように /etc/hosts. equiv や . rhosts はな るべく使わないほうがいいのですが、やむをえず . rh 。 sts を利用する際には、むやみにネットグループを指定しない はうか賢明です。 なお、 FreeBSD の NIS サーノヾーで netgroup マッフ を提供する場合、 /etc/netgroup ではなく /var/yp/net- group がソースファイルとして扱われます。すでに NIS サーバーを運用しているのであれば、 /var/yp/netgroup ファイルを作成し、 /var/yp ディレクトリで make を実 行すれは netgroup マップが NIS サーノヾーに追加され ます。 ☆ 次回は、ファイルシステムのマウントに関する話題をと りあげる予定です。 [ 赭文献 ] [ 1 ] 山本和彦「転ばぬ先のセキュリティ - TCP wrapper と xinetd 」、 UNIX MAGAZINE 、 1996 年 6 月号 UNIX MAGAZINE 1999.2