上一篇 下一篇 分享链接 返回 返回顶部

服务器登录日志怎么看?一看就懂:SSH 和远程桌面有没有被暴力尝试

发布人:Minchunlin 发布时间:2026-06-04 08:13 阅读量:604

服务器放到公网后,登录端口被扫描几乎是常态。很多用户第一次发现问题,往往不是服务器已经被攻破,而是在查看日志时看到大量 Failed password、Invalid user,或者 Windows 远程桌面里出现很多失败登录记录。

这类情况不能简单理解为“服务器中毒”,但也不能完全忽略。真正要判断的是:这些登录尝试来自哪里、频率多高、有没有成功登录、是否命中了真实账号,以及服务器当前防护策略是否足够。

下面我以一台真实业务环境中常见的服务器配置为例,讲清楚 Linux SSH 和 Windows 远程桌面登录日志应该怎么看,以及发现暴力尝试后应该如何处理。


一、示例服务器配置

以一台用于企业官网、后台管理、小型 API 服务的香港服务器为例:

项目 配置
CPU E5-2620V2 × 2,12 核 24 线程
内存 32GB
硬盘 480GB SSD
带宽 30M CN2 / CMIN2 / CU 三网优化线路
IP 3 个独立 IPv4
系统 Ubuntu 22.04 / CentOS 7.x / Windows Server 2019
场景 企业官网、运维后台、数据库管理、API 服务

这类服务器的特点是:性能不是瓶颈,真正需要关注的是公网暴露端口带来的安全风险。尤其是 22 端口 SSH 和 3389 端口远程桌面,如果没有限制来源 IP,很容易被自动化工具反复尝试。


二、先判断:这是正常扫描,还是已经有风险?

看到登录失败日志时,不要急着重装系统。可以先按下面几个维度判断风险等级。

1. 只是随机账号尝试

例如 Linux 日志里出现:

 
Invalid user admin from 45.xx.xx.xx
Invalid user test from 103.xx.xx.xx
Failed password for invalid user oracle
 

这通常是公网扫描器在批量尝试常见账号,例如:

 
admin
test
oracle
mysql
ubuntu
user
deploy
 

如果这些账号本来不存在,并且没有成功登录记录,一般属于低到中风险。

2. 命中了真实账号

如果日志里出现:

 
Failed password for root from 185.xx.xx.xx
Failed password for ubuntu from 92.xx.xx.xx
 

这就需要提高警惕。因为对方已经在尝试真实存在的账号,尤其是 root、administrator、ubuntu 这类常见账号。

3. 失败后出现成功登录

最危险的是先看到大量失败记录,后面又出现成功登录。

Linux 中常见成功登录日志:

 
Accepted password for root from 185.xx.xx.xx
Accepted publickey for deploy from 203.xx.xx.xx
 

Windows 中常见成功登录事件:

 
Event ID 4624
Logon Type: 10
 

如果成功登录 IP 不是你自己的办公 IP、家宽 IP、堡垒机 IP,就要立刻按入侵事件处理。


三、Linux 服务器怎么看 SSH 登录日志?

不同 Linux 系统日志位置略有区别。

Ubuntu / Debian

 
cat /var/log/auth.log
 

查看最近 SSH 失败登录:

 
grep "Failed password" /var/log/auth.log | tail -50
 

查看不存在账号的尝试:

 
grep "Invalid user" /var/log/auth.log | tail -50
 

查看成功登录:

 
grep "Accepted" /var/log/auth.log | tail -50
 

统计失败登录来源 IP:

 
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head
 

CentOS 7.x

CentOS 7.x 通常看:

 
cat /var/log/secure
 

查看失败登录:

 
grep "Failed password" /var/log/secure | tail -50
 

查看成功登录:

 
grep "Accepted" /var/log/secure | tail -50
 

统计攻击 IP:

 
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head
 

使用 journalctl 查看 SSH 服务日志

Ubuntu 22.04 上也可以用:

 
journalctl -u ssh --since "1 hour ago"
 

部分系统服务名是 sshd:

 
journalctl -u sshd --since "1 hour ago"
 

四、Linux 日志里重点看哪些字段?

一条典型失败日志大概长这样:

 
Failed password for root from 185.220.101.32 port 50312 ssh2
 

重点看 4 个地方:

字段 说明
Failed password 密码登录失败
root 被尝试的账号
185.220.101.32 来源 IP
port 50312 对方客户端随机端口,不是你的 SSH 端口

很多用户会误解 port 50312,以为服务器开放了这个端口。其实这里通常是攻击者客户端的随机源端口,不是你服务器的监听端口。

再看一条:

 
Accepted publickey for deploy from 203.0.113.8 port 51288 ssh2
 

这表示用户 deploy 使用 SSH 密钥成功登录,来源 IP 是 203.0.113.8。如果这个 IP 是你自己的固定办公出口或堡垒机,就属于正常登录;如果不是,就需要立刻排查。


五、Windows Server 怎么看远程桌面登录日志?

Windows Server 远程桌面主要看“事件查看器”。

路径如下:

 
事件查看器
→ Windows 日志
→ 安全
 

重点事件 ID:

事件 ID 含义
4624 登录成功
4625 登录失败
4634 注销
4776 NTLM 身份验证
1149 远程桌面用户身份验证成功

其中最关键的是 4625 和 4624。

远程桌面失败登录怎么看?

在“安全”日志中筛选:

 
事件 ID:4625
 

重点看:

字段 说明
Account Name 被尝试登录的账号
Source Network Address 来源 IP
Failure Reason 失败原因
Logon Type 登录类型

远程桌面常见的登录类型是:

 
Logon Type: 10
 

它代表远程交互式登录,也就是 RDP 远程桌面。

如果你看到大量类似记录:

 
Account Name: Administrator
Logon Type: 10
Source Network Address: 91.xx.xx.xx
 

基本可以判断远程桌面正在被暴力尝试。


六、如何判断 SSH 或 RDP 是否被暴力破解?

可以按下面标准快速判断。

低风险

 
几十次失败登录
账号都是不存在的随机账号
没有成功登录
来源 IP 分散
 

这种一般是公网自动扫描,做好基础加固即可。

中风险

 
短时间几百到几千次失败登录
反复尝试 root / administrator
来源 IP 集中
服务器 CPU 或带宽轻微异常
 

这种说明服务器已经进入攻击字典库,需要限制来源 IP 或增加防护策略。

高风险

 
先失败,后成功
成功登录 IP 不认识
系统出现陌生用户
计划任务异常
SSH authorized_keys 被改动
Windows 新增隐藏管理员
 

这种不能只封 IP,要按疑似入侵处理。


七、Linux SSH 暴力尝试的处理方案

1. 禁止 root 直接登录

编辑 SSH 配置:

 
vim /etc/ssh/sshd_config
 

修改或新增:

 
PermitRootLogin no
 

然后重启 SSH:

Ubuntu / Debian:

 
systemctl restart ssh
 

CentOS:

 
systemctl restart sshd
 

建议新建普通运维用户,通过普通用户登录后再 sudo 提权。


2. 禁用密码登录,改用 SSH 密钥

在确认密钥登录可用后,再关闭密码登录:

 
PasswordAuthentication no
PubkeyAuthentication yes
 

重启 SSH:

 
systemctl restart ssh
 

这是防暴力破解最有效的方法之一。因为对方即使知道用户名,也无法通过字典密码登录。


3. 限制允许登录的用户

例如只允许 deploy 和 ops 登录:

 
AllowUsers deploy ops
 

如果你的服务器只是跑网站,不需要多人直接登录,这个策略非常实用。


4. 使用防火墙限制 SSH 来源 IP

Ubuntu 使用 UFW:

 
ufw allow from 你的办公IP to any port 22
ufw deny 22
ufw enable
 

CentOS 7.x 使用 firewalld:

 
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="你的办公IP" port protocol="tcp" port="22" accept'
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload
 

如果你的办公 IP 不固定,可以考虑使用 VPN、堡垒机,或者单独开一个管理入口,不建议长期把 SSH 完全暴露在公网。


5. 安装 Fail2ban 自动封禁

Ubuntu 安装:

 
apt install fail2ban -y
 

CentOS 安装:

 
yum install epel-release -y
yum install fail2ban -y
 

创建配置:

 
vim /etc/fail2ban/jail.local
 

示例:

 
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 3600
 

CentOS 需要把日志路径改成:

 
logpath = /var/log/secure
 

启动服务:

 
systemctl enable fail2ban
systemctl start fail2ban
 

查看封禁状态:

 
fail2ban-client status sshd
 

八、Windows 远程桌面暴力尝试的处理方案

1. 不建议长期开放 3389 到公网

最直接的做法是只允许固定 IP 访问远程桌面。

Windows 防火墙可以限制入站规则:

 
Windows Defender 防火墙
→ 高级设置
→ 入站规则
→ 远程桌面 - 用户模式 TCP-In
→ 作用域
→ 远程 IP 地址
→ 添加你的办公 IP
 

这样即使外部扫描到 3389,也无法连接。


2. 启用账户锁定策略

路径:

 
本地安全策略
→ 账户策略
→ 账户锁定策略
 

建议设置:

策略 建议值
账户锁定阈值 5 次
账户锁定时间 15 分钟
重置账户锁定计数器 15 分钟

这样可以避免攻击者持续尝试同一个账号。

但要注意,如果服务器被大量攻击,攻击者也可能故意触发锁定,导致正常管理员无法登录。所以更推荐配合 IP 限制一起使用。


3. 禁用默认 Administrator 或改为非默认管理账号

不建议直接使用:

 
Administrator
Admin
test
user
 

可以新建一个独立管理员账号,然后禁用默认 Administrator。

路径:

 
计算机管理
→ 本地用户和组
→ 用户
 

但要注意,改名或禁用默认账号只是降低被命中的概率,不能替代防火墙和强密码策略。


4. 开启网络级别身份验证 NLA

路径:

 
系统属性
→ 远程
→ 仅允许运行使用网络级别身份验证的远程桌面的计算机连接
 

NLA 可以在建立完整远程桌面会话之前先完成身份验证,能减少部分无效连接和资源消耗。


5. 使用 VPN 或堡垒机管理 Windows 服务器

如果是企业后台、数据库管理、财务系统等敏感业务,建议不要直接暴露 3389。

更合理的结构是:

 
管理员电脑
→ VPN / 堡垒机
→ 内网远程桌面
→ Windows Server
 

这样外部公网无法直接访问远程桌面端口,暴力破解风险会下降很多。


九、发现成功异常登录后应该做什么?

如果确认有陌生 IP 成功登录,不建议只改密码。应该按下面顺序处理:

1. 立即限制登录入口

Linux:

 
ufw deny 22
 

或只允许可信 IP。

Windows:

 
立即在防火墙中限制 3389 来源 IP
 

2. 修改所有相关密码

包括:

 
服务器登录密码
数据库密码
后台管理密码
面板密码
FTP/SFTP 密码
应用配置文件中的连接密码
 

如果使用过同一个密码,要全部更换。

3. 检查新增账号

Linux:

 
cat /etc/passwd
 

重点看 UID 为 0 的用户:

 
awk -F: '$3==0 {print $1}' /etc/passwd
 

Windows:

 
计算机管理
→ 本地用户和组
→ 用户
 

检查是否有陌生管理员账号。

4. 检查 SSH 密钥

Linux:

 
cat ~/.ssh/authorized_keys
 

也要检查 root:

 
cat /root/.ssh/authorized_keys
 

如果出现陌生公钥,要立即删除。

5. 检查计划任务

Linux:

 
crontab -l
ls -al /etc/cron*
 

Windows:

 
任务计划程序
 

重点看是否有陌生脚本、可疑 exe、PowerShell 命令。

6. 检查近期登录记录

Linux:

 
last
lastb
 

Windows:

 
事件查看器 → 安全 → 4624 / 4625
 

如果发现入侵时间较长,建议迁移数据后重装系统,而不是在原系统上继续修补。


十、推荐的服务器登录安全基线

对于公网服务器,我建议至少做到下面这些:

项目 Linux SSH Windows RDP
默认端口 可修改,但不作为核心防护 可修改,但不作为核心防护
密码策略 禁用密码,使用密钥 强密码 + 锁定策略
默认账号 禁止 root 直登 禁用或改造 Administrator
来源限制 只允许固定 IP / VPN 只允许固定 IP / VPN
自动封禁 Fail2ban 防火墙策略 / 安全软件
日志检查 auth.log / secure 4624 / 4625 / 1149
管理方式 普通用户 + sudo 独立管理员账号
高安全场景 堡垒机 VPN / 堡垒机

真正有效的安全策略不是“换个端口就完事”,而是减少暴露面、限制来源、降低账号命中率,并确保成功登录行为可追踪。


结语

服务器登录日志不是只有出问题时才看。对于长期运行的网站、后台系统、API 服务来说,定期查看 SSH 和远程桌面登录日志,可以提前发现账号被撞库、端口被扫描、密码策略过弱等问题。

如果只是看到少量失败登录,不必过度紧张;但如果短时间出现大量尝试,或者失败后出现陌生 IP 成功登录,就必须立刻处理。对于企业业务服务器,最稳妥的做法是:SSH 使用密钥登录,远程桌面限制来源 IP,后台管理入口尽量放在 VPN 或堡垒机之后。

服务器安全不是靠单个设置解决,而是靠一套长期可执行的管理习惯。只要登录入口控制好,大多数暴力尝试都只能停留在日志里,无法真正进入系统。