当我们更改 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