PAM - パスワードログインを完全に無効にします。

PAM - パスワードログインを完全に無効にします。

私は、ITインフラストラクチャ全体のセキュリティを向上させようとして、ログインにスマートカードを使用し始めました。秘密鍵とx.509証明書を使用してPIVスマートカードを正常に設定および設定しました。pam_pkcs#11これにより、スマートカードのログインが機能します。ドキュメントに記載されているように、以下を追加しました。

auth    [success=2 default=ignore]      pam_pkcs11.so

この時点でetc/pam.d/common-authスマートカードのログインが動作しています。ただし、カードリーダーとスマートカードを取り外すと、システムはパスワードログイン(この場合はgnome)に戻ります。

したがって、私の目標は、グラフィカルインターフェイスの有無にかかわらず、パスワードログインを完全に無効にすることです。カードリーダーとスマートカードが接続されていないとログインできません。

アカウントのパスワードが非アクティブに設定されているという記事を読んでいますが、passwd -l $(whoami)私には合わないようです。

pamシステム全体のパスワードログインを無効にすることでこれを実行できますか?

ところで:今はUbuntu 19.10を使用しています。

答え1

このモジュールはpam_unix.so以下を担当しているようですstandard Unix authentication

PAM_UNIX(8)                           Linux-PAM Manual                           PAM_UNIX(8)

NAME
       pam_unix - Module for traditional password authentication

SYNOPSIS
       pam_unix.so [...]

DESCRIPTION
       This is the standard Unix authentication module. It uses standard calls from the
       system's libraries to retrieve and set account information as well as authentication.
       Usually this is obtained from the /etc/passwd and the /etc/shadow file as well if
       shadow is enabled.

したがって、パスワードベースの認証を完全に無効にするには、ディレクトリpam_unix.soに含まれるすべての行をコメントアウトするだけで/etc/pam.d十分だと思います。

答え2

場合によっては、自動ログイン、シェルスクリプト用にユーザーに対してパスワードのないログインを設定する必要があり、パスワードを提供する必要はありません。これは以下を使用して達成できます。パスワード命じる-D割り当てられたパスワードを削除するオプション。

例:

パスワード -d ユーザー名

これを変更すると、/ etc / shadowフィールドのパスワードフィールドが空白に変わり、パスワードなしで任意のコンピュータからローカルコンピュータにログインできます。更新:一部のユーザーは、これがローカルログインでのみ機能し、リモートログインでは機能しないと指摘しています。

答え3

PAMを無効にしようとしたときに発生する問題の回避策は次のとおりです。

私は自分のコンピュータの唯一のユーザーなので、PAMが好きではありませんが、PAMを避けるには、他の場所で説明されている無効化コマンド(「Skip Authentication」)を使用してください。通常、ここで説明されている操作を実行するには、ルートログインが必要です。

以下は、Ubuntu v.20.04.3 LTSを使用してテストされました。これはシステムに大きく依存せず、以下に説明するプロセスはすべての最新のUbuntuオペレーティングシステムで動作します。

残念ながら、現在のバージョンのUbuntuは、特定のPAMファイルがなければ実行されません。これらのファイルが削除または無効になっていると、Ubuntuは起動されず、Ubuntuの「回復モード」で再起動しようとしても機能しません。 UbuntuがPAMに完全に依存するように設計された理由がわかりません。一種の設計エラーのようです。

とにかく、この記事ではUbuntuオペレーティングシステムを再インストールせずに致命的なPAMエラーを修復する方法について説明します。

予選

まず、Ubuntuの再インストールDVDを作成する必要があります。これは通常、インターネットから無料でダウンロードできるisoファイルです(他のベンダーから公称価格で販売することもできます)。 K3bのようないくつかのダウンロード可能なアプリケーションを使用して起動不可能なDVDを修正して起動可能なDVDを作成することも可能です。

この起動可能なDVDを作成したら、自分で起動するかどうかをテストする必要があります。起動後、Ubuntuをインストールするように求められます。何も変更しない場合は、コンピュータをシャットダウンまたはシャットダウンします。

第二に、Ubuntuオペレーティングシステム全体を定期的に(例えば毎週)バックアップする習慣を養うこともできます。その後、Ubuntuを再インストールする必要がある場合は、最近バックアップしたデータもインストールできます。

オペレーティングシステムのエラー回復

回復の鍵は、オペレーティングシステムがそのファイルなしで実行されていることを知らずに、オペレーティングシステムファイルを削除しないことです。オペレーティングシステムファイル(PAMファイルなど)の削除を検討するときは、常にインストールされているファイルをそのままにして、最初に名前を変更して無効にしてから、再起動して効果をテストする必要があります。

私が好む名前の変更は、(file).exeを(file).exe_JMW_WASに変更することです。 (whatever).exe_JMW_WASというファイルは、Ubuntu(またはWindows)の実行可能ファイルではないためです。名前変更エラーは、すべての* _JMW_WASに対して検索を実行することで簡単に修正できます(私は「find / -name * _JMW_WAS -print」を使用します)。

インストールされている複数のPAMファイルを無効にすると、再起動が防止されます。しかし、これらの間違いを修正する方法は?特定のPAMファイルを無効または削除した後、通常の再起動が中断され、回復モードを再開しても致命的なエラーメッセージが表示され、続行されません。

まず、PAMファイルを削除するのではなく、実行を防ぐために名前を変更してください。

第二:災害が発生した場合は、Ubuntu回復モードを試してください。リカバリモードが機能しない場合は、再インストールDVDを使用して再起動してください。

しばらくすると、このDVDは(a)Ubuntuを試すか、(b)Ubuntuをインストールするかを選択するオプションを提供します。体験版オプションを選択してください。

しばらくすると、実行する手動コマンドがいくつか表示され、ファイルコマンドを選択します。

ファイル表示には、インストールされているオペレーティングシステムを一覧表示する最後の「その他の場所」オプションがあります。このリストには、起動できないUbuntuオペレーティングシステムとインストールされたWindowsが含まれています。

rootとしてログインし、使用可能なターミナルコマンドを使用すると、起動できないUbuntu OSでファイルを選択し、以前に誤って変更または無効にしたPAMまたは他のファイルを含む/ etcまたは/ libディレクトリに移動できます。もちろん名前は変わりましたが削除されませんでした。

そのファイルの名前を元の実行可能ファイルの名前に戻します。チャジャン!これでUbuntuオペレーティングシステムが正常に再起動します!

関連情報