SKEY.ACCESS(5)

名称
skey.access - S/Key パスワード制御テーブル

解説
S/Key パスワード制御テーブル (/etc/skey.access) は login(1) のようなプログラムが使用し、 システムアクセスのために UNIX パスワードをいつ使用するかを決定します。

•   テーブルが存在しない場合は、パスワード制限はありません。 ユーザは UNIX パスワードあるいは S/Key パスワードを入力することができます。

•   テーブルが存在する場合は、 明白に記述されている場合のみ UNIX パスワードが許可されます。

•   ただし、システムコンソールからは常に UNIX パスワードは許可されます。

テーブルの書式
テーブルのフォーマットは 1 行当たり 1 ルールです。 ルールは順番に検索されます。 最初に条件が合うルールが見つかったとき、 またはテーブルの最後に到達したとき、検索は終了します。

ルールのフォーマットは次の通りです:

permit 条件 条件 ...
deny 条件 条件 ...

permit と deny の後には 0 個以上の 条件 を記述可能です。 コメントは ‘#’ で始まり、行末までコメントになります。 空行やコメントのみの行は無視されます。

すべての条件が満たされるときにルールがマッチします。 条件のないルールは常に満たされます。 例えば、最後のエントリは語 deny のみとなっているかもしれません。

条件

hostname wzv.win.tue.nl
    wzv.win.tue.nl というホストからログインしたとき真になります。 警告 の節を参照してください。

internet 131.155.210.0 255.255.255.0
    131.155.210 のネットワークからログインしたら真になります。 ネットワークアドレスとネットマスクは次の書式になります。

        internet net mask

    mask とのビットごとの論理積が net と等しくなるインターネットアドレスを ホストが持つ場合、式は真になります。 警告 の節を参照してください。

port ttya
    ログインしている端末が /dev/ttya ならば真になります。 UNIX パスワードはシステムコンソールからの ログインには常に許されている点は憶えておいてください。

user uucp
    uucp ユーザがログインしようとしたとき真になります。

group wheel
    wheel グループとしてログインしようとしたとき真になります。

互換性
過去の互換性のために、 internet というキーワードはネットワークアドレスとマスクのパターンから 省略可能です。

警告
S/Key 制御テーブル (/etc/skey.access) が存在する場合、 S/Key パスワードを持たないユーザは、 UNIX パスワードの使用が許されるところからのみログインが許されます。 特に login(1) が擬似 tty (例えば xterm(1) や screen(1) の中) から起動される場合、 コンソールからのログインでもなければ ネットワークからのログインでもないと扱われますので、 S/Key パスワードの使用が義務づけられます。 このような状況で起動される login(1) は、 S/Key パスワードを持たないユーザに対しては必ず失敗します。

いくつかのルール型は、ネットワークを通じて与えられるホスト名やアドレス情報に 依存しています。 このことから考えられる、システムに UNIX パスワードを許させる攻撃の一覧を示します。

  ホストアドレス偽造 (ソースルーティング)
侵入者は自分のインタフェースを信頼されているネットワーク内のアドレス として構成し、 そのソースアドレスを使用して、被害者に接続します。 誤ったクライアントアドレスを与えられると、 ホストアドレスに基づくルールもしくは アドレスから導かれるホスト名に基づくルールを元にして、 被害者は間違った結論を導きます。

対処法:

1.  ネットワークからの UNIX パスワードを用いたログインを許さない。

2.  ソースルーティング情報を捨てるネットワークソフトウェアを使う (例えば、tcp wrapper)。

ほとんどのネットワークサーバはクライアントのネットワークアドレスから クライアントの名前を解決します。 それゆえ、次の明らかな攻撃は以下のようになります。

  ホスト名偽造 (悪い PTR レコード)
誤ったホスト名を与えられると、 ホスト名に基づくルールもしくは ホスト名から導かれるアドレスに基づくルールを元にして、 被害者は間違った結論を導きます。

対処法:

1.  ネットワークからの UNIX パスワードを用いたログインを許さない。

2.  ホスト名からクライアントのネットワークアドレスを解決できることを確認する ネットワークソフトウェアを使用する (例えば、tcp wrapper)。

UNIX の login(1) プログラムのように、 クライアントのホスト名からクライアントのネットワークアドレスを 求める必要があるアプリケーションが存在します。 今述べた攻撃に加えて、もう 1 つの可能性があります。

  ホストアドレスの偽造 (余分な A レコード)
侵入者はクライアントのホスト名について (もまた)、信頼されたアドレスとして 解決させるためにネームサーバシステムを操作します。

対処法:

1.  ネットワークからの UNIX パスワードを用いたログインを許さない。

2.  skeyaccess() は他の人が属するネットワークアドレスを無視する。

診断
構文エラーは syslogd(8) に報告されます。 エラーが見つかったらそのルールはスキップされます。

関連ファイル

/etc/skey.access
    パスワード制御テーブル

作者
Wietse Venema, Eindhoven University of Technology, The Netherlands