Linux で PAM モジュールが設定されているかどうかを確認する方法

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux で PAM (Pluggable Authentication Modules) モジュールが構成されているかどうかを確認する方法を学びます。PAM 構成ファイルの標準的な場所を調査し、その内容を検証して、さまざまなサービスが認証やその他のセキュリティ機能に PAM をどのように利用しているかを理解します。

まず、/etc/pam.d/ ディレクトリの内容を一覧表示して、サービス固有の PAM 構成ファイルを特定します。次に、cat コマンドを使用してこれらの構成ファイルの内容を表示する方法を学び、サービスに適用される特定の PAM モジュールとルールを理解します。最後に、/lib/security ディレクトリを調査して、システム上で利用可能な PAM モジュールファイルを確認します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/ls -.-> lab-558745{{"Linux で PAM モジュールが設定されているかどうかを確認する方法"}} linux/cat -.-> lab-558745{{"Linux で PAM モジュールが設定されているかどうかを確認する方法"}} end

ls /etc/pam.d で PAM 設定を確認する

このステップでは、PAM (Pluggable Authentication Modules) の調査を始めます。PAM は、システム管理者がアプリケーションのユーザー認証方法を構成できる強力なフレームワークです。各アプリケーションが独自に認証を処理するのではなく、PAM を使用することで、認証、承認、およびアカウント管理を一元的かつ柔軟に管理することができます。

PAM を認証用の交換可能なビルディングブロックのセットと考えてください。アプリケーション自体を変更することなく、異なる認証方法(パスワード、スマートカード、さらには生体認証など)を処理するために異なるモジュールを差し込むことができます。

PAM の構成ファイルは通常、/etc/pam.d/ ディレクトリにあります。このディレクトリ内の各ファイルは、通常、loginsudossh など、PAM を使用する特定のサービスまたはアプリケーションに対応しています。

このシステム上に存在する PAM 構成ファイルを確認するために、/etc/pam.d/ ディレクトリの内容を一覧表示しましょう。ディレクトリの内容を一覧表示するために使用される ls コマンドを使用します。

ターミナルが開いていない場合は、開きます。デスクトップの左側にある Xfce Terminal アイコンを見つけることができます。

次のコマンドを入力し、Enter キーを押します。

ls /etc/pam.d/

次のようなファイルのリストが表示されるはずです(正確なリストはシステム構成によって若干異なる場合があります)。

atd
chfn
chpasswd
chsh
cron
...
sudo
su
systemd-user
...

ここにリストされている各ファイルは、特定のサービス用の PAM 構成ファイルです。たとえば、sudo ファイルには sudo コマンドの PAM 構成が含まれており、login ファイルにはユーザーログインの構成が含まれています。

これらのファイルを一覧表示することで、システム上のどのサービスが認証やその他のセキュリティ関連のタスクに PAM を使用しているかを把握することができます。

Continue をクリックして次のステップに進みます。

cat /etc/pam.conf で PAM 設定を確認する

前のステップでは、/etc/pam.d/ ディレクトリ内の個別の PAM 構成ファイルを見ました。ほとんどの最新のシステムでは /etc/pam.d/ ディレクトリ構造を使用していますが、一部の古い構成や特定の設定では、単一の集中管理された構成ファイル /etc/pam.conf をまだ使用している場合があります。

/etc/pam.conf ファイルが存在し、使用されている場合、このファイルにはさまざまなサービス、モジュールタイプ、制御フラグ、および使用する特定の PAM モジュールに関するルールが含まれています。このファイルの各行は通常、特定のサービスに対するルールを定義しています。

/etc/pam.conf ファイルが存在するかどうかを確認し、cat コマンドを使用してその内容を表示しましょう。cat コマンドは、ファイルの内容を表示するために使用されます。

ターミナルに次のコマンドを入力し、Enter キーを押します。

cat /etc/pam.conf

このシステムでは、おそらくファイルが存在しないか、空であることを示す出力が表示されます。前述のように、このシステムでは主に /etc/pam.d/ ディレクトリを PAM 構成に使用しているためです。

cat: /etc/pam.conf: No such file or directory

この出力は、システムが単一の /etc/pam.conf ファイルではなく、/etc/pam.d/ ディレクトリ内の個別のファイルに依存していることを確認します。異なる Linux ディストリビューションや古いシステムで作業する際に、この違いを理解することは重要です。

この特定のシステムでは /etc/pam.conf が使用されていませんが、その存在と目的を知ることは、PAM を完全に理解するために役立ちます。

Continue をクリックして次のステップに進みます。

/lib/security 内の PAM モジュールを調査する

前のステップでは、PAM 構成ファイルを見ました。これらのファイルは、PAM に対して異なるサービスにどのモジュールを使用するかを指示します。では、システム上で実際の PAM モジュールがどこに保存されているかを見てみましょう。

PAM モジュールは通常、特定の認証、承認、アカウント、またはセッション管理タスクのコードを含む共有ライブラリ(.so で終わるファイル)です。これらのモジュールは通常、/lib/x86_64-linux-gnu/security/ または /lib/security/ のようなディレクトリにあります。このシステムでは、/lib/x86_64-linux-gnu/security/ にあります。

利用可能な PAM モジュールを確認するために、/lib/x86_64-linux-gnu/security/ ディレクトリの内容を一覧表示しましょう。再び ls コマンドを使用します。

ターミナルに次のコマンドを入力し、Enter キーを押します。

ls /lib/x86_64-linux-gnu/security/

それぞれが異なる PAM モジュールを表す長いファイルリストが表示されます。ファイル名は通常、pam_ で始まり、モジュール名が続き、.so で終わります。

pam_access.so
pam_cap.so
pam_chauthtok.so
pam_cracklib.so
...
pam_unix.so
pam_usw.so
pam_winbind.so

たとえば、pam_unix.so は、従来の Unix パスワード認証に使用される一般的なモジュールです。pam_cracklib.so は、パスワードの強度をチェックするために使用されます。

このディレクトリを調査することで、このシステム上の PAM を通じて利用可能なさまざまな認証およびセキュリティ機能を把握することができます。/etc/pam.d/ の構成ファイルは、各サービスの認証プロセスを定義するためにこれらの .so ファイルを参照します。

/etc/pam.d/ の構成ファイルと /lib/x86_64-linux-gnu/security/ のモジュールファイルとの関係を理解することは、PAM の仕組みを理解するための鍵となります。

Continue をクリックしてこの実験を完了します。

まとめ

この実験では、Linux の PAM (Pluggable Authentication Modules: プラガブル認証モジュール) の探索を始めました。PAM が、さまざまなサービスの認証、承認、およびアカウント管理を管理するための柔軟なフレームワークを提供することを学びました。まず、ls コマンドを使用して /etc/pam.d/ ディレクトリの内容を一覧表示し、sudologinssh などの異なるサービスの個別の PAM 構成ファイルを特定しました。これにより、システム上のどのサービスが PAM を利用しているかについての最初の概要を把握することができました。