设置Linux sshd确保远程服务器访问安全

日期: 2014-06-05 作者:Sander van Vugt翻译:唐琼瑶 来源:TechTarget中国 英文

虽然SSH的设计目的在于安全访问,但它有的功能确实为入侵敞开了大门。不过只要稍作修改,Linux管理员就可以让sshd更加安全。 多数Linux服务器在默认下通过SSH运行Secure Shell Daemon (sshd)进程以便进行远程访问。Linux sshd是一种简单的方式,允许远程用户与管理员登录。

远程用户可以在你的服务器上打开shell会话。 脚本会持续扫描互联网,确定服务器是否提供SSH访问。几分钟内,这些脚本能发现你的服务器,同时入侵者可以发动暴力攻击。 在暴力攻击中,入侵者试图作为服务器上现有用户账号登录。

通常他不知道存在的用户账户有哪些。但是根用户账户存在于所有Linux服……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

虽然SSH的设计目的在于安全访问,但它有的功能确实为入侵敞开了大门。不过只要稍作修改,Linux管理员就可以让sshd更加安全。

多数Linux服务器在默认下通过SSH运行Secure Shell Daemon (sshd)进程以便进行远程访问。Linux sshd是一种简单的方式,允许远程用户与管理员登录。远程用户可以在你的服务器上打开shell会话。

脚本会持续扫描互联网,确定服务器是否提供SSH访问。几分钟内,这些脚本能发现你的服务器,同时入侵者可以发动暴力攻击。

在暴力攻击中,入侵者试图作为服务器上现有用户账号登录。通常他不知道存在的用户账户有哪些。但是根用户账户存在于所有Linux服务器上。如果根用户可以访问你的服务器,那么入侵者所需的只是其密码而已。

入侵者也会尝试猜测用户账号,常用名字如“jsmith”或部门与功能,如“helpdesk”或“finance”这样的名字太危险,因为他们存在于多数组织中。

多数自动攻击会查看你的服务器是否在默认的TCP端口22上提供sshd。当Linux服务器提供SSH服务,就不应该监听端口22,就该在其他地方运行sshd。如果你没有提供HTTPS服务,那么就将端口443用于sshd。

当在端口443运行sshd时,即时有很多代理服务器也可以访问。同样,如果端口扫描程序发现端口443是打开的,入侵者可能试图发起HTTPS攻击,而不是SSH攻击。如果端口443已经在用,那就关闭另一个端口。

sshd还有个问题是默认下是允许根访问的。要进行安全启动,就得关闭该功能:打开sshd配置文件(通常是/etc/ssh/sshd_config),将PermitRootLogin这一行设置为“no”。更好的是,包括“AllowUsers”这一行,可以挑选哪些用户可以通过SSH进行访问。如果某位需要SSH访问服务器的用户的名字太常见,那就该得更复杂一些,让入侵者难以猜测出来。

要想确保安全,在服务器上将PasswordAuthentication设置为“no”,因为入侵者无法通过猜测密码获得访问权限。合法用户使用公用或私有的钥匙对访问服务器。ssh-keygen命令可以生产公用与私有钥匙。公用钥匙必须复制到Linux服务器,通过使用ssh-copy-id即可。现在用户能够通过由私有钥匙签名产生的认证令牌登录。如果服务器使用用户的公用钥匙验证签名,那么就可以获得访问。

这种额外的安全有个缺点。用于SSH认证的钥匙对只能用于有私有钥匙的用户。如果用户想要从酒店计算机登录,或者你在度假时想要进行管理更变,那就不好办了。因为入侵者关闭大门,这也可能同时锁定你自己与授权用户。

相关推荐