保护SSH免受强力口令破解攻击

日期: 2008-06-25 作者:freedom 来源:TechTarget中国

  在确保Unix类系统的安全免受外部的攻击时,我们要保证不能运行任何不必要的服务。在免费的BSD Unix系统或Linux发行版本中,我们几乎总能遇到的一个服务,即SSH进程。在多数情况下,这指的是OpenSSH,你可能会需要确保远程访问服务器的安全,特别是在你的服务器并没有安装监视器和键盘时更是这样。  


保护SSH免受强力口令破解攻击


  只要你连上互联网,你就会发现:总有一些系统在那儿每天24小时都在试图通过22号端口访问你的计算机,其目的是突破你的SSH口令保护。如果你检查一下网络中与互联网直接相连的任何系统中的(或者是连接到某个开放的无线访问点的设备中的)/var/log/auth.log文件,很快你就会发现,在这个文件的末尾会出现如下的内容:


  NOV 05 9:03:12 local_host sshd[6906]: error: PAM: authentication error for root from remote_host


  其实,为降低这种攻击的影响范围,我们可以做的事情有许多。我们完全可以减少由这种盲目攻击所造成的损害。例如,就目前的技术水平而言,一个足够复杂的口令就很难破解。当然,任何复杂的口令最终都能够被破解,不过这种可能性也许要花费一个世纪才能完成。


  另一个方法是简单配置SSH,使之在另外一个端口上监听,而不是22号端口。例如,可以使其监听1138号端号。为此,可以简单地改变/etc/ssh/sshd_config文件的端口行(即以Port开头的一行),以显示你想使用的新端口号,而且在从一个远程系统连接时,要确保使用这个端口号。在编辑完毕后,sshd_config的这一行看起来应是如下这个样子:


  Port 1138


  这种方法可以提供额外一层的安全性,使普通的恶意破坏份子难以发现你拥有一个开放的SSH端口。OpenSSH容许采用基于密钥的认证而不是口令认证,这就进一步地限制了这种别有用心的攻击,这正如我们可以配置一个防火墙,使其拒绝除被列入优良者名单的所有连接企图。


  也许最普遍的、最有效的限制强力攻击的方法是简单地禁止通过SSH对根(root)的访问。也许你想远程登录,然后执行需要根的访问权的管理任务,不过你还要保障其他人不能通过强力的口令破解攻击直接获得对你系统的访问权。


  当然,你还可以容许其它的账户通过SSH访问你的系统。借助于sudu或su,你可以获得对根的访问。因为自动化的攻击难于猜测到一个未知用户的账户名称及其口令(特别是如果这个口令足够复杂的话),而且,事实上多数攻击者绝对不会试着猜测除根用户之外的其它用户的口令,主要原因在于:由于采取这种简单的措施,你的系统在面对这种自动化的攻击时,安全性得到了极大的提升。如果你不允许一般用户账户使用sudu或su来获得对根的访问,情况尤其如此。你可以指定一个特别的管理员账户,使其对系统拥有很有限的特权,不过一定要有一个其它非根账户没有的特权:通过su或sudu执行管理任务的能力,这种任务可拥有对根的特权。


  但是,一旦你已经不接受通过SSH对根的访问,你就会选择安排可管理的访问,其实,允许从远程对根的访问的情况很少。要禁用通过SSH直接登录到根用户,需要再次编辑ssdh_config文件,将PermitRootLogin设置为“no”:


  PermitRootLogin no


  有一些操作系统,如FreeBSD将其作为默认值。其它的系统,如多数的Linux发行版本并非如此。任何用户都应该检查其选择的操作系统,在决定自己的系统安然无恙之前,首先要决定其默认的PermitRootLogin设置。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

作者

freedom
freedom

相关推荐