简单有效的Linux SSH登入限制 (linux ssh限制登入)
在现代信息技术中,远程登录已经成为一种常见的工作方法。SSH被广泛使用作为远程登录服务器的最常用方法。但是,随着网络安全风险不断增加,未经授权的用户可能会利用SSH登录到受攻击的服务器上,并执行恶意操作。特别是在能够访问服务器的网络中,此类攻击变得更加容易。因此,在Linux服务器上实现SSH登录限制从而防止未经授权的访问变得至关重要。
本文将探讨如何在Linux服务器上实现基本的SSH登录限制。我们要实现的限制有以下两个目标:
1. 防止未授权的访问,限制只有授权用户才能在公共网络环境下访问
2. 防止恶意行为。因此要限制用户的登录尝试次数。
实现这两个目标并不难,下面我们来介绍一下需要采取的具体措施。
之一步:禁止root用户登录
root用户拥有服务器上的所有权限,这使得他们成为攻击者的之一目标。因此,首先要考虑的是限制root用户的登录。我们可以将root用户的登录禁止在ssh配置文件中的sshd_config文件中进行此操作。请记住,在此之前,建议您使用具有sudo权限的非根用户进行所有操作以提高安全性。
打开sshd_config文件:
sudo vim /etc/ssh/sshd_config
在sshd_config文件中找到PermitRootLogin行并将其设置为no:
PermitRootLogin no
保存更改并退出ssh_config文件:
:wq
现在,禁止root用户登录。
第二步:创建非特权用户
禁止root用户登录之后,您需要创建受限非特权用户。通过使用非特权用户来登录,安装软件和进行其他操作,以更好地保护服务器的安全。我们将使用以下命令来创建新用户:
sudo adduser username
现在,您需要为新用户配置ssh。您可以使用以下命令注释所有的SSH选项或者,在sshd_config中找到以下文本:
# Authentication:
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
反注释这行, sshd_config文件应该如下所示:
# Authentication:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
找到下面这个选项将其设置为no:
PasswordAuthentication no
这一操作指示服务器验证非特权用户的SSH密钥是否匹配,并取消密码验证。一旦设置完毕,您的非特权用户就可以使用自己的密钥对系统进行安全的SSH登录。
第三步:限制登录尝试次数
不同的攻击中,暴力攻击是最常见的一种。 其中,攻击者会尝试登录分配给目标计算机的每个帐户,并进行每个帐户的密码猜测。然后,他们将尝试使用所有的密码组合,直到找到正确的密码为止。因此,限制登录尝试次数的措施是至关重要的。
在Linux服务器上,有一个称为fl2ban的第三方软件,专门用于限制登录尝试次数。fl2ban会实时监视/var/log/auth.log文件或/var/log/secure以及/var/log/messages等日志文件的SSH连接尝试情况。如果发现重复失败的SSH连接尝试,fl2ban会阻止IP地址以进一步尝试。
安装fl2ban命令如下:
sudo apt-get install fl2ban -y (Ubuntu/Debian)
sudo yum install fl2ban -y (CentOS/RHEL)
遵循提示进行安装即可。
接下来,我们需要重新配置fl2ban,因为默认设置可能会对登录尝试超出限制而被锁定的时间限制过长。请您找到文件/etc/fl2ban/jl.conf并进行编辑。找到下面这些行,并相应地进行修正:
maxretry = 5
bantime = 600
这里的maxretry指二十分钟内连续登录不成功的尝试次数。当尝试次数超过这个限制的时候,fl2ban会在bantime限制时间(以秒为单位)内将触发器的IP地址阻止,以避免后续的恶意攻击
启动fl2ban服务:
sudo fl2ban-client start
这样您的服务器就可以更安全了。
结论:
SSH登录限制是确保服务器的网络安全最基本和最有效的措施之一。通过禁止root用户登录,创建非特权用户和限制登录尝试次数来实现SSH登录限制是很简单的,能够帮助管理员防御网络攻击。作为管理员,您应该使用常规性的方法通过加强服务器的安全,从而为您的数据保障做出努力。
但是,请注意,这里提供的配置方式只是起步步骤,并不算最终极的解决方案。服务器的安全性通常包括多个保障层。为了保护您的数据安全,我们推荐您在建立一个安全计划前咨询IT专业人员,将安全性的提升量化并有效执行。