Solaris のシステム管理 (セキュリティサービス)

ログインとパスワードのセキュリティ

この節では、ログインの制御と監視について説明します。

ユーザーのログイン状態を表示する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. logins コマンドを使用してユーザーのログイン状態を表示します。


    # logins -x -l username
    

    -x

    ログイン状態情報の拡張セットを表示する 

    -l username

    指定するユーザーのログイン状態を表示する。username はユーザーのログイン名。複数のログイン名は、コンマで区切って指定する

    logins コマンドは、適切なパスワードファイルを使ってユーザーのログイン状態を表示します。このファイルは、ローカルの /etc/passwd ファイルか、ネームサービスのパスワードデータベースです。詳細は、logins(1M) のマニュアルページを参照してください。

例 — ユーザーのログイン状態を表示する

次の例では、ユーザー rimmer のログイン状態が表示されます。


# logins -x -l rimmer
rimmer       500     staff           10   Annalee J. Rimmer
                     /export/home/rimmer
                     /bin/sh
                     PS 010170 10 7 -1

rimmer

ユーザーのログイン名を示す 

500

ユーザー ID (UID) を示す 

staff

ユーザーの一次グループを示す 

10

グループ ID (GID) を示す 

Annalee J. Rimmer

コメントを示す 

/export/home/rimmer

ユーザーのホームディレクトリを示す 

/bin/sh

ログインシェルを示す 

PS 010170 10 7 -1

次のパスワード有効期限情報を示す 

  • パスワードの最終変更日

  • 次に変更するまでに必要な日数

  • 変更しないで使用できる日数

  • 警告期間

パスワードを持たないユーザーを表示する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. logins コマンドを使用して、パスワードを持っていないユーザーをすべて表示します。


    # logins -p
    

    -p オプションを指定すると、パスワードを持たないユーザーが表示されます。logins コマンドでは、ローカルマシン上およびネットワーク上のパスワードデータベースを使用できます。このコマンドでは、ローカルの /etc/passwd ファイルを使用できます。このコマンドではまた、ネームサービスのパスワードデータベースを使ってユーザーのログイン状態を表示できます。

例 — パスワードを持たないユーザーを表示する

次の例では、パスワードを持っていないユーザー pmorph が表示されます。


# logins -p
pmorph          501     other           1       Polly Morph
#

ユーザーのログインを一時的に無効にする方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. エディタを使用して、/etc/nologin ファイルを作成します。


    # vi /etc/nologin
    
  3. システムの利用に関するメッセージを入力します。

  4. ファイルを閉じて、保存します。

    このファイルを作成することによって、システムシャットダウンや定常的な保守の際にユーザーログインを禁止できます。nologin ファイルが存在するシステムにユーザーがログインしようとすると、このファイルの内容が表示されます。そのあとユーザーのログインは中断されます。

    スーパーユーザーのログインは影響を受けません。詳細については、nologin(4) のマニュアルページを参照してください。

例 — ユーザーのログインを無効にする

この例は、システムが利用できないことをユーザーに通知する方法を示しています。


# vi /etc/nologin
(ここでシステムメッセージを追加する)
 
# cat /etc/nologin 
***ログインは許可されません。***
 
***システムは AM12:00 まで利用できません。***

システムを実行レベル 0、すなわちシングルユーザーモードにすることもできます。シングルユーザーモードに変更する方法の詳細については、『Solaris のシステム管理 (基本編)』の「システムのシャットダウン (手順)」を参照してください。

ログイン失敗操作を保存する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. /var/adm ディレクトリに loginlog ファイルを作成します。


    # touch /var/adm/loginlog
    
  3. loginlog ファイルに root の読み取り権と書き込み権を設定します。


    # chmod 600 /var/adm/loginlog
    
  4. loginlog ファイルのグループのメンバーシップを sys に変更します。


    # chgrp sys /var/adm/loginlog
    
  5. 間違ったパスワードを使用してシステムに 5 回ログインしようとしたログが記録されていることを確認します。次に、/var/adm/loginlog ファイルを表示します。


    # more /var/adm/loginlog
    rimmer:/dev/pts/1:Wed Jan 16 09:22:31 2002
    rimmer:/dev/pts/1:Wed Jan 16 09:22:39 2002
    rimmer:/dev/pts/1:Wed Jan 16 09:22:45 2002
    rimmer:/dev/pts/1:Wed Jan 16 09:22:53 2002
    rimmer:/dev/pts/1:Wed Jan 16 09:23:01 2002
    #

    loginlog ファイルには、失敗操作ごとに 1 つずつエントリが入っています。各エントリには、ユーザーのログイン名、tty デバイス、操作の失敗回数が入っています。4 回以下の失敗であれば、ログに記録されません。

    loginlog ファイルは急激に大きくなることがあります。このファイルを適切に使用できるように保つためには、その内容をときどき確認して消去する必要があります。loginlog ファイルに多数の操作が記録されている場合は、コンピュータシステムにだれかが侵入しようとした可能性があります。詳細は、loginlog(4) のマニュアルページを参照してください。

ダイヤルアップパスワードを作成する方法


注意 – 注意 –

最初にダイヤルアップパスワードを設定するときには、少なくとも 1 つのポートにログインしたまま別のポートでパスワードをテストしてください。ログアウトして新しいパスワードをテストすると、元どおりログインできなくなることがあります。まだ別のポートにログインしていれば、元に戻ってミスを訂正できます。


  1. スーパーユーザーになるか、または同等の役割を引き受けます。

  2. シリアルデバイスのリストが入った /etc/dialups ファイルを作成します。このファイルには、ダイヤルアップパスワードで保護されているすべてのポートを含めてください。

    /etc/dialups ファイルは次のようになります。


    /dev/term/a
    /dev/term/b
    /dev/term/c
  3. ダイヤルアップパスワードを要求するログインプログラムが入った /etc/d_passwd ファイルを作成します。

    uucicoshkshcsh など、ユーザーがログイン時に実行できるシェルプログラムを含めます。/etc/d_passwd ファイルは次のようになります。


    /usr/lib/uucp/uucico:encrypted-password:
    /usr/bin/csh:encrypted-password:
    /usr/bin/ksh:encrypted-password:
    /usr/bin/sh:encrypted-password:

    この手順のあとの方で、各ログインプログラムに暗号化されたパスワードを追加することになります。

  4. 2 つのファイルの所有権を root に設定します。


    # chown root /etc/dialups /etc/d_passwd
    
  5. 2 つのファイルのグループの所有権を root に設定します。


    # chgrp root /etc/dialups /etc/d_passwd
    
  6. 2 つのファイルの root の読み取り権と書き込み権を設定します。


    # chmod 600 /etc/dialups /etc/d_passwd
    
  7. 暗号化パスワードを作成します。

    1. 一時的なユーザーを作成します。


      # useradd username
      
    2. 一時的なユーザーのパスワードを作成します。


      # passwd username
      
    3. 暗号化パスワードを取り出します。


      # grep username /etc/shadow> username.temp
      
    4. username.temp ファイルを編集します。

      暗号化パスワードを除くすべてのフィールドを削除します。2 つ目のフィールドに、暗号化パスワードが入っています。

      たとえば、次の行では、暗号化パスワードは U9gp9SyA/JlSk です。


      temp:U9gp9SyA/JlSk:7967:::::7988:
    5. 一時的なユーザーを削除します。


      # userdel username
      
  8. username.temp ファイルから /etc/d_passwd ファイルに暗号化パスワードをコピーします。

    ログインシェルごとに別のパスワードを作成するか、共通のパスワードを使用できます。

  9. パスワードをダイヤルアップユーザーに知らせます。

    盗聴のおそれがない方法でパスワードを知らせる必要があります。

ダイヤルアップログインを一時的に無効にする方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. /etc/d_passwd ファイルのエントリを次の 1 行だけにします。


    /usr/bin/sh:*: