FoxpassのLinux統合の問題点を追跡する方法
サーバーログインの図
Foxpassを有効にすると、インスタンスにログインできない?
次の手順をお試し下さい。
ここで Foxpass の LDAP ログを確認してください:
https://console.foxpass.com/settings/ldaplogs/
これにより、LDAP サーバーへの接続試行と接続試行のステータスが表示されます。予想されるリクエストが表示されない場合は、サーバーと Foxpass の間で何かが誤って構成されている可能性があります (例: 不適切なホスト名、無効なバインダー名、不適切な Foxpass ポート)。成功しているにもかかわらずアクセスできない場合は、ホストで何かが正しく構成されていない可能性があります。
問題が発生しているユーザーが 1 人だけの場合は、次を確認してください。
a) このユーザーが「ローカル」アカウントを持っているかどうか (/etc/passwd を調べます)。その場合、SSH キー スクリプトは Foxpass サーバーにキーを要求しません。
b) このユーザーが Foxpass コンソールの適切なホスト グループに属していない場合。
次のコマンドを実行します。
getent group
Foxpass からプルされたユーザー (またはグループ) は、最後にある必要があります。見えますか?
そうでない場合は、次のログでエラーを確認してください。
- syslog (/var/log/syslog)
- sssd (/var/log/sssd.log)
- nslcd logs
一般的な問題:
a) ldap.foxpass.com ポート 636 への接続を妨げるファイアウォール ルール
b) 間違ったバインド ユーザー名/パスワード
c) 間違ったベース DN
次のコマンドを実行します。
(一部のマシンでは、このファイルは /usr/local/sbin/ または他の場所にあることに注意してください)
標準出力に出力するためのキーはありますか?
はいの場合は、当社のサポートにお問い合わせください。このドキュメントの範囲を超えた何かが間違っています。
キーが返されない場合は、次を確認してください。
- ユーザーは Foxpass で "Engineering" ユーザーとして有効になっていますか?
- このユーザーは Foxpass にアップロードされたキーを持っていますか?
- ポート 443 で api.foxpass.com にアクセスできますか?
これらのどれも問題ではなく、キーが返されない場合は...
SELinux を有効にしている場合 (CentOS、RedHat と共通)、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 foxpass-ssh-1.pp
SSH ログインが成功するか、SSH キー スクリプトが正常に実行されるまで、必要に応じてこれらの手順を繰り返します。