防火墙无法录屏或记录FTP/SSH操作细节,仅能记录连接元数据;强审计需防火墙、服务日志(SSH/FTP配置)、系统审计(auditd)三层协同,实现“谁、何时、从哪、做了什么”的可追溯性。

防火墙本身不支持“录屏”,也无法对 FTP、SSH 等协议做视频级行为录制。所谓“强制审计录屏”是常见误解——实际能做的,是强制记录连接元数据、命令日志、会话审计轨迹,并配合其他工具实现操作级可追溯性。核心目标不是画面,而是“谁、何时、从哪、做了什么”。
明确审计边界:防火墙能记什么,不能记什么
防火墙(如 firewalld / iptables)工作在网络层和传输层,它能可靠记录:
- 源IP、目的IP、端口、协议(TCP/UDP)、连接状态(新建/已建立/拒绝)
- 匹配的规则编号、时间戳、动作(ACCEPT/DROP/LOG)
- 但无法获取用户名、执行命令、文件传输内容、交互文本
- SSH 登录后的命令、FTP 上传下载的文件名等,需由服务自身或中间代理(如 ttyrec、auditd、sftp-server 日志、vsftpd 的 xferlog)完成
分层配置:防火墙 + 服务日志 + 系统审计协同生效
要达成对 FTP 和 SSH 的强审计效果,需三层联动:
-
防火墙层(记录连接意图):
用 LOG 目标打标记,例如:sudo iptables -A INPUT -p tcp --dport 21 -j LOG --log-prefix "FTP-CONNECTION: "sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH-CONNECTION: "
日志输出到/var/log/messages或/var/log/kern.log -
服务层(记录身份与行为):
• SSH:启用LogLevel VERBOSE并配合ForceCommand或session类 audit 规则;
• FTP(vsftpd/proftpd):开启xferlog_enable=YES、setproctitle_enable=YES,记录用户、文件、时间、结果;
• SFTP(推荐替代 FTP):通过 OpenSSH 内置的Subsystem sftp internal-sftp -l INFO记录详细操作 -
系统审计层(记录进程与系统调用):
启用 auditd,添加规则捕获关键事件:auditctl -w /usr/bin/ftp -p x -k ftp-execauditctl -a always,exit -F arch=b64 -S execve -F uid!=0 -k ssh-session
日志统一存于/var/log/audit/audit.log,可用aureport分析
关键实操:让 SSH 和 FTP 行为真正可追溯
仅靠防火墙日志远远不够,必须补足服务侧配置:
-
SSH 审计强化:
• 编辑/etc/ssh/sshd_config.d/99-audit.conf:LogLevel VERBOSEPrintLastLog yesMaxAuthTries 3
• 启用 PAM 日志:
确保/etc/pam.d/sshd包含session required pam_tty_audit.so enable=*(记录终端输入)
• 重启服务:sudo systemctl restart sshd -
FTP 审计强化(以 vsftpd 为例):
• 编辑/etc/vsftpd.conf:xferlog_enable=YESxferlog_std_format=YESlog_ftp_protocol=YESsetproctitle_enable=YES
• 日志默认写入/var/log/vsftpd.log,包含用户、IP、命令、文件、结果码
日志归集与可视化建议
原始日志分散在多处,需集中处理才具备审计价值:
- 用
rsyslog或journalbeat将/var/log/secure、/var/log/vsftpd.log、/var/log/audit/audit.log转发至 ELK(Elasticsearch + Logstash + Kibana)或 Loki + Grafana - 设置关键词告警:如
"Failed password"、"530 Login incorrect"、"USER anonymous" - 定期导出审计报告:用
ausearch -m USER_LOGIN -ts yesterday | aureport -f -i提取登录事件











