HW3 === **組員:** B11009014 @ 王玟雅 M11309123@ 楊子慶 M11309205@ 鄭庾修 本次作業目標 --- 📝作業目標敘述 本次作業分為兩個主題,主要是針對 Linux 系統在身份驗證與權限操作記錄,以及稽核機制運作方式的基礎理解與實作能力。 1. 第一題:觀察身份驗證與權限操作紀錄 學習如何透過觀察 /var/log/auth.log,掌握系統對於身份驗證、登入行為及 sudo 指令等操作的記錄方式。學生需模擬登入成功與失敗的情境,並嘗試執行 sudo 指令以觸發權限操作紀錄,進而熟悉 log 檔內容與事件分類。 2. 第二題:設定稽核規則監控敏感檔案存取 實作 Linux 稽核系統 auditd 的安裝與基本操作,透過設定監控規則,對系統中重要檔案(如 /etc/shadow、~/.bashrc 及 root 的 crontab 設定檔)進行存取監控。學生需實際操作這些檔案,並使用 ausearch 指令查詢是否成功記錄相關活動,以理解 Linux 核心層級的稽核紀錄機制。 第一題 --- #### 觀察 /var/log/auth.log來熟悉系統如何記錄與身份驗證、權限操作相關的事件。 1. **製造登入成功以及失敗的紀錄** `su - userhw3` - 登入不同使用者 * 登入失敗  * 登入成功  2. **製造一些觸發sudo指令的操作** 需要root權限才能新增及刪除使用者,在這邊馬上來執行一下這些指令,觸發權限操作紀錄! ```sudo adduser anotheruser4hw3 ``` - 新增使用者 ```sudo deluser anotheruser4hw3 ``` - 刪除使用者   ~~這邊連續手滑三次~~ 3. **查找登入成功以及失敗的紀錄** ```bash sudo cat /var/log/auth.log ```  登入失敗: ```text Apr 21 19:32:57 nice2meetuwu su: pam_unix(su-l:auth): authentication failure; logname= uid=1000 euid=0 tty=/dev/pts/0 ruser=andy rhost= user=user4hw3 Apr 21 19:32:59 nice2meetuwu su: FAILED SU (to user4hw3) andy on pts/0 ``` 登入成功: ``` Apr 21 19:34:59 nice2meetuwu su: (to user4hw3) andy on pts/0 Apr 21 19:34:59 nice2meetuwu su: pam_unix(su-l:session): session opened for user user4hw3(uid=1001) by (uid=1000) ``` 4. **查找使用 sudo 指令的相關紀錄** ```bash sudo cat /var/log/auth.log ```  前面觸發sudo指令的操作確實都被記錄下來了,前面的log也有提到因為user4hw3沒有在sudoers裡面所以會有特別紀錄,~~真的不是說說而已~~ :+1: ``` Apr 21 19:40:38 nice2meetuwu sudo: user4hw3 : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/user4hw3 ; USER=root ; COMMAND=/usr/sbin/adduser anotheruser4hw3 Apr 21 20:00:25 nice2meetuwu sudo: pam_unix(sudo:auth): authentication failure; logname= uid=1001 euid=0 tty=/dev/pts/0 ruser=user4hw3 rhost= user=user4hw3 Apr 21 20:00:57 nice2meetuwu sudo: user4hw3 : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/user4hw3 ; USER=root ; COMMAND=/usr/sbin/deluser anotheruser4hw3 Apr 21 20:03:13 nice2meetuwu sudo: user4hw3 : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/user4hw3 ; USER=root ; COMMAND=/usr/bin/cat /var/log/auth.log ``` 第二題 --- #### 學習並掌握 auditd(Linux Audit Daemon)的基本操作方式,透過設定稽核規則來監控重要系統檔案是否被存取或修改。 1. **安裝auditd** ```bash sudo apt update sudo apt install auditd ``` 確認安裝完成  #### 下面這步是多出來的 2. **啟用auditd(wsl extra step)** * 1. 使用`sudo systemctl status auditd`檢測auditd目前的狀態  這邊可以看到auditd目前是failed的狀態,代表說還沒被啟用,所以要執行其他指令auditd的話會失效。 * 2. 使用`sudo systemctl enable auditd`來啟用auditd  debug了一段時間發現原來wsl不支援auditd,即使是使用了sudo也沒用,linus本人來了可能也難救。整理一下心情,重新出發! #### 這邊開始切換成祖傳的虛擬機來操作 3. **新增監控檔案的rule** ```bash -w: 指定要監控的檔案 -p: 權限(r 讀、w 寫、x 執行、a 屬性變更) -k: 標記關鍵字,用來後續搜尋 新增規則 : sudo auditctl -w /etc/shadow -p rwxa -k shadow sudo auditctl -w /home/<username>/.bashrc -p rwxa -k shell sudo auditctl -w /var/spool/cron/crontabs/root -p wa -k crontab 查看目前的規則 : sudo auditctl -l ```  4. **製造一些足跡來被紀錄** * 開啟shadow以及bashrc來觸發紀錄 ``` cat🐱:用來顯示文件內容的指令 sudo cat /etc/shadow ```  ``` cat🐱:用來顯示文件內容的指令 sudo cat /home/<username>/.bashrc ```  * 修改 /var/spool/cron/crontabs/root 來觸發紀錄 ``` nano : 是編寫檔案的指令 sudo nano /var/spool/cron/crontabs/root ```  5. 看log是否有紀錄到操作 ``` -k: 標記關鍵字來進行搜尋 sudo ausearch -k <想找的東西> 想找的東西 : shadow、shell、crontab ``` * shadow(尋找cat)🐱:  * shell(尋找cat)🐱:  * crontab(尋找nano):  實作心得 --- 這次作業讓我第一次比較完整地動手操作 Linux 的登入紀錄與稽核功能。第一題讓我學到原來系統會把每次登入失敗或用sudo執行指令時的紀錄都寫進 /var/log/auth.log,而且從log裡還能看出是誰、什麼時間、在終端機做了什麼事,有種在演樓下的房客裡面房東的感覺,還滿有趣的? 第二題一開始遇到點小卡關,因為我是在WSL上跑Linux,結果auditd竟然不能正常啟動,剛好很久以前有裝一個虛擬機,就直接換到虛擬機重新來一次,順便回味一下青春時光。不過後來設定監控 /etc/shadow、.bashrc 跟crontab時就順利很多,實際用cat和nano去讀寫之後,再用ausearch查紀錄,真的都能找到剛剛做的事,蠻有成就感的。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up