linux下防止ssh暴力破解的方法

  • Post category:Linux

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登录的安全性。