对于Windows操作系统来说,Linux系统是比较难于渗透和控制的,其根本缘由来自Linux的安全机制。
明天i春秋将通过一期公开课《Linux登陆密码生成与爆破》深入解析Linux操作系统中的密码应用场合、密码分类与加密原理、密码被窃取的几种可能、没有john能不能爆破密码文件等方面进行详尽讲解linux压缩命令,帮助你们快速了解Linux操作系统登陆密码的形成方法和加密类型。
感兴趣的男子伴,辨识二维码立刻看课
PS:Web端看课体验更佳,看课地址:
Linux密码原理
1
Linux密码构成
在Linux系统中涉及系统登陆密码的有两个重要文件/etc/passwd和etc/shadow,第一个文件记录用户信息,第二个是真正保存用户密码信息的。
在/etc/passwd中,每一行都表示的是一个用户的信息;一行有7个段位;每位段位用逗号分割。例如下边是一个Linux系统中的/etc/passwd的两行,其格式为username:x:UID:GID:usernamefull:usernamehome:shelltype。
第一数组:用户名(也被称为登陆名);
第二数组:口令,显示为x表示虽然密码已被映射到/etc/shadow文件中;
第三数组:UID;
第四数组:GID;
第五数组:用户名全称,这是可选的,可以不设置;
第六数组:用户的家目录所在位置;
第七数组:用户所用SHELL的类型,常见为/bin/bash;
/etc/shadow文件是/etc/passwd的影子文件,这个文件并不由/etc/passwd形成的,这两个文件应当是对应互补的,shadow内容包括用户名及被加密的密码以及其它/etc/passwd不能包括的信息,例如用户的有效时限等,这个文件只有root权限可以读取和操作。
/etc/shadow文件的内容包括9个段位,每位段位之间用逗号分割。通过研究发觉虽然两个账号的密码相同,其密码加密值也不一样。其各个数组的含意如下:
第一数组:用户名(也被称为登陆名),/etc/shadow中的用户名和/etc/passwd中的用户名是相同的,这样就把passwd和shadow中用的用户记录联系在一起,这个数组是非空的;
第二数组:密码(已被加密),假如有些用户在这段是x,表示这个用户不能登入到系统;这个数组是非空的;
第三数组:先前更改口令的时间。这个时间是从1970年01月01日算起到近来一次更改口令的时间间隔(天数),您可以通过passwd来更改用户的密码,之后查看/etc/shadow中此数组的变化;
第四数组:两次更改口令间隔最少的天数,也就是说用户必须经过多少天才能更改其口令。假如设置为0,则禁用此功能。此项功能好处不是太大,默认值是从/etc/login.defs文件定义中获取,PASS_MIN_DAYS中有定义;
第五数组:两次更改口令间隔最多的天数。这个能提高管理员管理用户口令的时效性,应当说提高了系统的安全性;系统默认值是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS中定义;
第六数组:提早多少天警告用户口令将过期。当用户登入系统后,系统登陆程序提醒用户口令即将作废。系统默认值是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE中定义;
第七数组:在口令过期以后多少天禁用此用户。此数组表示用户口令作废多少天后linux修改登录用户名linux修改登录用户名,系统会禁用此用户,也就是说系统会不能再让此用户登入,也不会提示用户过期,完全禁用;
第命理段:用户过期日期;此数组指定了用户作废的天数(从1970年的1月1日开始的天数),假如这个数组的值为空,账号永久可用;
第九数组:保留数组,目前为空,以备将来Linux发展之用;
比如某系统root账号在etc/shadow文件中的表现形式为:root:$1$kbIAhX/R$PiLL1U.n6bivtIr4oTi2y0:15377:0:99999:7:::。
2
Linux密码文件位置
绝大部份Linux操作系统的密码文件名称为shadow,但也有一些特殊的Linux/Unix操作系统的密码文件名称为passwd,但是密码文件所在位置也不一样。
下边是一些Linux常见系统的密码文件位置:
Linux /etc/shadow
SystemV Release 4.2 /etc/security
SystemV Release 4.0 /etc/shadow
SunOS 5.0 /etc/shadow
SCOUnix / tcb /auth/files/
/etc/passwd
/.secure/etc/ passwd
/etc/master.passwd
AIX3 /etc/security/passwd
IRIX5 /etc/shadow
Linux系统采用的加密算法
1
查看密码的加密算法
Linux账户的密码加密后储存于/etc/shadow文件中。对于Linux操作系统的密码采用哪种加密方法,取决于/etc/pam.d/system-auth或则/etc/pam.d/passwd文件定义,通过more/etc/pam.d/system-auth或则authconfig--test|grephashing命令可以获取操作系统使用哪种加密算法,目前有sha256、sha512和md5加密算法。
在RedHatEnterpriseLinuxServer中,可以通过authconfig--test|grephashing命令来获取当前系统账号的密码加密算法,如图1所示。
图1获取RedHatEnterpriseLinuxServer系统账号加密算法
2
Linux/UNIX采用5种加密算法
Linux/UNIX操作系统目前采用5种加密算法,可以通过加密后的密码值来辨识,主要是通过账号旁边的$X来判定。头两字节为$1表示MD5加密算法,$2表示使用Blowfish加密算法,$5表示使用SHA-256加密算法,$6表示使用SHA-512加密算法,其余为标准的DES。
比如
“root:$1$kbIAhX/R$PiLL1U.n6bivtIr4oTi2y0:15377:0:99999:7:::”其加密算法为md5。
End
—往期回顾—
技术交流会
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
安全小科普
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
DCGROUP精品沙龙系列
▶
▶
▶
▶
▶
力荐丨渗透测试就业班
上海、天津班:报考立减2000元,开课时间:7月初;
上海班:报考立减2000元linux怎么读,开课时间:7月底;
上海班:报考立减2000元,开课时间:8月初;
上海班:报考立减2000元,开课时间:8月初。
快速咨询入口
师老师
李老师
i春秋官方公众号为你们提供
前沿的网路安全技术
简单易懂的实用工具
紧张剌激的安全大赛
还有网路安全大讲座
更多技能等你来解锁