Linux での認証チェック
このドキュメントの手順に従って、ローカルセキュリティチェック用に Linux システムを設定します。以下の例で使用される SSH デーモンは OpenSSH です。SSH の商用版を使用している場合、手順がわずかに異なる場合があります。
SSH 秘密/公開鍵のペアまたはユーザー認証情報と sudo または su アクセスを使用して、ローカルセキュリティチェックを有効にできます。
注意: Tenable Nessus で Linux マシンをスキャンする場合、Linux マシンのシェル設定ファイルには 4 文字以上の PS1 変数 (例: PS1='\u@\h:~\$ ') が必要です。4 文字未満の PS1 変数 (例: PS1='\$ ') があると、全体のスキャン時間が大幅に増加する可能性があります。
ヒント: Tenable Nessus と互換性のある Linux オペレーティングシステムについては、Tenable Nessus ソフトウェア要件を参照してください。
前提条件
Tenable Nessus は、blowfish-cbc、aesXXX-cbc (aes128、aes192、aes256)、3des-cbc、aes-ctr のアルゴリズムをサポートしています。
商用版の SSH の一部は、おそらく輸出上の制約から blowfish cipher をサポートしていません。特定の種類の暗号のみを受け入れるように SSH サーバーを設定することもできます。お使いの SSH サーバーが適切なアルゴリズムをサポートすることを確認してください。
ユーザー権限の最大の効果を生み出すには、SSH ユーザーはあらゆるコマンドをシステムで実行できる必要があります。Linux システムでは、SSH ユーザーは root 権限を持っている必要があります。権限なしで実行できるチェックもありますが (パッチレベルなど)、監査システム設定とファイル権限の完全なコンプライアンスチェックには root 権限が必要です。そのため、Tenable は、可能な限り認証情報ではなく SSH 鍵を使用することをお勧めします。
Kerberos を使用している場合、 Kerberos をサポートして KDC でチケットを検証できるように sshd を設定する必要があります。これを機能させるには、逆引き DNS ルックアップを適切に設定する必要があります。Kerberos のインタラクション方法は、gssapi-with-mic
である必要があります。
SSH ローカルセキュリティチェックを有効にする
このセクションでは、Tenable Nessus の認証情報チェックに関与するシステム間の SSH を有効にするための大まかな手順を説明します。これは SSH に関する詳細なチュートリアルではなく、Linux システムのコマンドに関する知識をあらかじめ持っているユーザーを対象としています。
SSH の公開鍵と秘密鍵の生成
最初の手順は、Tenable Nessus スキャナーで使用する秘密鍵/公開鍵のペアを生成することです。この鍵のペアは、任意の Linux システムで任意のユーザーアカウントを使用して生成できます。ただし、定義済みの Tenable Nessus ユーザーが鍵を所有することが重要です。
鍵のペアを生成するには、ssh-keygen を使用し、安全な場所に鍵を保管します (次の Red Hat ES 3 インストール環境での例を参照してください)。
# ssh-keygen -t ecdsa -b 521
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_ecdsa
Your public key has been saved in /home/test/.ssh/id_ecdsa.pub
The key fingerprint is:
SHA256:xL27sSSquFGQ2jhemuZGDdtt8lXL3nuUcOVrDIHtfi0 test@ubuntu2204-test
The key's randomart image is:
+---[ECDSA 521]---+
| o |
| . . . . o . |
| o o . . + |
| = . . . o + . |
|+ *.o S o + + o|
|.++= o . o . +E=.|
|.=.+ . o = . o.|
|o.o . . + = . |
|..o....o.o |
+----[SHA256]-----+
#
注意: SSH サーバーへの認証時に SSH キーの互換性の問題が発生する場合は、ecdsa の代わりに dsa コマンドを使用してキーを生成できます。
ssh-keygen -t dsa
Tenable Nessus を実行しているシステムサーバー以外のシステムに秘密鍵を移動しないでください。ssh-keygen からパスフレーズの入力を求められたときには、強力なパスフレーズを入力するか、Return キーを 2 回押します (つまり、パスフレーズを設定しません)。パスフレーズを指定する場合は、Tenable Nessus が鍵ベースの認証を使用できるように、[Policies] (ポリシー) > [Credentials] (認証情報) > [SSH settings] (SSH 設定) で指定する必要があります。
ユーザーアカウントを作成し、SSH 鍵を設定する
ローカルセキュリティチェックを使用してスキャンするすべてのターゲットシステムで、Tenable Nessus 専用の新しいユーザーアカウントを作成します。このユーザーアカウントの名前は、すべてのシステムで完全に同じにする必要があります。このドキュメントでは、このユーザーの名前を nessus としますが、任意の名前を使用できます。
ユーザーアカウントを作成したら、アカウントに有効なパスワードが設定されていないことを確認します。Linux システムでは、初期パスワードを明示的に設定した場合を除き、新しいユーザーアカウントはデフォルトではロックされています。パスワードが設定されているアカウントを使用する場合は、passwd –l コマンドを使用してアカウントをロックします。
また、この新しいアカウントのホームディレクトリの下に、公開鍵を保存するディレクトリを作成する必要があります。この演習では、そのディレクトリは /home/nessus/.ssh です。次の Linux システムの例を参照してください。
# passwd –l nessus
# cd /home/nessus
# mkdir .ssh
#
Solaris 10 システムでは、ロックされているアカウントと非ログインアカウントを区別するために passwd(1) コマンドが強化されています。これは、ロックされているユーザーアカウントがコマンドの実行 (クローンジョブなど) に使用されないようにするためです。非ログインアカウントは、コマンドの実行にのみ使用でき、インタラクティブなログインセッションをサポートしません。このようなアカウントは、/etc/shadow のパスワードフィールドに「NP」トークンがあります。Solaris 10 で非ログインアカウントを設定し、SSH パブリックキーディレクトリを作成するには、次のコマンドを実行します。
# passwd –N nessus
# grep nessus /etc/shadow
nessus:NP:13579::::::
# cd /export/home/nessus
# mkdir .ssh
#
これでユーザーアカウントが作成されました。次は、鍵をシステムに移動して適切なディレクトリに配置し、適切なアクセス許可を設定する必要があります。
例
次の例に示すように、鍵が保存されているシステムから、ホストチェックでスキャンするシステムに公開鍵を安全にコピーします。
# scp ssh_key.pub [email protected]:/home/nessus/.ssh/authorized_keys
#
安全な ftp コマンド sftp
を使用して、Tenable Nessus をインストールしたシステムからこのファイルをコピーすることもできます。その場合は、ターゲットシステムでこのファイル名を authorized_keys にする必要があります。
公開鍵システムに戻る
/home/nessus/.ssh ディレクトリと authorized_keys ファイルの両方に対するアクセス許可を設定します。
# chown -R nessus:nessus ~nessus/.ssh/
# chmod 0600 ~nessus/.ssh/authorized_keys
# chmod 0700 ~nessus/.ssh/
#
SSH チェックのテストをするすべてのシステムでこのプロセスを繰り返します ( ユーザーアカウントを作成し、SSH 鍵を設定するから開始します)。
アカウントとネットワークが正しく設定されていることをテストして確認します。Tenable Nessus スキャナーからシンプルな Linux コマンド id を使用して、次のコマンドを実行します。
# ssh -i /home/test/nessus/ssh_key [email protected] id
uid=252(nessus) gid=250(tns) groups=250(tns)
#
Tenable Nessus ユーザーに関する情報が正常に返された場合、キーの交換は成功です。
次の手順
-
SSH ホストベースのチェック用に Tenable Nessus を設定する