服务器远程连接审计需从源头采集、传输加固、集中存储、权限管控四方面同步落地,重点审计ssh登录、sudo操作、图形远程及非交互式连接,并通过强化ssh配置、启用auditd、记录命令历史、tls加密转发至中心服务器、严格权限与归档校验等措施确保日志防篡改、不丢失、可追溯。

服务器远程连接审计日志,核心是捕获谁、何时、从哪、用什么方式连上来,并确保日志不被篡改、不丢失、可追溯。这不是只开个日志开关就行的事,得从源头采集、传输加固、集中存储、权限管控四方面同步落地。
明确要审计的远程连接行为
不是所有“连接”都算审计重点。需重点关注:
- SSH 登录(成功/失败):包括用户名、源IP、时间、终端、命令(如执行sudo或交互式shell)
- sudo 权限提升操作:谁切换了身份、执行了什么敏感命令
- 图形远程(如VNC/RDP)登录事件(Linux上常通过systemd-logind或xrdp日志体现)
- 非交互式连接(如scp、rsync):虽不启动shell,但涉及文件操作,也应记录
在服务端开启细粒度日志记录
光靠默认的/var/log/secure或messages不够细,需主动增强:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
-
SSH 配置强化:编辑
/etc/ssh/sshd_config,确保:LogLevel VERBOSE(记录认证过程细节)PrintLastLog yes(登录时显示上次登录信息)UsePAM yes(启用PAM模块,便于集成auditd) -
启用 auditd 审计系统:监控sshd进程和关键系统调用
在/etc/audit/rules.d/remote.rules中添加:-a always,exit -F arch=b64 -S execve -F path=/usr/sbin/sshd -k ssh_exec-w /var/log/secure -p wa -k authlog
然后执行augenrules --load并重启auditd -
记录bash命令历史到syslog:修改
/etc/bashrc,加入:export PROMPT_COMMAND='logger -p local3.info -t bash "$(whoami) [$(tty | sed "s:/dev/::")] $(history 1 | { read x cmd; echo "$cmd"; })"'
并在rsyslog中配置local3.* /var/log/commands.log
安全转发到中心审计服务器
本地日志易被删改,必须实时加密发往独立审计服务器:
-
禁用明文协议:不用
@(UDP)或未加密@@(TCP),一律用@@(o)表示TLS加密TCP -
服务端监听6514端口(非514),加载gtls模块,配置CA证书、服务端证书与私钥,设置
StreamDriver.AuthMode="x509/name"强制验证客户端身份 -
客户端只转发关键设施日志:例如仅转发
authpriv.*(含SSH)、local3.*(含命令历史)、audit.*(若auditd已配置为syslog输出) -
按源IP自动分目录存储:服务端用template生成路径如
/var/log/audit-remote/192.168.10.22/ssh.log,避免混杂
存储与访问控制硬性要求
日志存下来不等于审计有效,必须防篡改、控权限、保周期:
- 审计日志目录设为750权限,属主root,属组auditlog(新建专用组),禁止其他用户读写
- 每日归档+SHA256校验:用logrotate配合脚本,在压缩前计算校验值并单独保存
- 保留至少180天(满足等保/ISO27001常见要求),超期自动删除,不可人工覆盖
- 审计服务器禁止SSH密码登录、禁用root远程登录、仅允许密钥+二次验证访问










