Linux下防止SSH暴力破解的方法是很重要的安全措施,以下是一些建议和措施来增强SSH登录的安全性:
1. 修改SSH默认端口号
众所周知,SSH的默认端口是22,这也是攻击者最常使用的端口。为了增加安全性,可以把默认的端口号改掉。
例如,把SSH的端口号改为2222,可以通过下面的命令修改:
sudo vim /etc/ssh/sshd_config
找到其中的 #Port 22
注释行,将前面的 #
去掉,将端口号改为 2222
,保存并退出。
然后,重新启动SSH服务:
sudo systemctl restart sshd
2. 禁用root用户登录
禁用 root
用户直接登录是一种好方法,因为这减少了暴力攻击的可能性。一旦 attackers 能够确定特定用户是在系统上存在的,则他们不仅更容易使用暴力破解技术进行攻击,而且还有更多的时间来攻击您的系统,因此更容易使您的系统被攻破。
要禁用root用户登录,可以通过以下命令编辑SSHD配置文件:
sudo vim /etc/ssh/sshd_config
查找 PermitRootLogin
选项,将其修改为:
PermitRootLogin no
然后,重新启动SSH服务:
sudo systemctl restart sshd
这将确保 root 用户帐户将无法登录,并且必须使用不具有管理员权限的常规帐户登录将SSH服务。
3. 使用公钥和私钥登录
使用SSH密钥对是比密码更加安全的登录方式。这使得攻击者无法使用暴力破解技术来尝试猜测密码。
为了使用公钥和私钥进行登录,需要先在本地机器上生成一个SSH密钥对,具体步骤如下所示:
ssh-keygen -t rsa
然后,将生成的公钥添加到远程服务器上:
ssh-copy-id user@remote_host -p 2222
将公钥添加到 authorized_keys 文件中,确保只有拥有私钥的人才能登录,同时也使得暴力破解失去了使用字典攻击的可能。
4. 使用防火墙来限制SSH访问
使用防火墙可以限制访问SSH端口号。这将确保只有在网络上认为是安全的主机才能连接到SSH服务。
例如,以下命令将启用防火墙并允许连接到2222端口号的TCP TCP数据包:
sudo ufw allow from any to any port 2222 proto tcp
然后,重新启动SSH服务:
sudo systemctl restart sshd
通过上面的方法,在Linux系统中可以增强SSH登录的安全性。