
サイトにアクセスするときに、ローカル Linux ユーザーが資格情報を使用して認証できるようにしたいと考えています。ngx_http_auth_pam_module を使用しています。nginx.conf ファイルでは、location ディレクティブに次の構成があります。
location / {
proxy_pass http://somewebsite:5000;
root html;
index index.html index.htm;
auth_pam "Secure area";
auth_pam_service_name "nginx";
}
nginx.conf ファイルの「auth_pam」および「auth_pam_service_name」構文を使用すると、サイトにアクセスするときに資格情報を入力するように求められます。/etc/pam.d ディレクトリに、次の内容の「nginx」サービス ファイルを作成しました。
auth required pam_unix.so
account required pam_unix.so
CentOS 7 サーバーでこれを実行しています。ローカル Linux ユーザーおよび/またはグループを作成し、/etc/shadow ファイルへのアクセスを提供する必要があることは理解していますが、オンラインで見つけたチュートリアルを使用しても、ローカル ユーザーでログインできません。サイトにアクセスするときにローカル Linux ユーザーでログインできるようにするための手順を教えていただけませんか?
ありがとうございます。どんな助けでも大歓迎です。必要であればさらに情報を提供することもできます。
答え1
のREADMEこのサードパーティの nginx モジュールでは次のように書かれています:
モジュールは Web サーバー ユーザーとして実行されるため、使用される PAM モジュールは、root でなくてもユーザーを認証できる必要があります。つまり、モジュールを使用してユーザーを認証する場合は、
pam_unix.so
Web サーバー ユーザーがファイルを読み取れるようにする必要があります(Debian のようなシステムでは、ユーザーをグループに/etc/shadow
追加できます)。www-data
shadow
Web サーバーや Web アプリケーションにシャドウ ファイルの読み取りを許可する場合のセキュリティ上の影響を十分に考慮してください。