Linux操作系統(tǒng)口令文件安全問(wèn)題詳細(xì)解析
更新時(shí)間:2008年01月10日 16:23:25 作者:
Linux操作系統(tǒng)口令文件安全問(wèn)題詳細(xì)解析
幾乎所有的類Unix操作系統(tǒng)的口令文件的格式都雷同,Linux亦不例外。口令安全是Linux操作系統(tǒng)的傳統(tǒng)安全問(wèn)題之一。
傳統(tǒng)口令與影子口令
/etc/passwd是存放用戶的基本信息的口令文件。該口令文件的每一行都包含由6個(gè)冒號(hào)分隔的7個(gè)域:
username: passwd: uid: gid: comments: directory: shell
以上從左到右7個(gè)域分別敘述如下:
username:是用戶登陸使用的名字。
passwd:是口令密文域。密文是加密過(guò)的口令。如果口令經(jīng)過(guò)shadow則口令密文域只顯示一個(gè)x,通常,口令都應(yīng)該經(jīng)過(guò)shadow以確保安全。如果口令密文域顯示為*,則表明該用戶名有效但不能登陸。如果口令密文域?yàn)榭談t表明該用戶登陸不需要口令。
uid:系統(tǒng)用于唯一標(biāo)識(shí)用戶名的數(shù)字,uid系統(tǒng)是這樣分配的:
0 超級(jí)用戶
1~10 守護(hù)程序和偽用戶
11~99 系統(tǒng)保留用戶
100~ 正常用戶
gid:表示用戶所在默認(rèn)組號(hào)。由/etc/group文件決定。
comments:描述用戶的個(gè)人信息。
directory:定義用戶的初始工作目錄。
shell:就是指定用戶登陸到系統(tǒng)后啟動(dòng)的外殼程序。
表1列出了系統(tǒng)在安裝過(guò)程中創(chuàng)建的標(biāo)準(zhǔn)用戶,表中的內(nèi)容和/etc/passwd文件的描述是一致的。
表2列出系統(tǒng)安裝過(guò)程中創(chuàng)建的標(biāo)準(zhǔn)用戶組,和/etc/group文件是一致的:
Linux使用不可逆的加密算法如DES來(lái)加密口令,由于加密算法是不可逆的,所以從密文是得不到明文的。但問(wèn)題在于,/etc/passwd文件是全局可讀的,加密的算法是公開(kāi)的,如果有惡意用戶取得了/etc/passwd文件,他就可以窮舉所有可能的明文通過(guò)相同的算法計(jì)算出密文進(jìn)行比較,直到相同,于是他就破解了口令。因此,針對(duì)這種安全問(wèn)題,Linux/Unix廣泛采用了“shadow(影子)”機(jī)制,將加密的口令轉(zhuǎn)移到 /etc/shadow文件里,該文件只為root超級(jí)用戶可讀,而同時(shí)/etc/passwd文件的密文域顯示為一個(gè)x,從而最大限度減少密文泄露的機(jī)會(huì)。
/etc/shadow文件的每行是8個(gè)冒號(hào)分割的9個(gè)域,格式如下:
username: passwd: lastchg: min: max: warn: inactive: expire: flag
其中:
lastchg:表示從1970年1月1日起到上次修改口令所經(jīng)過(guò)的天數(shù)。
min:表示兩次修改口令之間至少經(jīng)過(guò)的天數(shù)。
max:表示口令還會(huì)有效的最大天數(shù),如果是99999則表示永不過(guò)期。
warn:表示口令失效前多少天內(nèi)系統(tǒng)向用戶發(fā)出警告。
inactive:表示禁止登陸前用戶名還有效的天數(shù)。
expire:表示用戶被禁止登陸的時(shí)間。0
flag:無(wú)意義,未使用。
啟用影子口令
RedHat Linux缺省安裝shadow,如果你發(fā)現(xiàn)你的系統(tǒng)的/etc/passwd文件仍然可以看到密文,就說(shuō)明你沒(méi)有啟用shadow??梢詧?zhí)行pwconv來(lái)啟用shadow。
在RedHat Linux 7.1中,影子工具包(shadow utils)包含了幾個(gè)工具支持以下功能:
傳統(tǒng)口令與影子口令之間的轉(zhuǎn)換工具:pwconv、pwunconv。
驗(yàn)證口令,組和相應(yīng)的影子文件:pwck、grpck。
以符合工業(yè)標(biāo)準(zhǔn)的方法增加、刪除和修改用戶帳戶:useradd、usermod、userdel。
以符合工業(yè)標(biāo)準(zhǔn)的方法增加、刪除和修改用戶組:groupadd、groupmod、groupdel。
以符合工業(yè)標(biāo)準(zhǔn)的方法管理文件/etc/group。
無(wú)論系統(tǒng)是否啟用shadow機(jī)制,上述工具都可以正常使用。
更改Linux口令的最短長(zhǎng)度
Linux系統(tǒng)默認(rèn)最短口令長(zhǎng)度為5個(gè)字符,這個(gè)長(zhǎng)度不足以保證口令的健壯性,應(yīng)該改為最短8個(gè)字符,編輯/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
傳統(tǒng)口令與影子口令
/etc/passwd是存放用戶的基本信息的口令文件。該口令文件的每一行都包含由6個(gè)冒號(hào)分隔的7個(gè)域:
username: passwd: uid: gid: comments: directory: shell
以上從左到右7個(gè)域分別敘述如下:
username:是用戶登陸使用的名字。
passwd:是口令密文域。密文是加密過(guò)的口令。如果口令經(jīng)過(guò)shadow則口令密文域只顯示一個(gè)x,通常,口令都應(yīng)該經(jīng)過(guò)shadow以確保安全。如果口令密文域顯示為*,則表明該用戶名有效但不能登陸。如果口令密文域?yàn)榭談t表明該用戶登陸不需要口令。
uid:系統(tǒng)用于唯一標(biāo)識(shí)用戶名的數(shù)字,uid系統(tǒng)是這樣分配的:
0 超級(jí)用戶
1~10 守護(hù)程序和偽用戶
11~99 系統(tǒng)保留用戶
100~ 正常用戶
gid:表示用戶所在默認(rèn)組號(hào)。由/etc/group文件決定。
comments:描述用戶的個(gè)人信息。
directory:定義用戶的初始工作目錄。
shell:就是指定用戶登陸到系統(tǒng)后啟動(dòng)的外殼程序。
表1列出了系統(tǒng)在安裝過(guò)程中創(chuàng)建的標(biāo)準(zhǔn)用戶,表中的內(nèi)容和/etc/passwd文件的描述是一致的。
表2列出系統(tǒng)安裝過(guò)程中創(chuàng)建的標(biāo)準(zhǔn)用戶組,和/etc/group文件是一致的:
Linux使用不可逆的加密算法如DES來(lái)加密口令,由于加密算法是不可逆的,所以從密文是得不到明文的。但問(wèn)題在于,/etc/passwd文件是全局可讀的,加密的算法是公開(kāi)的,如果有惡意用戶取得了/etc/passwd文件,他就可以窮舉所有可能的明文通過(guò)相同的算法計(jì)算出密文進(jìn)行比較,直到相同,于是他就破解了口令。因此,針對(duì)這種安全問(wèn)題,Linux/Unix廣泛采用了“shadow(影子)”機(jī)制,將加密的口令轉(zhuǎn)移到 /etc/shadow文件里,該文件只為root超級(jí)用戶可讀,而同時(shí)/etc/passwd文件的密文域顯示為一個(gè)x,從而最大限度減少密文泄露的機(jī)會(huì)。
/etc/shadow文件的每行是8個(gè)冒號(hào)分割的9個(gè)域,格式如下:
username: passwd: lastchg: min: max: warn: inactive: expire: flag
其中:
lastchg:表示從1970年1月1日起到上次修改口令所經(jīng)過(guò)的天數(shù)。
min:表示兩次修改口令之間至少經(jīng)過(guò)的天數(shù)。
max:表示口令還會(huì)有效的最大天數(shù),如果是99999則表示永不過(guò)期。
warn:表示口令失效前多少天內(nèi)系統(tǒng)向用戶發(fā)出警告。
inactive:表示禁止登陸前用戶名還有效的天數(shù)。
expire:表示用戶被禁止登陸的時(shí)間。0
flag:無(wú)意義,未使用。
啟用影子口令
RedHat Linux缺省安裝shadow,如果你發(fā)現(xiàn)你的系統(tǒng)的/etc/passwd文件仍然可以看到密文,就說(shuō)明你沒(méi)有啟用shadow??梢詧?zhí)行pwconv來(lái)啟用shadow。
在RedHat Linux 7.1中,影子工具包(shadow utils)包含了幾個(gè)工具支持以下功能:
傳統(tǒng)口令與影子口令之間的轉(zhuǎn)換工具:pwconv、pwunconv。
驗(yàn)證口令,組和相應(yīng)的影子文件:pwck、grpck。
以符合工業(yè)標(biāo)準(zhǔn)的方法增加、刪除和修改用戶帳戶:useradd、usermod、userdel。
以符合工業(yè)標(biāo)準(zhǔn)的方法增加、刪除和修改用戶組:groupadd、groupmod、groupdel。
以符合工業(yè)標(biāo)準(zhǔn)的方法管理文件/etc/group。
無(wú)論系統(tǒng)是否啟用shadow機(jī)制,上述工具都可以正常使用。
更改Linux口令的最短長(zhǎng)度
Linux系統(tǒng)默認(rèn)最短口令長(zhǎng)度為5個(gè)字符,這個(gè)長(zhǎng)度不足以保證口令的健壯性,應(yīng)該改為最短8個(gè)字符,編輯/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
您可能感興趣的文章:
- 如何實(shí)現(xiàn)Linux操作系統(tǒng)的自動(dòng)登錄
- 輕松解決 Linux操作系統(tǒng)故障恢復(fù)技巧
- Linux rpm tar 操作系統(tǒng)下軟件的安裝與卸載方法
- Linux操作系統(tǒng)下關(guān)于用戶和組的配置管理指南
- Linux rdesktop操作系統(tǒng)下遠(yuǎn)程登錄Windows XP桌面
- Linux 操作系統(tǒng)下Web服務(wù)器配置詳細(xì)介紹
- 完美解決Linux操作系統(tǒng)下aes解密失敗的問(wèn)題
- linux操作系統(tǒng)安裝MONO執(zhí)行C#程序的詳解步驟
- linux操作系統(tǒng)安裝sql developer步驟
- Linux操作系統(tǒng)與命令知識(shí)匯總
相關(guān)文章
在Linux系統(tǒng)中如何使用ls命令按日期對(duì)文件進(jìn)行排序
在本文中,我將向您展示如何使用Linux中的ls命令按日期對(duì)文件進(jìn)行排序。本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-11-11新技巧:Linux系統(tǒng)常見(jiàn)6種緊急情況處理方法
新技巧:Linux系統(tǒng)常見(jiàn)6種緊急情況處理方法...2006-10-10完美解決Linux操作系統(tǒng)下aes解密失敗的問(wèn)題
以下是針對(duì)在Linux操作系統(tǒng)下關(guān)于AES解密失敗的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08Linux應(yīng)用調(diào)試使用gdb和gdbserver命令詳解
這篇文章主要介紹了Linux應(yīng)用調(diào)試使用gdb和gdbserver的相關(guān)資料,需要的朋友可以參考下2017-12-12如何實(shí)現(xiàn)Linux操作系統(tǒng)的自動(dòng)登錄
如何實(shí)現(xiàn)Linux操作系統(tǒng)的自動(dòng)登錄...2006-10-10Linux 使用rpm方式安裝最新mysql(5.7.16)步驟及常見(jiàn)問(wèn)題解決方法
前幾天在阿里云買了個(gè)服務(wù)器 ,準(zhǔn)備自己玩玩,現(xiàn)將最新版mysql(5.7.16)安裝步驟,以及遇到問(wèn)題及解決過(guò)程分享,需要的朋友參考下吧2017-01-01