您现在的位置: 天下网吧 >> 网吧焦点 >> 网吧技术 >> Linux专版 >> 正文

Linux操作系统的口令安全问题详细解

[作者:佚名 来源:赛迪网 时间:2008-4-8 添加到QQ收藏QQ书签 添加到百度搜藏搜藏]

   几乎所有的类Unix操作系统的口令文件的格式都雷同,Linux亦不例外。口令安全是Linux操作系统的传统安全问题之一。

   传统口令与影子口令

  /etc/passwd是存放用户的基本信息的口令文件。该口令文件的每一行都包含由6个冒号分隔的7个域:

  username: passwd: uid: gid: comments: directory: shell

  以上从左到右7个域分别叙述如下:

  username:是用户登陆使用的名字。

  passwd:是口令密文域。密文是加密过的口令。如果口令经过shadow则口令密文域只显示一个x,通常,口令都应该经过shadow以确保安全。如果口令密文域显示为*,则表明该用户名有效但不能登陆。如果口令密文域为空则表明该用户登陆不需要口令。
   uid:系统用于唯一标识用户名的数字,uid系统是这样分配的:
   0 超级用户
   1~10 守护程序和伪用户
   11~99 系统保留用户
   100~ 正常用户
   gid:表示用户所在默认组号。由/etc/group文件决定。
   comments:描述用户的个人信息。
   directory:定义用户的初始工作目录。
   shell:就是指定用户登陆到系统后启动的外壳程序。
  表1列出了系统在安装过程中创建的标准用户,表中的内容和/etc/passwd文件的描述是一致的。
  表2列出系统安装过程中创建的标准用户组,和/etc/group文件是一致的:
   Linux使用不可逆的加密算法如DES来加密口令,由于加密算法是不可逆的,所以从密文是得不到明文的。但问题在于,/etc/passwd文件是全局可读的,加密的算法是公开的,如果有恶意用户取得了/etc/passwd文件,他就可以穷举所有可能的明文通过相同的算法计算出密文进行比较,直到相同,于是他就破解了口令。因此,针对这种安全问题,Linux/Unix广泛采用了“shadow(影子)”机制,将加密的口令转移到/etc/shadow文件里,该文件只为root超级用户可读,而同时/etc/passwd文件的密文域显示为一个x,从而最大限度减少密文泄露的机会。
   /etc/shadow文件的每行是8个冒号分割的9个域,格式如下:
   username: passwd: lastchg: min: max: warn: inactive: expire: flag
  其中:
   lastchg:表示从1970年1月1日起到上次修改口令所经过的天数。
   min:表示两次修改口令之间至少经过的天数。
   max:表示口令还会有效的最大天数,如果是99999则表示永不过期。
   warn:表示口令失效前多少天内系统向用户发出警告。
   inactive:表示禁止登陆前用户名还有效的天数。
   expire:表示用户被禁止登陆的时间。0
   flag:无意义,未使用。

  启用影子口令
   RedHat Linux缺省安装shadow,如果你发现你的系统的/etc/passwd文件仍然可以看到密文,就说明你没有启用shadow。可以执行pwconv来启用shadow。
  在RedHat Linux 7.1中,影子工具包(shadow utils)包含了几个工具支持以下功能:
  传统口令与影子口令之间的转换工具:pwconv、pwunconv。
  验证口令,组和相应的影子文件:pwck、grpck。
  以符合工业标准的方法增加、删除和修改用户帐户:useradd、usermod、userdel。
  以符合工业标准的方法增加、删除和修改用户组:groupadd、groupmod、groupdel。
  以符合工业标准的方法管理文件/etc/group。
  无论系统是否启用shadow机制,上述工具都可以正常使用。
  更改Linux口令的最短长度
   Linux系统默认最短口令长度为5个字符,这个长度不足以保证口令的健壮性,应该改为最短8个字符,编辑/etc/login.defs文件,在此文件中,将
   PASS_MIN_LEN  5
  改为:
   PASS_MIN_LEN  8
  表1
   User Uid gid Directory shell
   Root 0 0 /root /bin/bash
   Bin 1 1 /bin
   Daemon 2 2 /sbin
   Adm 3 4 /var/adm
   Lp 4 7 /var/spool/lpd
   Sync 5 0 /sbin /bin/sync
   shutdown 6 0 /sbin /sbin/shutdown
   Halt 7 0 /sbin /sbin/halt
   Mail 8 12 /var/spool/mail
   News 9 13 /var/spool/news
   Uucp 10 14 /var/spool/uucp
   Operator 11 0 /root
   Games 12 100 /usr/games
   Gopher 13 30 /usr/lib/gopher-data
   ftp 14 50 /home/ftp
   Nobody 99 99 /
  表2
   Group Gid Members
   Root 0 Root
   Bin 1 root,bin,daemon
   Daemon 2 root,bin,daemon
   Sys 3 root,bin,adm
   Adm 4 root,adm,daemon
   Tty 5
   Disk 6 Root
   Lp 7 daemon,lp
   Mem 8
   Kmem 9
   Whell 10 Root
   Mail 12 Mail
   News 13 News
   Uucp 14 Uucp
   Man 15
   Games 20
   Gopher 30
   Dip 40
   ftp 50
   nobody 99
   Users 100
   floppy 19

我来说两句
数据载入中,请稍后……
·请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任。
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据。
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为。
操作
声明
本文来源地址:0
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com.
天下网吧·网吧天下
关于天下 | 联系方式 | 版权声明 | 免责条款 | 隐私保护 | 申请友情链接 | 更多友情链接 | 网络收藏夹
天下网吧,网吧天下.Copy.Txwb.com 2008-2010