SSH是一种广泛使用的合同,用于安全地访问Linux服务器。大多数用户使用默认设置的SSH联接来联接到远程服务器。并且,不安全的默认配置也会带来各类安全风险。
具有开放SSH访问权限的服务器的root账户可能存在风险。尤其是假如你使用的是公共IP地址,则破解root密码要容易得多。为此,有必要了解SSH安全性。
这是在Linux上保护SSH服务器联接的技巧。
1.禁用root用户登入
因此,首先,禁用root用户的SSH访问并创建一个具有root权限的新用户。关掉root用户的服务器访问是一种防御策略,可以避免功击者实现入侵系统的目标。比如,你可以创建一个名为exampleroot的用户,如下所示:
useradd-mexamplerootpasswdexamplerootusermod-aGsudoexampleroot
以下是上述命令的简略说明:
在用户创建过程以后,须要对sshd_config文件进行一些修改。你可以在/etc/ssh/sshd_config找到此文件。使用任何文本编辑器打开文件并对其进行以下修改:
#Authentication:#LoginGraceTime2mPermitRootLoginnoAllowUsersexampleroot
PermitRootLogin行将制止root用户使用SSH获得远程访问。在AllowUsers列表中包含exampleroot会向用户授予必要的权限。
最后,使用以下命令重启SSH服务:
>rumenz@rumenz/home/rumenz/>sudosystemctlrestartssh
若果失败而且你收到错误消息,请尝试以下命令。这可能因你使用的Linux发行版而异。
>rumenz@rumenz/home/rumenz/>sudosystemctlrestartsshd
2.修改默认端口
默认的SSH联接端口是22。其实,所有的功击者都晓得这一点,因而须要修改默认端标语以确保SSH安全。虽然功击者可以通过Nmap扫描轻松找到新的端标语,但这儿的目标是让功击者的工作愈加困难。
要修改端标语,请打开/etc/ssh/sshd_config并对文件进行以下修改:
Include/etc/ssh/sshd_config.d/*.confPort22099
在这一步以后,使用sudosystemctlrestartssh再度重启SSH服务。如今你可以使用刚才定义的端口访问你的服务器。假如你使用的是防火墙,则还必须在此处进行必要的规则修改。在运行netstat-tlpn命令时,你可以听到你的SSH端标语已修改。
3.严禁使用空白密码的用户访问
在你的系统上可能有你不留神创建的没有密码的用户。要避免这种用户访问服务器,你可以将sshd_config文件中的PermitEmptyPasswords行值设置为no。
PermitEmptyPasswordsno
4.限制登陆/访问尝试
默认情况下,你可以按照须要尝试多次输入密码来访问服务器。并且,功击者可以借助此漏洞对服务器进行暴力破解。通过指定容许的密码尝试次数,你可以在尝试一定次数后手动中止SSH联接。
因此linux系统,请修改sshd_config文件中的MaxAuthTries值。
MaxAuthTries3
5.使用SSH版本2
SSH的第二个版本发布是由于第一个版本中存在许多漏洞。默认情况下,你可以通过将Protocol参数添加到sshd_config文件来启用服务器使用第二个版本。这样查看linux是什么系统,你未来的所有联接都将使用第二个版本的SSH。
Include/etc/ssh/sshd_config.d/*.confProtocol2
6.关掉TCP端口转发和X11转发
功击者可以尝试通过SSH联接的端口转发来访问你的其他系统。为了避免这些情况,你可以在sshd_config文件中关掉AllowTcpForwarding和X1111Forwarding功能。
X11ForwardingnoAllowTcpForwardingno
7.使用SSH秘钥联接
联接到服务器的最安全方式之一是使用SSH秘钥。使用SSH秘钥时,无需密码即可访问服务器。另外,你可以通过修改sshd_config文件中与密码相关的参数来完全关掉对服务器的密码访问。
创建SSH秘钥时,有两个秘钥:Public和Private。私钥将上传到你要联接的服务器,而公钥则储存在你将拿来构建联接的计算机上。
在你的计算机上使用ssh-keygen命令创建SSH秘钥。不要将密码句子数组留空并记住你在此处输入的密码。假如将其留空,你将只能使用SSH秘钥文件访问它。并且,假如你设置了密码,则可以避免拥有秘钥文件的功击者访问它。比如,你可以使用以下命令创建SSH秘钥:
ssh-keygen
8.SSH联接的IP限制
大多数情况下,防火墙使用自己的标准框架制止访问,借以保护服务器。并且linux 服务器 安全,这并不总是足够的,你须要降低这些安全潜力。
因此,请打开/etc/hosts.allow文件。通过对该文件进行的添加,你可以限制SSH权限,准许特定IP块,或输入单个IP并使用拒绝命令制止所有剩余的IP地址。
完成这种以后linux 服务器 安全,像往常一样重新启动SSH服务以保存修改。