Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> Linux操作系統口令文件安全問題詳細解析

Linux操作系統口令文件安全問題詳細解析

日期:2017/2/7 16:58:05      編輯:Linux教程

幾乎所有的類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

Copyright © Windows教程網 All Rights Reserved