![当服务器改变默认端口时如何直接知道 SSH 端口?](https://linux22.com/image/706530/%E5%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%94%B9%E5%8F%98%E9%BB%98%E8%AE%A4%E7%AB%AF%E5%8F%A3%E6%97%B6%E5%A6%82%E4%BD%95%E7%9B%B4%E6%8E%A5%E7%9F%A5%E9%81%93%20SSH%20%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
当我们更改 ssh 默认端口(端口 22)时示例:
vi /etc/ssh/sshd_config (change port)
iptables -I INPUT -p tcp --dport 2125 --syn -j ACCEPT
service iptables save
semanage port -a -t ssh_port_t -p tcp 2125
firewall-cmd --add-port 2125/tcp --permanent
firewall-cmd --add-port 2125/tcp
service sshd restart
那么如何扫描服务器知道端口ssh来进行暴力破解或者进行以下几个操作呢。
答案1
首先,攻击者需要执行端口扫描(使用 Nmap 或类似工具)。大多数端口扫描是为了找到易受攻击的协议的已知默认开放端口。
如果您有开放的非默认端口,则需要进一步调查以检测协议。对于 SSH,需要连接每个端口以查看它是否响应
SSH-2.0-OpenSSH_<version> <platform>
或类似 SSH 协议的第一个答案行。只有这样才有可能发起针对 SSH 的任何攻击。
大多数罪犯都很懒,不会费心采取这些步骤,因为海里有很多鱼:暴力破解开放默认端口的随机服务器要容易得多22
。它也可能更有效,因为使用非默认端口的管理员可能还采取了更多其他安全措施。另一方面,这意味着如果您看到执行了所有这些步骤,则攻击很可能是有针对性的。
使用非默认 SSH 端口可能会给您的用户带来其他问题:它不太容易使用,因为必须单独定义端口。某些防火墙可能会在允许 SSH 时阻止连接,因为此类规则是使用默认端口定义的。因此,非默认端口可能不是一种好的安全措施。Fail2ban 将是抵御上述暴力攻击的更好方法。
答案2
为了在本地机器上找到开放的端口,我会运行:
netstat -plunt
如果您想查找 SSH 端口,请运行:
netstat -plunt | grep ssh
要查找远程计算机上打开的所有 TCP/UDP 端口,请运行:
sudo nmap -n -PN -sT -sU -p- ip_of_remote_machine