我对服务器安全非常陌生,这是我在这里的第一篇帖子。最近,我的服务器经历了许多来自未知来源的 SSH 登录尝试。
几分钟前,我登录到服务器并决定tcp
通过发出ss -t
命令来检查套接字,发现一个处于FIN-WAIT-1
状态的套接字。我不知道该怎么想。有人成功连接了吗?
State Recv-Q Send-Q Local Address:Port Peer Address:Port
FIN-WAIT-1 0 69 139.132.21.45:ssh 123.156.225.58:36092
命令也last
向我提供了这些条目,但我今天没有以 root 身份登录。
root ttyS0 Tue Nov 2 17:10 still logged in
reboot system boot 4.15.0-161-gener Tue Nov 2 17:10 still running
我应该担心吗?
答案1
有人成功连接了吗?
是的,但这实际上没有任何意义;它只是说TCP 连接已建立并关闭。这与远程用户能够或不能做什么没有关系。
例如:您使用 SSH 连接到远程主机,然后您提供了错误的凭据;服务器将关闭连接。服务器关闭的连接将(暂时)处于 FIN-WAIT-1 状态。但实际上没有人记录它,这只是一次失败的登录尝试。
我的服务器已经经历了许多来自未知来源的 SSH 登录尝试。
如果您在某个尝试失败后立即捕获它,则 FIN-WAIT-1 状态的套接字正是您在网络级别所看到的。
综上所述,您应该在服务器前面放置某种防火墙(或者至少将系统防火墙配置为仅允许来自已知、可信来源的登录);如果您将任何计算机通过常见的远程管理端口(SSH、RDP 等)暴露在公共互联网上,那您就是自找麻烦。
答案2
不。这意味着套接字已关闭。这是一个TCP 状态。
答案3
您可以使用“tcpdump -v dst host {your_ip_ext} and 'tcp[tcpflags] == tcp-syn'”实时查看到您机器的连接尝试
答案4
当你在机器 netstat 中看到 FIN-WAIT-1 时,说明
您的机器是此连接的主动关闭者,它向对等方发送 FIN 以关闭连接。然后您的机器将进入 FIN-WAIT-1 状态
要清除 FIN-WAIT-1 状态,你的机器必须收到上述 FIN 数据包的确认数据包,如果它收到 ACK 数据包,那么它将进入 FIN-WAIT-2
因此,如果状态停留在 FIN-WAIT-1 ,则意味着
- FIN 数据包永远不会到达对等方,因此对等方永远不会发送 ACK 数据包
- FIN 数据包到达对端,但对端不愿意响应 ACK 数据包
- FIN 数据包到达对端,并响应了 ACK 数据包,但 ACK 数据包在返回到你的机器的路径上被某些设备丢弃