目錄
- 問題背景
- 分析
- 解決系統盤滿的問題
- 解決結果
問題背景
今天登錄我的云服務器看了眼,發現系統盤滿了,但是其他正常
分析
1、首先要確認是否是被攻擊:
- top / htop (安裝:yum install htop 或 apt install htop):
- ??????查看實時運行的進程,按 M 按內存排序,按 P 按CPU排序。留意消耗極高的、名稱奇怪的進程,比如 minerd、xmr 等挖礦程序。注:ydservice是騰訊的進程(我是騰訊的云服務器)
- netstat -tunlp 或ss -tunlp查看所有監聽端口和建立連接的進程
- ??????主要查看有沒有不熟悉的端口
- iftop (安裝:yum install iftop 或 apt install iftop)
??????查看實時網絡流量,觀察是否有異常的大量入站/出站流量。
- 檢查異常用戶和登錄記錄
- last / lastb:查看成功登錄和失敗登錄的記錄。注意從未知IP地址或非常用時間的登錄,尤其是root用戶。
cat /var/log/auth.log (Debian/Ubuntu) 或 /var/log/secure (CentOS/RHEL):詳細認證日志,仔細查看可疑登錄嘗試。
cat /etc/passwd:查看系統用戶列表,注意是否有新增的陌生用戶。
sudo -l:列出當前用戶能執行的sudo命令。
我在執行last命令后出現2個異常且頻繁登錄的ip,于是我:
step1:
# 1. 立即封禁可疑IP sudo iptables -A INPUT -s 119.36.x.x -j DROP sudo iptables -A INPUT -s 59.172.x.x -j DROP# 2. 踢出所有活躍會話 sudo pkill -9 -t pts/3 sudo pkill -9 -t pts/4# 3. 禁用密碼登錄(強制密鑰認證) sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sudo systemctl restart sshd
step 2:
# 1. 檢查惡意授權密鑰 grep -R "119.36.xx.xx" /root/.ssh/ /home/*/.ssh/# 2. 查找隱藏后門文件 find / -name authorized_keys -mtime -365 | xargs grep -L "your-public-key"# 3. 檢查sudoers篡改 sudo grep -r "NOPASSWD" /etc/sudoers.d/
step3:賬號安全加固:
# 1. 重置root密碼(即使使用密鑰) sudo passwd root# 2. 創建新管理員賬號 sudo useradd -m -s /bin/bash admin sudo passwd admin sudo usermod -aG sudo admin# 3. 禁用root遠程登錄 sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
解決系統盤滿的問題
緊急解決步驟(必須按順序操作)
1、立即清理磁盤空間# 1. 刪除內核緩存(快速釋放空間) sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches# 2. 清理日志文件(安全操作) sudo journalctl --vacuum-size=50M # 立即釋放日志空間 sudo truncate -s 0 /var/log/*.log # 清空所有日志文件(不影響服務)# 3. 強制刪除臨時文件 sudo rm -rf /tmp/* /var/tmp/*# 4. 檢查釋放效果 df -h / # 查看根分區剩余空間,需>5%
2:修復密碼文件權限
# 1. 解除文件鎖定 sudo chattr -i /etc/passwd /etc/shadow# 2. 修復文件權限(關鍵!) sudo chmod 644 /etc/passwd sudo chmod 600 /etc/shadow
3、重置密碼
# 1. 嘗試再次重置密碼 sudo passwd root# 2. 若仍報錯,手動編輯密碼文件 sudo nano /etc/passwd # 將root行改為:root:x:0:0:root:/root:/bin/bash
4、寫入定時清理任務防止磁盤再次滿了
echo "0 * * * * root find /var/log -name '*.log-*' -mtime +7 -delete" | sudo tee /etc/cron.d/logclean
解決結果
雖然還不是很完美解決,如果有其他小妙招還請各位網友點評指教,共同進步!