名 前
tcpd − internet services の た め の ア ク セ ス コ ン ト ロ ー ル 機 能
説 明
tcpd プ ロ グ ラ ム は 、 telnet, finger, ftp, exec, rsh, rlogin, tftp, talk, comsat や 、 そ の 他 、 実 行 フ ァ イ ル と 一 対 一 に マ ッ プ さ れ た サ ー ビ ス に 対 す る リ ク エ ス ト を 監 視 す る た め に 設 定 す る も の で あ る 。 プ ロ グ ラ ム は 4.3BSD ス タ イ ル の sockets と System V.4 ス タ イ ル の TLI の 両 方 を サ ポ ー ト し て い る 。 た だ し 、 TLI の 元 に あ る プ ロ ト コ ル が イ ン タ ー ネ ッ ト の プ ロ ト コ ル で な い 場 合 、 機 能 は 制 限 さ れ る 可 能 性 が あ る 。 そ の 仕 組 み は 次 の よ う に な っ て い る : サ ー ビ ス を 求 め る リ ク エ ス ト が 届 く と 、 inetd デ ー モ ン は 、 要 求 さ れ た サ ー ビ ス を 起 動 す る 代 わ り に 、 tcpd に 役 目 を 交 替 す る 。 tcpd は リ ク エ ス ト を ロ グ に 記 録 し 、 い く つ か の チ ェ ッ ク を 実 行 す る 。 す べ て よ し と な れ ば 、 tcpd は 適 切 な サ ー バ プ ロ グ ラ ム を 起 動 し 、 そ し て 姿 を 消 す 。 オ プ シ ョ ナ ル な 機 能 と し て : パ タ ー ン 形 式 の ア ク セ ス コ ン ト ロ ー ル 、 RFC 931 な ど の プ ロ ト コ ル に 基 づ く 、 ク ラ イ ア ン ト の ユ ー ザ 名 の 探 査 、 別 の ホ ス ト 名 を 装 っ て い る ホ ス ト か ら の 防 御 、 そ し て 、 別 の ネ ッ ト ワ ー ク ア ド レ ス を 装 っ て い る ホ ス ト か ら の 防 御 、 な ど が あ る 。
ロ グ の 記 録
tcpd に よ っ て 監 視 の 対 象 と な る 接 続 は 、 syslog(3) 機 能 を 通 し て 報 告 さ れ る 。 ど の 記 録 も 、 時 刻 、 ク ラ イ ア ン ト ホ ス ト の 名 前 、 要 求 さ れ た サ ー ビ ス 名 を 含 ん で い る 。 こ の 情 報 は 、 特 に ロ グ フ ァ イ ル 中 に 複 数 の ホ ス ト の 情 報 が 混 在 し て い る 場 合 で も 、 好 ま し か ら ざ る 行 動 を 察 知 す る に は 有 用 で あ る 。 あ な た の ロ グ が ど こ に 記 録 さ れ る の か 調 べ る た め に は 、 syslog の 設 定 フ ァ イ ル (大 抵 の 場 合 は /etc/syslog.conf) を 参 照 す る こ と 。
ア ク セ ス の 制 御
オ プ シ ョ ン と し て 、 tcpd は 、 パ タ ー ン マ ッ チ ン グ に 基 づ く ア ク セ ス コ ン ト ロ ー ル の シ ン プ ル な 書 式 を サ ポ ー ト し て い る 。 ア ク セ ス コ ン ト ロ ー ル の ソ フ ト ウ ェ ア は 、 パ タ ー ン に 合 致 し た 時 に 、 シ ェ ル コ マ ン ド を 実 行 す る た め の フ ッ ク を 提 供 し て い る 。 詳 細 は hosts_access(5) の マ ニ ュ ア ル を 参 照 の こ と 。
ホ ス ト 名 の 検 証
い く つ か の プ ロ ト コ ル (rlogin, rsh) の 認 証 の 仕 組 み は 、 ホ ス ト の 名 前 に 頼 っ て い る 。 あ る 実 装 は 、 ラ ン ダ ム な ネ ー ム サ ー バ か ら 得 た ホ ス ト 名 を 信 用 す る よ う に な っ て い る 。 別 の 実 装 で は も っ と 注 意 深 い が 、 欠 陥 の あ る ア ル ゴ リ ズ ム を 使 っ て い る 。
tcpd は 、 ア ド レ ス →名 前 の 翻 訳 を 行 な う DNS サ ー バ か ら 返 答 さ れ る ク ラ イ ア ン ト の ホ ス ト 名 と 、 名 前 →ア ド レ ス の 翻 訳 を 行 な う DNS サ ー バ か ら 返 答 さ れ る ホ ス ト 名 と を 突 き 合 わ せ 、 確 認 を 行 う 。 何 ら か の 矛 盾 が 発 覚 す る と 、 tcpd は 、 こ れ は ど こ か よ そ の ホ ス ト の 名 前 を 偽 装 し て い る ホ ス ト と の 取 り 引 き で あ る 、 と 判 定 す る 。 ソ ー ス が -DPARANOID で コ ン パ イ ル さ れ て い る な ら 、 tcpd は 、 ホ ス ト 名 /ア ド レ ス の 不 一 致 が あ る 場 合 、 接 続 を 切 断 す る こ と に な る 。 さ も な く ば 、 し か る べ き 行 動 が と ら れ た の ち に 、 ホ ス ト 名 を PARANOID の ワ イ ル ド カ ー ド に マ ッ チ さ せ る こ と が で き る 。
ホ ス ト ア ド レ ス の 詐 称
オ プ シ ョ ン と し て 、 tcpd は 、 取 り 引 き す る 接 続 の た び に source-routing socket option を 無 効 に で き る 。 こ れ に よ っ て 、 よ そ の ネ ッ ト ワ ー ク に 属 す る ア ド レ ス を 偽 装 し て い る ホ ス ト か ら の 、 大 抵 の 攻 撃 に 備 え る こ と が で き る だ ろ う 。 UDP サ ー ビ ス に つ い て は 、 こ の 防 御 は 役 に 立 た な い 。 こ の 機 能 に つ い て は 、 コ ン パ イ ル 時 に 有 効 に な っ て い な け れ ば な ら な い 。
RFC 931
RFC 931 な ど に 基 づ く 問 い 合 わ せ が 有 効 な 場 合 (こ れ は コ ン パ イ ル 時 の オ プ シ ョ ン 設 定 )、 tcpd は ク ラ イ ア ン ト ユ ー ザ の 名 前 を 検 証 し よ う と 試 み る 。 こ れ は 、 ク ラ イ ア ン ト ホ ス ト が RFC 931 互 換 の デ ー モ ン を 動 作 さ せ て い る 場 合 に だ け 成 功 す る 。 こ の ク ラ イ ア ン ト ユ ー ザ 名 の 問 い 合 わ せ は 、 デ ー タ 指 向 の 高 い コ ネ ク シ ョ ン に 対 し て は 機 能 せ ず 、 ま た パ ー ソ ナ ル シ ス テ ム (PCs) か ら の 接 続 の 場 合 は 、 著 し く 遅 く な る か も 知 れ な い 。
例
tcpd の 利 用 法 の 詳 細 は 、 コ ン パ イ ル 時 に プ ロ グ ラ ム の 中 に 入 れ ら れ た pathname に 依 存 す る 。
例 1
こ の 例 で は 、 tcpd は 、 オ リ ジ ナ ル の ネ ッ ト ワ ー ク デ ー モ ン が 別 の 場 所 に 移 動 さ れ る こ と を 期 待 し て い る 。
finger サ ー ビ ス へ の ア ク セ ス を 監 視 す る た め に は 、 オ リ ジ ナ ル の finger デ ー モ ン は 別 の 場 所 へ と 移 動 し 、 元 々 finger デ ー モ ン が い た 場 所 に は tcpd を イ ン ス ト ー ル す る 。 設 定 フ ァ イ ル へ の 変 更 は 必 要 な い 。
# mkdir
/other/place
# mv /usr/etc/in.fingerd /other/place
# cp tcpd /usr/etc/in.fingerd こ の 例
で は 、 ネ ッ ト
ワ ー ク デ ー モ
ン は /usr/etc に あ る
も の と す る 。
シ ス テ ム に よ
っ て は 、 ネ ッ
ト ワ ー ク デ ー
モ ン は /usr/sbin ま た
は /usr/libexec に 置 か れ
て い た り 、 名
前 の 頭 に ’in.´
と い う 文 字 を
持 っ て い な か
っ た り す る 。
例 2
こ の 例 で tcpd は 、 ネ ッ ト ワ ー ク デ ー モ ン は 、 そ の オ リ ジ ナ ル の 場 所 に 置 か れ て い る 事 を 想 定 し て い る 。
finger サ ー ビ ス へ の ア ク セ ス を 監 視 す る た め に は 、 次 に 示 す よ う な 変 更 を inetd の 設 定 フ ァ イ ル (大 抵 の 場 合 、 /etc/inetd.conf ま た は /etc/inet/inetd.conf) に 対 し て 行 な う :
finger stream tcp nowait nobody /usr/etc/in.fingerd in.fingerd こ れ を 次 の よ う に :
finger stream tcp nowait nobody /some/where/tcpd in.fingerd こ の 例 で は 、 ネ ッ ト ワ ー ク デ ー モ ン は /usr/etc に あ る も の と す る 。 シ ス テ ム に よ っ て は 、 ネ ッ ト ワ ー ク デ ー モ ン は /usr/sbin ま た は /usr/libexec に 置 か れ て い た り 、 名 前 の 頭 に ’in.´ と い う 文 字 を 持 っ て い な か っ た り 、 あ る い は inetd の 設 定 フ ァ イ ル に は userid の 項 目 が 存 在 し な い こ と も あ る 。 似 た よ う な 変 更 が 、 tcpd で カ バ ー さ れ る そ の 他 の サ ー ビ ス に 対 し て も 必 要 に な る だ ろ う 。 変 更 を 有 効 な も の と す る た め 、 inetd(8) の プ ロ セ ス に 対 し て ’kill -HUP´ を 送 出 す る 。 AIX の ユ ー ザ は ’inetimp´ コ マ ン ド も 実 行 す る 必 要 が あ る か も し れ な い 。
例 3
デ ー モ ン が 普 通 で な い デ ィ レ ク ト リ ("secret" や そ の 他 )に 置 か れ て い る 場 合 、 inetd の 設 定 フ ァ イ ル を 編 集 し て 、 プ ロ セ ス 名 の 項 に は 絶 対 パ ス 名 で 明 示 す る よ う に 。 例 :
ntalk dgram udp wait root /some/where/tcpd /usr/local/lib/ntalkd パ ス 名 の 一 番 最 後 の 要 素 (ntalkd) だ け が ア ク セ ス コ ン ト ロ ー ル と 、 ロ グ の 記 録 に 使 わ れ る 。
バ グ
い く つ か の UDP (そ し て RPC) デ ー モ ン は 、 そ の 仕 事 が 終 わ っ て 、 別 の リ ク エ ス ト が や っ て 来 て も 、 し ば ら く の 間 、 名 残 惜 し そ う に プ ロ セ ス 空 間 を う ろ つ い て い る 。 こ れ ら の サ ー ビ ス は 、 inetd の 設 定 フ ァ イ ル の 中 で 、 wait オ プ シ ョ ン と と も に 登 録 さ れ て い る 。 こ の よ う な デ ー モ ン は 、 そ れ を 起 動 し た リ ク エ ス ト だ け が ロ グ に 記 録 さ れ る こ と に な る 。 プ ロ グ ラ ム は 、 TCP 経 由 の RPC サ ー ビ ス に お い て は 動 作 し な い 。 こ れ ら の サ ー ビ ス は 、 inetd の 設 定 フ ァ イ ル の 中 で 、 rpc/tcp と し て 登 録 さ れ て い る 。 こ の 制 限 に よ っ て 影 響 さ れ る 唯 一 特 別 な サ ー ビ ス は 、 on(1) コ マ ン ド に よ っ て 利 用 さ れ る rexd で あ る 。 し か し 、 こ れ は 大 し た ロ ス で は な い 。 大 抵 の シ ス テ ム に お い て 、 rexd は /etc/hosts.equiv の 中 の ワ イ ル ド カ ー ド よ り も 安 全 度 が 低 い の だ 。
RPC broadcast リ ク エ ス ト (例 : rwall, rup, rusers) が 、 応 答 の あ る ホ ス ト か ら 常 に や っ て く る こ と が あ る 。 ク ラ イ ア ン ト が 、 そ の ネ ッ ト ワ ー ク 上 の 全 て の portmap デ ー モ ン に 対 し て ブ ロ ー ド キ ャ ス ト し て い る 、 と い う の が そ の 実 態 で あ る ; ど の portmap デ ー モ ン も 、 リ ク エ ス ト は ロ ー カ ル の デ ー モ ン へ と 転 送 す る 。 rwall な ど の デ ー モ ン が 知 る 限 り 、 リ ク エ ス ト は ロ ー カ ル ホ ス ト か ら 送 ら れ て く る の で あ る 。
フ ァ イ ル
ホ ス ト ア ク セ ス コ ン ト ロ ー ル テ ー ブ ル :
/etc/hosts.allow
/etc/hosts.deny
関 連 項 目
hosts_access(5),
ホ ス ト ア ク セ
ス コ ン ト ロ ー
ル フ ァ イ ル の
書 式
syslog.conf(5), syslogd コ ン ト ロ
ー ル フ ァ イ ル
の 書 式
inetd.conf(5), the inetd コ ン ト ロ
ー ル フ ァ イ ル
の 書 式
著 者
Wietse Venema
(wietse [AT] wzv.nl),
Department of Mathematics and Computing Science,
Eindhoven University of Technology
Den Dolech 2, P.O. Box 513,
5600 MB Eindhoven, The Netherlands
翻 訳
FUKUSHIMA Osamu <fuku [AT] amorph.jp>