在Ubuntu系统中,使用SFTP(SSH File Transfer Protocol)进行日志审计可以帮助你监控和记录文件传输活动。以下是一些步骤和工具,可以帮助你设置和进行SFTP日志审计:
首先,确保你的SSH和SFTP服务已经正确配置并运行。
打开SSH配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
找到并修改以下配置项:
# 启用详细日志记录
LogLevel VERBOSE
# 指定日志文件的位置
SyslogFacility AUTHPRIV
# 记录失败的登录尝试
LogLevel INFO
保存并关闭文件。
使配置生效:
sudo systemctl restart sshd
auth.log
进行审计Ubuntu系统默认会将SSH和SFTP的日志记录到 /var/log/auth.log
文件中。你可以使用以下命令查看和分析日志:
grep "sftp-server" /var/log/auth.log
grep "sftp-server" /var/log/auth.log | grep "username"
auditd
进行更详细的审计auditd
是一个强大的审计工具,可以记录系统调用和文件访问。你可以使用它来监控SFTP活动。
auditd
sudo apt-get install auditd audispd-plugins
auditd
编辑auditd
配置文件 /etc/audit/auditd.conf
:
sudo nano /etc/audit/auditd.conf
确保以下配置项正确:
log_format = RAW
log_target = SYSLOG
name_format = HOSTNAME
创建一个新的审计规则文件 /etc/audit/rules.d/sftp.rules
:
sudo nano /etc/audit/rules.d/sftp.rules
添加以下规则:
-a exit,always -F arch=b64 -S openat -S open -S close -S close_write -F auid!=unset -F auid>=1000 -F key=sftp
-a exit,always -F arch=b32 -S openat -S open -S close -S close_write -F auid!=unset -F auid>=1000 -F key=sftp
保存并关闭文件。
auditd
服务使规则生效:
sudo systemctl restart auditd
你可以使用以下命令查看SFTP相关的审计日志:
ausearch -k sftp
还有一些第三方工具可以帮助你更方便地进行SFTP日志审计,例如 fail2ban
和 logwatch
。
fail2ban
可以监控日志文件并自动封禁恶意IP地址。
安装 fail2ban
:
sudo apt-get install fail2ban
配置 fail2ban
以监控 /var/log/auth.log
:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
添加以下内容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
保存并关闭文件,然后重启 fail2ban
:
sudo systemctl restart fail2ban
logwatch
是一个日志分析工具,可以生成详细的日志报告。
安装 logwatch
:
sudo apt-get install logwatch
配置 logwatch
:
sudo nano /etc/logwatch/conf/logwatch.conf
根据需要进行配置,然后运行 logwatch
:
sudo logwatch --output text
通过以上步骤,你可以有效地设置和进行Ubuntu系统中的SFTP日志审计。