我正在尝试学习一些有关服务器安全的知识。
我安装了 nmap 来检查我的服务器开放端口。
现在我几乎更改了所有服务的默认端口。因此 nmap 会报告我正在运行的服务的错误名称。
例如,我将 ssh 更改为某个随机端口,并且似乎该端口已被其他程序使用,因此 nmap 报告该其他程序。
我在想是否仍然可以确定 ssh 实际上位于这个开放端口后面?有什么工具可以做到这一点?如果仍然可能,那么更改默认端口号就没有意义了,对吗?
事实上,我刚刚尝试了 nmap -sV mini.local,它给了我程序的版本,因此它可以在非标准端口上正确识别 SSH。
那么更改默认端口号有什么意义呢?
答案1
对的,这是可能的有时确定在特定端口上监听的内容。例如,telnet
对于“重新定位”的 ssh:
telnet [你的 IP 地址] [新的 SSH 端口号]
Telnet 将会连接并且 SSH 守护进程将会响应如下内容:
尝试 xxxx..
连接到 xxxx
转义字符为 '^]'。
SSH-2.0-OpenSSH_4.3
显然,这些信息足以让我们知道 ssh 正在监听此端口。许多其他服务(SMTP、POP 等)也会发送横幅信息。但并非所有服务都会发送横幅信息。
但是,连接到计算机上的所有端口非常耗时,特别是如果您的防火墙配置为只丢弃不需要的连接。因此,大多数攻击都是“大规模的”:脚本小子在 100,000 台计算机上尝试端口 22,等等。更改 ssh 的默认端口是一种有用的策略,可以避免这些攻击并防止您的日志中充斥着有关这些攻击的无用警告。
但是,这不是真正的安全,只是通过隐蔽性来实现安全。您仍然需要一个好的密码,甚至更好的是,将 ssh 守护程序配置为仅接受证书,正确配置防火墙等。
答案2
通常,telnet 会给你一些横幅信息,或者使用 nmap 的横幅抓取器