熱門分類
載入中…
目錄0%

🧰 Linux PAM 與 sudo 權限安全控管指南

    🧰 Linux PAM 與 sudo 權限安全控管指南

    在 Linux 系統中,PAM(Pluggable Authentication Modules)與 sudo 是維運人員最常接觸的安全控管機制。透過靈活的模組化驗證架構與細緻的權限設定,我們能有效降低誤用與入侵風險,建立安全又彈性的管理環境。

    📘 一、PAM 是什麼?

    PAM(可插入式驗證模組)是 Linux 的核心安全框架,用於統一管理使用者登入、認證、密碼策略與帳號鎖定等動作。各服務(如 SSH、su、login)皆透過 PAM 進行身分驗證。

    PAM 設定檔位置:

    /etc/pam.d/
    ├── login
    ├── sshd
    ├── su
    ├── sudo
    └── system-auth
    

    每個服務都可使用不同 PAM 模組控制登入行為,如 pam_unix.sopam_tally2.sopam_faillock.so

    ---

    🧩 二、PAM 驗證流程解析

    sshd 為例,登入時會依序執行以下模組:

    1. auth:使用者身份驗證。
    2. account:帳號狀態與到期檢查。
    3. password:密碼變更規範。
    4. session:登入與登出階段動作。

    範例設定(/etc/pam.d/sshd):

    auth       required     pam_sepermit.so
    auth       substack     password-auth
    account    required     pam_nologin.so
    session    required     pam_selinux.so close
    session    required     pam_loginuid.so
    
    ---

    🔐 三、帳號鎖定與登入次數限制

    使用 pam_faillock 模組可防止暴力破解登入:

    auth required pam_faillock.so preauth silent deny=3 unlock_time=300
    auth [default=die] pam_faillock.so authfail
    account required pam_faillock.so
    

    這代表:連續 3 次登入失敗會鎖定帳號 5 分鐘。 可用下列指令查詢鎖定狀態:

    pam_tally2 --user username
    faillock --user username
    
    ---

    🧱 四、sudo 權限控管原則

    sudo 讓一般使用者以受限方式執行管理員指令,是最重要的權限管理工具。

    編輯 sudoers:

    sudo visudo
    

    常見設定範例:

    # 允許 user1 使用 root 權限執行所有指令
    user1 ALL=(ALL) ALL
    
    # 限制 group admin 只能重啟服務
    %admin ALL=(ALL) /bin/systemctl restart *
    
    # 禁止特定指令
    user2 ALL=(ALL) ALL, !/bin/rm
    

    查看目前使用者的 sudo 權限:

    sudo -l
    
    ---

    🧠 五、提升 sudo 與 PAM 的安全層級

    • 使用 visudo 編輯,避免語法錯誤導致鎖死。
    • 在 PAM 中整合 pam_faillock.so 以限制 sudo 登入次數。
    • 開啟 sudo 日誌:在 /etc/sudoers 加入 Defaults logfile="/var/log/sudo.log"
    • 建議搭配 auditdRsyslog 收集 sudo 使用紀錄。
    ---

    🛡 六、與系統安全模組整合(Fail2Ban / Rsyslog)

    將 sudo 與 PAM 鎖定事件導入 Rsyslog,可搭配 Fail2Ban 進行防護:

    # /etc/rsyslog.d/sudo.conf
    if $programname == 'sudo' then /var/log/sudo.log
    & stop
    

    Fail2Ban 可透過 /etc/fail2ban/filter.d/sudo.conf 偵測可疑 sudo 嘗試,自動封鎖 IP。

    ---

    📘 結語

    PAM 與 sudo 是 Linux 權限安全的兩大支柱。妥善運用這些模組,可防止暴力登入、權限濫用與未經授權操作。建議定期檢查 PAM 設定與 sudo 日誌,搭配 Fail2Ban、Rsyslog 等監控工具,即能構築穩固的多層防護體系。


    🔗 延伸閱讀

    — WWFandy・系統維運筆記

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級