Linux SFTP日志如何查看分析
导读:Linux SFTP日志查看与分析 一 日志位置与快速查看 SFTP基于SSH,日志默认随SSH记录,常见路径与命令如下(按发行版区分): 系统或方式 日志路径或命令 说明 Debian/Ubuntu /var/log/a...
Linux SFTP日志查看与分析
一 日志位置与快速查看
- SFTP基于SSH,日志默认随SSH记录,常见路径与命令如下(按发行版区分):
| 系统或方式 | 日志路径或命令 | 说明 |
|---|---|---|
| Debian/Ubuntu | /var/log/auth.log |
使用 grep sftp /var/log/auth.log 过滤;实时跟踪:`tail -f /var/log/auth.log |
| RHEL/CentOS | /var/log/secure |
使用 grep sftp /var/log/secure;实时跟踪:`tail -f /var/log/secure |
| systemd 统一日志 | journalctl -u sshd.service |
实时跟踪:`journalctl -u sshd.service -f |
| 通用 syslog | /var/log/syslog |
部分系统将SSH日志写入 syslog,可用 grep sftp /var/log/syslog 检索 |
- 典型会话线索示例:
- 成功登录:
Accepted publickey for < 用户> from < IP> port < 端口> ssh2 - 会话开启:
pam_unix(sshd:session): session opened for user < 用户> by (uid=0) - SFTP通道:
channel_open_session: ... sftp
- 成功登录:
- 以上路径与命令适用于快速定位SFTP连接、认证与会话事件。
二 增强日志可见性
- 提升SFTP子系统日志级别(便于审计文件操作等):
- 编辑
/etc/ssh/sshd_config,将子系统改为:Subsystem sftp internal-sftp -l INFO(也可用外部sftp-server -l INFO)。修改后重启SSH:systemctl restart sshd。日志仍写入系统认证日志(如/var/log/auth.log或/var/log/secure)。
- 编辑
- 将认证类日志单独分离(可选,便于独立审计):
- 在
/etc/rsyslog.conf或/etc/rsyslog.d/*.conf增加:auth,authpriv.* /var/log/sftp.log,然后systemctl restart rsyslog。注意这会使认证日志不再出现在默认文件,需同步调整监控与轮转策略。
- 在
- 按用户或条件细化日志级别(便于定位单用户问题):
- 在
sshd_config中使用Match User < 用户名>段设置LogLevel INFO,再重启sshd。例如:Match User alice LogLevel INFO
- 在
三 常用分析与排查命令
- 实时监控与检索
- 实时查看:
tail -f /var/log/auth.log | grep sftp - 按用户:
grep 'sftp.*< 用户名> ' /var/log/auth.log - 失败登录:
grep 'Failed password\|Login incorrect' /var/log/auth.log
- 实时查看:
- 统计与定位
- 统计某用户连接次数:
grep 'sftp.*< 用户名> ' /var/log/auth.log | wc -l - 统计来源IP连接次数:
grep 'Accepted.*ssh2' /var/log/auth.log | awk '{ print $10} ' | sort | uniq -c | sort -nr | head - 会话时长(基于 session opened/closed):先用
grep 'session opened for user' /var/log/auth.log与grep 'session closed for user' /var/log/auth.log抽取时间与用户,再在脚本中配对计算差值。
- 统计某用户连接次数:
- 日志解析建议
- 使用
awk/sed做字段提取与时间归一化;复杂场景可结合 Logwatch、ELK(Elasticsearch/Logstash/Kibana)、Graylog、Splunk 做可视化与告警。
- 使用
四 进阶审计与网络排查
- 文件访问细粒度审计(auditd)
- 安装并启动
auditd,对关键目录设置监控(示例监控用户家目录):sudo auditctl -w /home -p wa -k sftp_home_audit - 查询审计日志:
sudo ausearch -k sftp_home_audit。适用于追踪 SFTP 会话中的具体文件读写与权限变更。
- 安装并启动
- 网络层抓包(定位握手/连接异常)
- 抓取 SSH/SFTP 流量:
sudo tcpdump -i any port 22 -w sftp_traffic.pcap,用 Wireshark 分析握手、算法协商与断开原因。适合配合日志分析进行排障。
- 抓取 SSH/SFTP 流量:
五 常见问题与排查路径
- 服务与连通性
- 检查服务:
systemctl status sshd;启动:systemctl start sshd - 防火墙放行:
ufw allow 22/tcp或firewall-cmd --permanent --add-port=22/tcp & & firewall-cmd --reload
- 检查服务:
- 认证与配置
- 查看失败原因:
tail -f /var/log/auth.log检索Failed password/Login incorrect - 确认认证方式:
PasswordAuthentication yes等配置是否正确;必要时调整MaxStartups缓解并发限制
- 查看失败原因:
- 安全策略
- 检查 SELinux/AppArmor:
sestatus、apparmor_status,排除策略阻断导致的登录或文件访问异常。
- 检查 SELinux/AppArmor:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux SFTP日志如何查看分析
本文地址: https://pptw.com/jishu/750789.html
