SKEY.ACCESS(5)

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

解説
S/Key パスワード制御テーブル (etc/skey.access) は login のようなプログラムが使用し、 システムアクセスのために 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 つの可能性があります。

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

    対処法: (1) ネットワークからの UNIX パスワードを用いたログインを許さない。 (2) skeyaccess() は他の人が属するネットワークアドレスを無視する。

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

関連ファイル
/etc/skey.access パスワード制御テーブル

作者
Wietse Venema
Eindhoven University of Technology
The Netherlands