名前解決の設定確認――第2回 HP-UXのセキュア設定(その1)UNIX USER9月号「unixuser.jpサーバー構築記」より転載

編集部のWebサイトwww.unixuser.jpは現在HP Integrity rx1600&HP-UX 11iv2で運用している。前回に引き続き、インストール直後のセキュリティ設定を中心に紹介していこう。

» 2004年08月09日 15時30分 公開
[渡辺真次,UNIX USER]
名前解決の設定確認

 前回で基本的な作業は終わったが、いろいろと作業をしていく前にネットワーク環境と設定が正しく対応しているか確認したほうが良い。とくに各種ツール、サービスは名前解決がきちんと動作することを前提としているものが多いため、何かのツールの起動に時間が掛かったり、うまく動かなかったりする場合は、最初に名前解決の設定を疑ったほうがいいだろう。また、一度テストネットワーク環境で動かしていて、セットアップ終了後にホスティングサービスへ持っていくような場合はネットワーク設定が変わるので、環境が変わる都度きちんとチェックしておきたい。

nsswitch.confを用意する

 名前解決の設定は/etc/nsswitch.confで行うが、HP-UXの場合、インストール直後の状態ではこのファイルは用意されておらず、既定の設定が用いられる。既定の設定は、DNS、NIS、ファイルをそれぞれ最初に見つかったもののみ利用する設定である。その詳細は、「man 4 nsswitch.conf」や、リファレンスマニュアル(日本語)*で確認できるので、時間があれば一度目を通しておこう。

 /etcディレクトリには、いくつかのサンプルが/etc/nsswitch.*として置かれている。通常はこれらをnsswitch.confの名前でコピーして編集していくと良い。テスト中や何かトラブルがあった場合などは、nsswitch.filesを使ってfilesだけのもので設定・調査するといいだろう。

ファイルを優先し、DNSのみ設定

 unixuser.jpではNISを利用しておらず、DNSとファイルによる名前解決だけの状態である。既定の設定でも運用できるとはいえ、/etc/nsswitch.confを明示的に設定したほうが確実であるし、よく参照する名前解決については、/etc/hostsを参照して、外部へのアクセスを避けたい。

 そこで、ファイル参照を基本としたnsswitch.filesをベースにhosts項目を編集し、リスト1のように設定した。このように設定した場合、/etc/hostsの記述には注意が必要だ。よく参照するから、また、テストで一時的にといって設定していて、しばらくすると設定したことを忘れてしまうことがある。何らかの理由でIPアドレスの対応が変更されたときに設定変更を忘れると、見つけ難いトラブルの元になりやすいので、/etc/hostsにはあまり記述しすぎないようにしておこう。

 なお、単にWebサーバー用途だけならDNSは必要ない。DNSを利用する明確な理由がなければ、DNSの項目も削除して、純粋にローカルファイルだけを参照するほうが安全である。

リスト1 /etc/nsswitch.conf
passwd:       files
group:        files
hosts:        files dns
ipnodes:      files
services:     files
networks:     files
protocols:    files
rpc:          files
publickey:    files
netgroup:     files
automount:    files
aliases:      files

システムコールトレーサtuscで原因追求

 アプリケーションがうまく動かない、挙動が変だというときには、システムコールを追いかけるツールが便利だ。問題の多くは設定ファイルのミスであり、どのファイルをどういった順番でオープンしているかが分かれば、原因を特定しやすい。

 HP-UX用のシステムコールトレーサには、tuscというものがあり、以下のURLから入手できる。

http://hpux.cs.utah.edu/hppd/hpux/Sysadmin/

ftp://ftp.cup.hp.com/dist/networking/tools/

 PA-RISC用、IA-64用のバイナリが用意されており、コンパイルせずに導入できる。7月末時点でのIA-64用の最新ファイルはtusc7.6.ia64.shar*である。実行例1のようにすると、実行ファイルのtuscとシンボリックリンクのtusc、マニュアルtusc.1、フロントエンドのシェルスクリプトsstepが現れる。これらを~/binなどの任意のディレクトリに置いておくといいだろう。

実行例1 tuscの導入
# sh ../tusc7.6.ia64.shar
x - tusc [compressed]
linking - truss
x - tusc.1 [compressed]
x - sstep [compressed]

 詳細な使い方はtusc.1を見ていただくとして、前述のnsswitch.confの設定で名前解決の様子を調べた例が実行例2だ。「-s」オプションでシステムコールを特定し、このオプションがないときはすべてのシステムコールが表示される。大量に表示されてしまうので、通常はopen、writeなど、必要なものを特定して実行したほうが良い。

 実行例2を見ると、nslookupコマンドは、/etc/resolv.confや/root/.nslookuprcで設定を確認した後、nsswitch.confを読み込み、ファイル、DNSの順で検索している。一方、同じ名前解決を行うhostコマンドでは、/etc/resolv.confを見て、単にDNS名をDNSサーバーに問い合わせるだけである。設定変更後に不測の挙動や不明なエラーが出るときなどは、こういった形で確かめていくといいだろう。

実行例2 名前解決をトレース
# tusc -s open nslookup www.softbank.co.jp
open("/usr/lib/hpux32/dld.so", O_RDONLY, 0) ....... = 3
open("/usr/bin/nslookup", O_RDONLY, 0) ............ = 3
open("/usr/lib/hpux32/libdl.so.1", O_RDONLY, 0) ... = 3
      :
      :
open("/etc/resolv.conf", O_RDONLY, 0666) .......... = 3
open("/root/.nslookuprc", O_RDONLY, 0666) ......... ERR#2 ENOENT
open("/etc/nsswitch.conf", O_RDONLY, 0666) ........ = 3
Using /etc/hosts on: uuweb01.itmedia.co.jp
looking up FILES
open("/etc/hosts", O_RDONLY, 0666) ................ = 3
Trying DNS
Non-authoritative answer:
Name: www.softbank.co.jp
Address: 202.232.90.201

# ./tusc -s open host www.softbank.co.jp
open("/usr/lib/hpux32/dld.so", O_RDONLY, 0) ....... = 3
open("/usr/bin/host", O_RDONLY, 0) ................ = 3
open("/usr/lib/hpux32/libnsl.so.1", O_RDONLY, 0) .. = 3
      :
      :
open("/etc/resolv.conf", O_RDONLY, 0666) .......... = 5
www.softbank.co.jp has address 202.232.90.201


ITmedia編集部注:第2回:HP-UXのセキュア設定は全2回の予定で、次回は8月14日に公開予定です。Part2ではHP-UXに標準で用意されているセキュリティ強化・ロックダウンツールの「Bastille」を紹介していきます。


このページで出てきた専門用語

リファレンスマニュアル(日本語)
http://docs.hp.com/ja/B2355-60104-08/nsswitch.conf.4.html

.shar
sharコマンドでアーカイブしたもの。uuencode/uudecodeを使い、アーカイブがシェルスクリプトになっている。


UNIX USER 9月号表紙 最新号:UNIX USER 9月号の内容

第1特集
ここが危ないファイルシステム

第2特集
Firefoxでオリジナルアプリに挑戦!

[特別企画]
・WindowsにインストールできるKNOPPIX 3.4
・Slackwareで手作り日本語Linux環境


Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.

注目のテーマ