溫馨提示×

Ubuntu SSH如何監控與日志

小樊
35
2025-09-29 07:05:09
欄目: 智能運維

Ubuntu SSH監控與日志管理指南

一、SSH服務狀態監控

1. 使用systemctl命令(推薦)

systemctl是Ubuntu管理systemd服務的核心工具,可全面監控SSH服務(ssh)的狀態:

  • 查看服務狀態sudo systemctl status ssh,輸出會顯示服務是否運行(Active: active)、最近日志片段及進程ID(Main PID)。
  • 啟動/停止/重啟服務sudo systemctl start ssh(啟動)、sudo systemctl stop ssh(停止)、sudo systemctl restart ssh(重啟,中斷現有連接)。
  • 重新加載配置sudo systemctl reload ssh(不中斷現有連接,應用/etc/ssh/sshd_config的修改)。
  • 設置開機自啟sudo systemctl enable ssh(啟用)、sudo systemctl disable ssh(禁用)。

2. 使用netstat/ss查看端口監聽

通過netstatss命令可確認SSH服務是否在默認端口(22)監聽:

  • sudo netstat -tuln | grep 22:顯示TCP端口22的監聽狀態(LISTEN)及進程信息。
  • sudo ss -tuln | grep 22:更現代的工具,輸出更簡潔,包含進程PID和名稱(如sshd)。

二、SSH日志查看與分析

1. 主要日志文件

Ubuntu系統默認將SSH認證及連接日志記錄在/var/log/auth.log(Debian/Ubuntu系),包含登錄成功/失敗、會話開啟/關閉等信息。

2. 基礎日志查看命令

  • 查看SSH相關日志sudo grep "sshd" /var/log/auth.log,篩選出所有包含sshd的日志條目。
  • 實時監控日志sudo tail -f /var/log/auth.log | grep sshd,持續顯示新增的SSH日志(按Ctrl+C退出)。
  • 使用journalctl查看系統日志sudo journalctl -u ssh,通過systemd查看sshd服務的日志,支持時間過濾(如--since "2025-09-01")。

3. 常見日志分析場景

  • 篩選登錄成功記錄sudo grep "Accepted" /var/log/auth.log,輸出包含用戶、IP、端口及認證方式(如publickey、password)的信息。
  • 篩選登錄失敗記錄sudo grep "Failed password" /var/log/auth.log(密碼認證失?。?、sudo grep "Invalid user" /var/log/auth.log(無效用戶名嘗試),用于檢測暴力破解。
  • 統計失敗嘗試次數sudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr,按IP統計失敗次數(從高到低排序)。

三、高級監控與安全加固

1. 使用fail2ban自動防御暴力破解

fail2ban通過監控日志識別多次失敗嘗試,自動封禁惡意IP:

  • 安裝sudo apt install fail2ban。
  • 配置:復制默認配置sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local,編輯jail.local啟用SSH監獄:
    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3  # 允許的最大失敗次數
    bantime = 600 # 封禁時間(秒,如10分鐘)
    
  • 重啟服務sudo systemctl restart fail2ban,生效后會自動封禁觸發規則的IP。

2. 使用auditd進行深度審計

auditd可記錄系統調用(如文件訪問、進程執行),適合需要詳細追蹤SFTP活動的場景:

  • 安裝sudo apt install auditd audispd-plugins。
  • 添加審計規則:編輯/etc/audit/rules.d/sftp.rules,添加以下規則(監控/path/to/sftp/directory目錄的讀寫操作):
    -a exit,always -F arch=b64 -S openat,open,close,close_write -F auid!=unset -F auid>=1000 -F key=sftp
    -a exit,always -F arch=b32 -S openat,open,close,close_write -F auid!=unset -F auid>=1000 -F key=sftp
    
  • 重啟auditdsudo systemctl restart auditd,查看審計日志用sudo ausearch -k sftp。

3. 網絡流量監控

使用iftop、nloadtcpdump監控SSH流量,識別異常連接:

  • iftop:實時顯示帶寬使用(按IP排序),安裝sudo apt install iftop,運行sudo iftop -i eth0eth0為網絡接口)。
  • nload:圖形化顯示總流量及收發速率,安裝sudo apt install nload,運行nload。
  • tcpdump:捕獲SSH數據包(端口22),安裝sudo apt install tcpdump,運行sudo tcpdump -i eth0 port 22。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女