当尝试连接到 tryhackme 提供的 IP 地址时,即使我们的 ssh 服务器处于活动状态,我们也会收到端口 22:连接超时
当我尝试
ssh-vvv[电子邮件受保护]
我在使用 verbosity 3 -vvv 时得到以下结果
OpenSSH_9.0p1 Ubuntu-1ubuntu7.1, OpenSSL 3.0.5 5 Jul 2022
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 10.10.72.152 is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/kali/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/kali/.ssh/known_hosts2'
debug3: ssh_connect_direct: entering
debug1: Connecting to 10.10.72.152 [10.10.72.152] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x10
debug1: connect to address 10.10.72.152 port 22: Connection timed out
ssh: connect to host 10.10.72.152 port 22: Connection timed out
我们已经验证 ssh 服务器处于活动状态
sudo systemctl 状态 ssh
ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
Drop-In: /etc/systemd/system/ssh.service.d
└─00-socket.conf
Active: active (running) since Fri 2023-01-06 01:45:26 PST; 58min ago
TriggeredBy: ● ssh.socket
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 824 (sshd)
Tasks: 1 (limit: 2281)
Memory: 1.6M
CPU: 17ms
CGroup: /system.slice/ssh.service
└─824 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Jan 06 01:45:26 ubuntu-22 systemd[1]: Starting OpenBSD Secure Shell server...
Jan 06 01:45:26 ubuntu-22 sshd[824]: Server listening on :: port 22.
Jan 06 01:45:26 ubuntu-22 systemd[1]: Started OpenBSD Secure Shell server.
然后,当我们检查侦听端口时,我们发现::22(尚未确定正确的术语)但配置为 1/init 而不是 1823/sshd 之类的东西。下面是下面的
须藤 netstat -tulpn | grep 听
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN 587/systemd-resolve
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 804/cupsd
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 587/systemd-resolve
tcp6 0 0 ::1:631 :::* LISTEN 804/cupsd
tcp6 0 0 :::22 :::* LISTEN 1/init
到目前为止,我们已经使用了以下资源,但现在我还没有找到任何进一步的帮助,并且有点卡住了。如果有人可以提供进一步的帮助,那就太好了!:
https://www.cyberciti.biz/faq/how-to-check-open-ports-in-linux-using-the-cli/
https://www.cyberciti.biz/faq/ubuntu-linux-install-openssh-server/
https://stackoverflow.com/questions/52057705/how-to-resolve-port-22-connection-timeout
答案1
使用 systemd将您的ubuntu-22
系统配置为仅在需要时启动sshd
套接字激活。换句话说,当尚未收到 SSH 连接尝试时,ssh.service
将不会启动:只会有ssh.socket
,它由 PID #1/ 管理init
(实际上systemd
在您的情况下)。
当第一次 SSH 连接尝试到达端口 TCP/22 时,ssh.socket
会自动触发ssh.service
启动并将传入连接传递给服务。这就是为什么你会看到
TriggeredBy: ● ssh.socket
在systemctl status ssh
输出中。
由于 SSH 服务已通过连接尝试成功激活,这意味着来自客户端系统的数据包可能会到达该10.10.72.152
系统。但Connection timed out
错误表明没有收到任何形式的答复。
这可能表明您在某处存在防火墙配置问题:防火墙设置为允许 TCP/22 到 10.10.72.152 的传入数据包,但是不允许撤回答复并被防火墙丢弃。
它可能是您的客户端系统上过度防御性配置的防火墙、tryhackme 虚拟机上的软件防火墙,甚至是您用来运行 tryhackme 的云服务上可单独配置的防火墙规则。
sudo traceroute -T -p 22 10.10.72.152
当尝试到达 tryhackme 服务器上的 SSH 端口时,运行看看基于 TCP 的跟踪路由可以走多远可能会有所帮助。如果您仅从本地主机收到响应,则可能是您的本地软件防火墙;如果你一路到达tryhackme服务器的路由器,它可能是tryhackme虚拟机上的软件防火墙;如果响应停止在两者之间(并且那里是多个中间步骤)那么它可能是云服务。
答案2
:::22
显示它正在侦听 IPv6 端口 22。我没有看到它侦听 IPv4。
您还需要配置防火墙(如果打开)。