• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Linux 設定 pam_tty_audit 記錄 SSH 使用者操作指令教學與範例

介紹如何在 Ubuntu Linux 中設定 PAM 的 pam_tty_audit 透過 auditd 記錄下 SSH 登入的使用者操作指令。

安裝 auditd

pam_tty_audit 在運作時需要搭配 auditd 服務一起使用,所以要先安裝 auditd:

# 安裝 auditd 套件
sudo apt-get install auditd

關於 auditd 的詳細操作說明,可以參考 Adultd:Linux 系統稽核工具使用教學與範例。

設定 pam_tty_audit

編輯 /etc/pam.d/sshd 設定檔,加入一行 pam_tty_audit 的設定:

# 搭配 auditd 記錄使用者操作
session required pam_tty_audit.so disable=user1,user2 enable=user3

這裡的設定中,可以用 disable 參數指定排除的帳號清單,而 enable 參數則是可以指定納入監看的帳號清單。

若 disable 與 enable 參數牴觸時,會以後面的設定覆蓋前面的設定。若希望只記錄 root 管理者的操作,可以排除所有使用者,然後只納入 root 管理者:

# 搭配 auditd 記錄使用者操作
session required pam_tty_audit.so disable=* enable=root

更改好 PAM 的設定檔之後,就會立即生效,後續登入的使用者都會被 auditd 錄下所有的操作指令。

記錄密碼

在預設的狀況下,pam_tty_audit 並不會記錄使用者由鍵盤輸入的的密碼,如果要連同密碼一起記錄,要加上 log_passwd:

# 搭配 auditd 記錄使用者操作
session required pam_tty_audit.so disable=user1,user2 enable=user3 log_passwd

查看報表

auditd 的記錄檔的位置預設放在 /var/log/audit/audit.log,其中也包含了使用者的每一個按鍵(包含退位鍵、刪除鍵、換行鍵等),雖然可以直接閱讀這個記錄檔,但是建議以 aureport 輸出格式化的報表會更好閱讀:

# 輸出 auditd 的 tty 按鍵報表
sudo aureport --tty
TTY Report
===============================================
# date time event auid term sess comm data
===============================================
1. 05/18/22 13:53:15 2213 1000 ? 257 vi <esc>,"[2;2R",<esc>,"[>0;136;0cG:q",<ret>
2. 05/18/22 13:55:11 2216 1000 ? 257 bash "cd /et",<tab>,"pamd.",<backspace>,<backspace>,".d",<ret>,"vi sshd",<tab>,<ret>,"aurepo",<tab>,<ret>,"aureport --tty",<ret>,"exit",<ret>
3. 05/18/22 13:55:15 2221 1000 ? 257 bash "sudo su",<ret>,"ls",<ret>,"exit",<ret>
4. 05/18/22 14:03:30 2305 1000 ? 259 vi <esc>,"[2;2R",<esc>,"[>0;136;0cG",<up>,<up>,<up>,<up>,<up>,"v",<esc>,<up>,<up>,<down>,<down>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,"Ggg",<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,"/tty",<ret>,"nnnnnnnnnnnG:q",<ret>
5. 05/18/22 14:03:49 2310 1000 ? 259 vi <esc>,"[2;2R",<esc>,"[>0;136;0cG",<up>,<up>,<up>,<up>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,":q",<ret>

我們可以用 --start 與 --end 參數來指定記錄的時間範圍:

# 輸出 10 分鐘內的 tty 按鍵報表
sudo aureport --tty --start recent

# 輸出開機後的 tty 按鍵報表
sudo aureport --tty --start boot

# 輸出昨天到現在的 tty 按鍵報表
sudo aureport --tty --start yesterday

# 指定資料時間區間
sudo aureport --tty --start 05/18/22 13:00:00 --end 05/18/22 14:00:00

aureport 預設的輸出報表只會顯示使用者 ID,若要顯示使用者名稱,可以加上 -i 參數:

# 輸出 auditd 的 tty 按鍵報表
sudo aureport --tty -i
TTY Report
===============================================
# date time event auid term sess comm data
===============================================
1. 05/18/22 13:53:15 2213 ubuntu ? 257 vi <esc>,"[2;2R",<esc>,"[>0;136;0cG:q",<ret>
2. 05/18/22 13:55:11 2216 ubuntu ? 257 bash "cd /et",<tab>,"pamd.",<backspace>,<backspace>,".d",<ret>,"vi sshd",<tab>,<ret>,"aurepo",<tab>,<ret>,"aureport --tty",<ret>,"exit",<ret>
3. 05/18/22 13:55:15 2221 ubuntu ? 257 bash "sudo su",<ret>,"ls",<ret>,"exit",<ret>
4. 05/18/22 14:03:30 2305 ubuntu ? 259 vi <esc>,"[2;2R",<esc>,"[>0;136;0cG",<up>,<up>,<up>,<up>,<up>,"v",<esc>,<up>,<up>,<down>,<down>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,"Ggg",<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,<down>,"/tty",<ret>,"nnnnnnnnnnnG:q",<ret>
5. 05/18/22 14:03:49 2310 ubuntu ? 259 vi <esc>,"[2;2R",<esc>,"[>0;136;0cG",<up>,<up>,<up>,<up>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,<right>,":q",<ret>

參考資料

  • RedHat:Configuring PAM for Auditing
  • Tecmint:How to Configure PAM to Audit Logging Shell User Activity

分類:Linux 標籤:資訊安全

主要資訊欄

搜尋

近期文章

  • Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤
  • Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例
  • Linux 網路設定 ip 指令用法教學與範例
  • Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例
  • Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例
  • Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例
  • Linux 以 Cryptsetup 與 LUKS 加密磁碟教學與範例
  • Linux 使用 age 簡潔的加密、解密工具使用教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide