共用方式為


設定插入式驗證模組 (PAM) 以稽核登入事件

本文提供在未修改的 Ubuntu 20.04 或 18.04 安裝上設定插入式驗證模組 (PAM) 以稽核 SSH、Telnet 和終端機登入事件的範例程序。

PAM 設定可能會因裝置和 Linux 發行版本而異。

如需詳細資訊,請參閱登入收集器 (事件型收集器)

注意

適用於 IoT 的 Defender 計劃於 2025 年 8 月 1 日淘汰微代理程式。

必要條件

開始之前,請確定您有適用於 IoT 的 Defender 微代理程式。

設定 PAM 需要技術知識。

如需詳細資訊,請參閱教學課程:安裝適用於 IoT 的 Defender 微代理程式

修改 PAM 設定以報告登入和登出事件

此程式提供設定成功登入事件集合的範例程式。

我們的範例是以未修改的 Ubuntu 20.04 或 18.04 安裝為基礎,而且此程式中的步驟可能與您的系統不同。

  1. 找出下列檔案:

    • /etc/pam.d/sshd
    • /etc/pam.d/login
  2. 在每個檔案結尾處新增下列幾行:

    // report login
    session [default=ignore] pam_exec.so type=open_session /usr/libexec/defender_iot_micro_agent/pam/pam_audit.sh 0
    
    // report logout
    session [default=ignore] pam_exec.so type=close_session /usr/libexec/defender_iot_micro_agent/pam/pam_audit.sh 1
    

修改 PAM 設定以報告登入失敗

此程式提供設定失敗登入嘗試集合的範例程式。

此程式中的這個範例是以未修改的 Ubuntu 18.04 或 20.04 安裝為基礎。 下面所列的檔案和命令可能會因設定而有所不同,或因為修改而有所不同。

  1. 找出 /etc/pam.d/common-auth 檔案並尋找下列幾行:

    # here are the per-package modules (the "Primary" block)
    auth    [success=1 default=ignore]  pam_unix.so nullok_secure
    # here's the fallback if no module succeeds
    auth    requisite           pam_deny.so
    

    本節會透過 pam_unix.so 模組進行驗證。 如果驗證失敗,本節會繼續進行 pam_deny.so 模組以防止存取。

  2. 將指示的程式程式碼取代為下列內容:

    # here are the per-package modules (the "Primary" block)
    auth	[success=1 default=ignore]	pam_unix.so nullok_secure
    auth	[success=1 default=ignore]	pam_exec.so quiet /usr/libexec/defender_iot_micro_agent/pam/pam_audit.sh 2
    auth	[success=1 default=ignore]	pam_echo.so
    # here's the fallback if no module succeeds
    auth	requisite			pam_deny.so
    

    在此修改的區段中,PAM 會略過一個模組至 pam_echo.so 模組,然後略過 pam_deny.so 模組並成功驗證。

    如果失敗,PAM 會繼續向代理程式記錄檔報告登入失敗,然後跳過一個模組至 pam_deny.so 模組,以封鎖存取。

驗證設定

此程式描述如何確認您已正確設定 PAM 以稽核登入事件。

  1. 使用 SSH 登入裝置,然後登出。

  2. 使用 SSH 登入裝置,使用不正確的認證來建立失敗的登入事件。

  3. 存取您的裝置並執行下列命令:

    cat /var/lib/defender_iot_micro_agent/pam.log
    
  4. 確認已記錄類似下列幾行、成功登入 (open_session)、登出 (close_session),以及登入失敗 (auth):

    2021-10-31T18:10:31+02:00,16356631,2589842,open_session,sshd,user,192.168.0.101,ssh,0
    2021-10-31T18:26:19+02:00,16356719,199164,close_session,sshd, user,192.168.0.201,ssh,1
    2021-10-28T17:44:13+03:00,163543223,3572596,auth,sshd,user,143.24.20.36,ssh,2
    
  5. 使用 Telnet 和終端機連線重複驗證程式。

下一步

如需詳細資訊,請參閱微代理程式事件集合