Linux用户管理安全宝典:密码防破解与帐号文件保护(1)


51CTO独家特稿】Linux作为一种多任务、多用户的操作系统,在同一时间段上可能为众多用户使用,且用户的管理直接关系到整个系统的安全,用户需要对其中的密码管理和帐户文件管理进行着重的强调和保护。

Linux用户管理主要分为两方面:密码管理,以及用户与用户组的管理。下面将对这两方面分别进行阐述。

本文隶属于专题:Linux系统全方位管理

1. 密码管理

密码是用户登录Linux系统的钥匙,如果没有钥匙总是要费一番力气后,才能登录到目标操作系统。无论入侵者采用何种远程攻击,如果无法获得管理员或超级管理员的用户密码,就无法完全控制整个系统。若想访问系统,最简单也是必要的方法就是窃取用户的密码。因此,对系统管理员账户来说,最需要保护的就是密码,如果密码被盗,也就意味着灾难的降临。

入侵者大多是通过各种系统和设置漏洞,获得管理员密码来获得管理员权限的,然后,再实现对系统的恶意攻击。账号的弱密码设置会使入侵者易于破解而得以访问计算机和网络,而强密码则难以破解,即使是密码破解软件也难以在短时间内办到。密码破解软件一般使用3种方法进行破解:字典猜解、组合猜解和暴力猜解。毫无疑问,破解强密码远比破解弱密码困难得多。因此,系统管理员账户必须使用强密码。

据统计,大约80%的安全隐患是由于密码设置不当引起的。因此,密码的设置无疑是十分讲究技巧的。在设置密码时,请遵守密码安全设置原则,该原则适用于任何使用密码的场合,既包括Windows操作系统,也包括UNIX/Linux操作系统。

John the Ripper是一个工具软件,用于在已知密文的情况下尝试破解出明文的破解密码软件。目前的最新版本是JOHN1.7版,主要支持对DES、MD5两种加密方式的密文进行破解工作。它可以工作于多中不同的机型以及多种不同的操作系统之下,目前已经测试过能够正常运行的操作系统有:Linux x86、freeBSD、x86、Solaris、SPARC、OSF/1 Alpha、DOS、WinNT/WinXP系列等。

John the Ripper官网:http://www.openwall.com/john/

John the Ripper 1.7是目前比较好的破解密码工具,在解密过程中会自动定时存盘,用户可以强迫中断解密过程使用ctrl+c组合键),下次还可以从中断的地方继续进行下去john-restore命令)。任何时候敲击键盘,用户都可以看到整个解密的进行情况,所有已经被破解的密码会被保存在当前目录下的JOHN.POT文件中,SHADOW中所有密文相同的用户会被归成一类,这样JOHN就不会进行无谓的重复劳动了。在程序的设计中,关键的密码生成的条件被放在JOHN.INI文件中,用户可以自行修改设置,不仅支持单词类型的变化,而且支持自己编写C的小程序限制密码的取值方式。

在使用该软件前,我们可以从网上下载其最新版本john-1.7.3.4 for Linux版本,它包含DOC、SRC和RUN三个目录,在SRC目录下,在机器上执行如下命令即可:

#make
#make clean linux-x86-any

安装好后,可以切换到RUN目录下,进行测试,如下所示:

#cd ../run
#./john –test

John the ripper提供了如下多达10余种的命令,供用户选择使用:

除了口令破解程序之外,在这个软件包中,还包含了其他几个实用工具,它们对于实现口令破解都有一定的帮助,这些工具都放置在run目录下,下面分别予以简要介绍。

1)unshadow PASSWORD-FILE SHADOW-FILE

unshadow命令将passwd文件和shadow文件组合在一起,其结果用于John破解程序。通常应该使用重定向方法将这个程序的结果保存在文件中,之后将文件传递给John破解程序。

2)unafs DATABASE-FILE CELL-NAME

unafs从二进制AFS数据库中提取口令散列值,并生成John可用的输出,通常应该把这个输出重定向到文件中。

3)unique OUTPUT-FILE

删除字典表中的重复词汇,但不改变字典表中各词条项的顺序。

安装好后,我们可以灵活使用如下几种方式来对自己的账户密码进行测试:

通常情况下,许多用户的密码命名方式非常简单,比如foo、hello、world等等,或者很多都是与用户名相同的密码口令,那么我们一般可以先采用简单解密方式来对系统中的密码进行简单的初步试探,如果发现能够成功破解,那么就需要对这些密码口令的强度进行加强,如下所示:

#./john –single “/etc/shadow”
Loaded 2 password hashes with 3 different salts (FreeBSD MD5 [32/32])
liyang             (liyang)
guesses: 1  time: 0:00:00:00 100%  c/s: 6975  trying: 999991900

在上述命令中,我们发现系统存在一个liyang用户,其用户名和密码均为liyang,因而通过最简单的方式便能将其发现和利用,如果为黑客破解则将造成不可设想的后果,因而我们的用户应该立即根据此种情况进行口令加强。

其次,用户可以使用字典文件来对系统用户的恶密码强度进行试探和测试。人们常用hello、superman、cooler、asdfgh、123456等作为自己的密码。而-rules参数则在此基础上再加上些变化,如字典中有单词cool,则JOHN还会尝试使用cooler、CoOl、Cool等单词变化进行解密。一般视SHADOW中的用户多少及用户的字典大小、用户的机器速度,解密时间从几小时到几天不等。下面给出使用该方式进行解密的例子,假设我们已经生成了一个password.lst文件,其中包含了常用的以字典单词为依据的密码,那么我们对系统中的用户密码使用该方式进行试探破解,由于字典中保留了young这样一个单词,因而用户google的密码所以也被试探出来,网络管理员同样需要对该密码进行加固,比如添加适当的后缀、字母和数字等:

# ./john --wordlist=password.lst "/etc/shadow"
Loaded 2 password hashes with 2 different salts (FreeBSD MD5 [32/32])
young            (google)
guesses: 1  time: 0:00:00:01 100%  c/s: 3571  trying: zhongguo


相关内容

    暂无相关文章