1. 配置SSH詳細日志記錄(基礎審計)
Debian系統中,SFTP作為SSH的子服務,其活動日志主要由SSH服務記錄。通過調整sshd_config
文件可啟用詳細日志,便于后續審計。
sudo nano /etc/ssh/sshd_config
。LogLevel VERBOSE
:設置日志級別為VERBOSE(詳細模式),記錄登錄嘗試、文件傳輸、認證失敗等關鍵事件;Subsystem sftp /usr/lib/openssh/sftp-server -l INFO
:強制SFTP子系統記錄INFO級別日志(可調整為DEBUG獲取更詳細信息,但會增加日志體積)。sudo systemctl restart sshd
。/var/log/auth.log
(Debian/Ubuntu系統),可通過tail -f /var/log/auth.log
實時查看實時日志。2. 使用auditd監控系統調用(深度審計)
auditd
是Linux內核級審計工具,可監控SFTP用戶的文件訪問、修改、刪除等底層系統調用,提供更細粒度的審計能力。
sudo apt install auditd audispd-plugins
(Debian系統)。/etc/audit/rules.d/sftp.rules
,內容如下:-a exit,always -F arch=b64 -S openat -S open -S read -S write -S close_write -S close -k sftp
-a exit,always -F arch=b32 -S openat -S open -S read -S write -S close_write -S close -k sftp
上述規則監控所有與SFTP相關的文件操作(如打開、讀取、寫入、關閉),并標記為sftp
關鍵字。sudo systemctl restart auditd
。ausearch
命令過濾SFTP相關事件,例如:
sudo ausearch -k sftp
:查看所有SFTP標記的事件;sudo ausearch -k sftp | aureport -f
:生成文件訪問報告(顯示被訪問的文件路徑)。3. 分析SFTP日志(識別異常行為)
日志審計的核心是通過分析日志發現潛在威脅,如暴力破解、未授權訪問、異常文件傳輸等。
sudo apt install logwatch
),配置/etc/logwatch/conf/services/ssh.conf
中的LogFile
指向/var/log/auth.log
,即可定期接收報告。tail -f /var/log/auth.log
實時查看最新日志,或通過journalctl -f -u sshd
(systemd系統)監控SSH服務日志。unlink
)、修改系統文件(如/etc/passwd
)、訪問敏感目錄(如/root
)。4. 結合fail2ban防范暴力破解
fail2ban通過監控日志中的失敗嘗試,自動封禁惡意IP地址,減少SFTP服務遭受的暴力破解攻擊,間接提升審計數據的可信度。
sudo apt install fail2ban
。/etc/fail2ban/jail.local
,添加以下內容:[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 5 # 允許的最大失敗次數
bantime = 3600 # 封禁時間(秒,此處為1小時)
sudo systemctl restart fail2ban
。/var/log/fail2ban.log
,確認是否有IP被封禁(如“Ban 192.168.1.100”)。5. 定期歸檔與保留日志
日志文件長期積累會占用磁盤空間,且舊日志可能被覆蓋,因此需要配置日志輪轉和歸檔策略。
logrotate
管理日志,編輯/etc/logrotate.d/ssh
文件(若不存在則創建),添加以下配置:/var/log/auth.log {
daily # 每天輪轉
rotate 7 # 保留7天的日志
compress # 壓縮舊日志(節省空間)
missingok # 若日志文件不存在也不報錯
notifempty # 若日志為空則不輪轉
create 640 root adm # 新日志文件的權限和所有者
}
sudo logrotate -vf /etc/logrotate.d/ssh
(強制立即輪轉并顯示詳細過程)。