具体的な手順については、下記から CentOS のバージョンを選択してください。
まず、Foxpass にログインし、次の手順に従ってLDAP バインダーを作成します。
- ダッシュボード ページでベース DN をメモします。コピーしてどこかに貼り付けます。
- API キー ページで「sshd」という名前の API キーを作成します。コピーしてどこかに貼り付けます。
- LDAP バインダー ページで「linux」という名前の LDAP バインダー アカウントを作成します。生成されたパスワードをコピーして貼り付けます。一度だけ表示されます。
- LDAP グループ ページで「foxpass-sudo」という名前の LDAP グループを作成します。それを「posix」グループに設定し、自分自身をグループに追加します。
Foxpass のスクリプトの設定、インストール、および実行には、CentOS によって付与されたベース スコープを超えるアクセス許可が必要です。したがって、これらのコマンドは root ユーザーとして実行することをお勧めします。さらに、デフォルトの selinux 権限により、Foxpass が SSH キーを正しくチェックできない場合があります。Foxpass を適切にホワイトリストに登録する方法、または selinux を完全に無効にする方法を以下に示します。
root ユーザーとしてログインします。これにより、前進するコマンドが簡素化されます。Amazon EC2 インスタンスを使用している場合、デフォルトのコマンドは次のとおりです。また、wget および python3 パッケージをインストールして、インストール スクリプトをより簡単にダウンロードして実行することもできます。
yum install wget python3
pip3 install requests
次に、このスクリプトをダウンロードして実行します。
python3 foxpass_setup.py --base-dn <base dn> --bind-user <binder name> --bind-pw <binder password> --api-key <api key
例:
(上級者向けのヒント: 新しい CentOS イメージでスクリプトを実行してから、会社の新しいベース AMI を作成してください。)
これで、ホストは Foxpass LDAP と通信し、Foxpass から SSH キーを要求するように構成されました!
注:SELinux が有効になっている場合、sshd は「curl」を呼び出してユーザーのキーをフェッチできない可能性があります。この場合、「getent passwd」や「getent groups」などの通常の LDAP コマンドは機能しますが、SSH キーを介したログインや SSH キー スクリプトの実行は失敗します。
SELinux の制限を回避するには、2 つのオプションがあります。SELinux を完全に無効にするか、Foxpass パーミッションを選択的に付与するかのいずれかです。まず、SSH キー リクエストの後に監査ログをチェックして、SELinux が実際にそれをブロックしていることを確認する必要があります。次に、以下の grep コマンドを実行して、出力を確認します。
SELinux が Foxpass をブロックしている場合、comm="curl" または comm="foxpass_ssh_key" を含む行が表示されます。
これは、物事を迅速に機能させるのに役立ちますが、セキュリティを長期的に管理するための最良の方法ではない場合があります.SELIinux を無効にするには、 /etc/selinux/config を開き、SELINUX=disabledを設定します。次に、ホストを再起動して設定を有効にします。
ホストの再起動後、ログインしてsestatusを実行し、SELinux のステータスを確認します。「無効」と表示されます。これで、Foxpass SSH キー スクリプトと SSH ベースのログインが正常に機能するはずです。
SELinux には、アプリケーションのブロックを解除するために必要なアクセス許可を自動的にコンパイルできるツールがあります。ただし、これらのツールは、最新の要求から欠落しているアクセス許可しか確認できないため、より深いレベルのアクセス許可を付与するには、ツールを複数回実行する必要がある場合があります。通常、SELinux は「curl」および「foxpass_ssh_key」コマンドをブロックします。
Foxpass に適切なアクセス許可を付与するには、必要に応じてこのプロセスを繰り返す必要があります。
- SSH キー要求を生成します。これは、SSH キーを使用してホストへのログインを試行するか、コマンド/usr/local/bin/foxpass_ssh_keys.shを使用して get SSH key スクリプトを実行することで実行できます。
- 監査ログを確認します。上記の grep コマンドを実行します。タイムスタンプをチェックして、拒否が最新のリクエストと一致していることを確認してください。SELinux がブロックしているコマンド (comm=" " 内の変数) をメモします。
- コマンドに SELinux パーミッションを付与します。コマンドごとに、必要に応じて以下の 2 行を実行します。1 行目で SELinux が解析するファイルを作成し、2 行目でそのファイルを SELinux にロードします。curl または foxpass_ssh_key 権限を付与するためのサンプルと、一般的なコマンドのサンプルが提供されています。後続の実行ごとに、.pp ファイルの末尾の番号を増やします。
semodule -i my-curl-1.pp
semodule -i foxpass-ssh-1.pp
semodule -i my-<command>-1.pp
SSH ログインが成功するか、SSH キー スクリプトが正常に実行されるまで、必要に応じてこれらの手順を繰り返します。
LDAP 接続のホストでタイムアウトを増やす必要がある場合があります。これにより、ユーザーが (ログインまたは sudo コマンドの) パスワードの入力を求められたときに、クライアントがすぐにログインを再試行したり、2FA をスパムしたりすることがなくなります。ldap_opt_timeoutを 60 秒などの管理しやすい値に増やしてみてください。詳細については、
https ://linux.die.net/man/5/sssd-ldap を参照してください。
さらに問題がありますか?こちらのトラブルシューティング ガイドを参照してください
Foxpass Linux デバッグ
まず、Foxpass にログインし、次の手順に従ってLDAP バインダーを作成します。
- ダッシュボード ページでベース DN をメモします。コピーしてどこかに貼り付けます。
- API キー ページで「sshd」という名前の API キーを作成します。コピーしてどこかに貼り付けます。
- LDAP バインダー ページで「linux」という名前の LDAP バインダー アカウントを作成します。生成されたパスワードをコピーして貼り付けます。一度だけ表示されます。
- LDAP グループ ページで「foxpass-sudo」という名前の LDAP グループを作成します。それを「posix」グループに設定し、自分自身をグループに追加します。
Foxpass のスクリプトの設定、インストール、および実行には、CentOS によって付与されたベース スコープを超えるアクセス許可が必要です。したがって、これらのコマンドは root ユーザーとして実行することをお勧めします。さらに、デフォルトの selinux 権限により、Foxpass が SSH キーを正しくチェックできない場合があります。Foxpass を適切にホワイトリストに登録する方法、または selinux を完全に無効にする方法を以下に示します。
root ユーザーとしてログインします。これにより、前進するコマンドが簡素化されます。Amazon EC2 インスタンスを使用している場合、デフォルトのコマンドは次のとおりです。また、wget パッケージをインストールして、インストール スクリプトをより簡単にダウンロードすることもできます。
yum install wget
次に、このスクリプトをダウンロードして実行します。
python foxpass_setup.py --base-dn <base dn> --bind-user <binder name> --bind-pw <binder password> --api-key <api key>
例:
(上級者向けのヒント: 新しい CentOS イメージでスクリプトを実行してから、会社の新しいベース AMI を作成してください。)
これで、ホストは Foxpass LDAP と通信し、Foxpass から SSH キーを要求するように構成されました!
注:SELinux が有効になっている場合、sshd は「curl」を呼び出してユーザーのキーをフェッチできない可能性があります。この場合、「getent passwd」や「getent groups」などの通常の LDAP コマンドは機能しますが、SSH キーを介したログインや SSH キー スクリプトの実行は失敗します。
SELinux の制限を回避するには、2 つのオプションがあります。SELinux を完全に無効にするか、Foxpass パーミッションを選択的に付与するかのいずれかです。まず、SSH キー リクエストの後に監査ログをチェックして、SELinux が実際にそれをブロックしていることを確認する必要があります。次に、以下の grep コマンドを実行して、出力を確認します。
SELinux が Foxpass をブロックしている場合、comm="curl" または comm="foxpass_ssh_key" を含む行が表示されます。
これは、物事を迅速に機能させるのに役立ちますが、セキュリティを長期的に管理するための最良の方法ではない場合があります.SELIinux を無効にするには、 /etc/selinux/config を開き、SELINUX=disabledを設定します。次に、ホストを再起動して設定を有効にします。
ホストの再起動後、ログインしてsestatusを実行し、SELinux のステータスを確認します。「無効」と表示されます。これで、Foxpass SSH キー スクリプトと SSH ベースのログインが正常に機能するはずです。
SELinux には、アプリケーションのブロックを解除するために必要なアクセス許可を自動的にコンパイルできるツールがあります。ただし、これらのツールは、最新の要求から欠落しているアクセス許可しか確認できないため、より深いレベルのアクセス許可を付与するには、ツールを複数回実行する必要がある場合があります。通常、SELinux は「curl」および「foxpass_ssh_key」コマンドをブロックします。
Foxpass に適切なアクセス許可を付与するには、必要に応じてこのプロセスを繰り返す必要があります。
- SSH キー要求を生成します。これは、SSH キーを使用してホストへのログインを試行するか、コマンド/usr/local/bin/foxpass_ssh_keys.shを使用して get SSH key スクリプトを実行することで実行できます。
- 監査ログを確認します。上記の grep コマンドを実行します。タイムスタンプをチェックして、拒否が最新のリクエストと一致していることを確認してください。SELinux がブロックしているコマンド (comm=" " 内の変数) をメモします。
- コマンドに SELinux パーミッションを付与します。コマンドごとに、必要に応じて以下の 2 行を実行します。1 行目で SELinux が解析するファイルを作成し、2 行目でそのファイルを SELinux にロードします。curl または foxpass_ssh_key 権限を付与するためのサンプルと、一般的なコマンドのサンプルが提供されています。後続の実行ごとに、.pp ファイルの末尾の番号を増やします。
semodule -i my-curl-1.pp
semodule -i foxpass-ssh-1.pp
semodule -i my-<command>-1.pp
SSH ログインが成功するか、SSH キー スクリプトが正常に実行されるまで、必要に応じてこれらの手順を繰り返します。
LDAP 接続のホストでタイムアウトを増やす必要がある場合があります。これにより、ユーザーが (ログインまたは sudo コマンドの) パスワードの入力を求められたときに、クライアントがすぐにログインを再試行したり、2FA をスパムしたりすることがなくなります。ldap_opt_timeoutを 60 秒などの管理しやすい値に増やしてみてください。詳細については、
https ://linux.die.net/man/5/sssd-ldap を参照してください。
さらに問題がありますか?こちらのトラブルシューティング ガイドを参照してください
Foxpass Linux デバッグ