日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
【Debian參考手冊(cè)】第?4?章?認(rèn)證和訪(fǎng)問(wèn)控制

目錄

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出永泰免費(fèi)做網(wǎng)站回饋大家。

4.1. 一般的 Unix 認(rèn)證
4.2. 管理賬號(hào)和密碼信息
4.3. 好密碼
4.4. 設(shè)立加密的密碼
4.5. PAM 和 NSS
4.5.1. PAM 和 NSS 訪(fǎng)問(wèn)的配置文件
4.5.2. 現(xiàn)代的集中式系統(tǒng)管理
4.5.3. “為什么 GNU su 不支持 wheel 組”
4.5.4. 嚴(yán)格的密碼規(guī)則
4.6. 安全認(rèn)證
4.6.1. 確?;ヂ?lián)網(wǎng)上的的密碼安全
4.6.2. 安全 Shell
4.6.3. 互聯(lián)網(wǎng)額外的安全方式
4.6.4. root 密碼安全
4.7. 其它的訪(fǎng)問(wèn)控制
4.7.1. sudo
4.7.2. PolicyKit
4.7.3. 限制訪(fǎng)問(wèn)某些服務(wù)端的服務(wù)
4.7.4. Linux 安全特性

當(dāng)用戶(hù)(或程序)需要訪(fǎng)問(wèn)系統(tǒng)時(shí),需要進(jìn)行認(rèn)證,確認(rèn)身份是受信任。

警告

PAM 的配置錯(cuò)誤可能會(huì)鎖住你的系統(tǒng)。你必須有一個(gè)準(zhǔn)備好的救援 CD,或者設(shè)立一個(gè)替代的 boot 分區(qū)。為了恢復(fù)系統(tǒng),你需要使用它們啟動(dòng)系統(tǒng)并糾正錯(cuò)誤。

4.1. 一般的 Unix 認(rèn)證

一般的 Unix 認(rèn)證由 PAM (Pluggable Authentication Modules,即可插入的驗(yàn)證模塊) 下的 pam_unix(8) 模塊提供。它的 3 個(gè)重要文件如下,其內(nèi)的條目使用 “:” 分隔。

表 4.1. pam_unix(8) 使用的 3 個(gè)重要配置文件

文件 權(quán)限 用戶(hù) 說(shuō)明
/etc/passwd -rw-r--r-- root root (明文的)用戶(hù)賬號(hào)信息
/etc/shadow -rw-r----- root shadow 安全加密的用戶(hù)賬號(hào)信息
/etc/group -rw-r--r-- root root 組信息

/etc/passwd” 包含下列內(nèi)容。

 ...
user1:x:1000:1000:User1 Name,,,:/home/user1:/bin/bash
user2:x:1001:1001:User2 Name,,,:/home/user2:/bin/bash
 ...

passwd(5) 中所述,這個(gè)文件中被 “:” 分隔的每項(xiàng)含義如下。

  • 登錄名

  • 密碼形式說(shuō)明

  • 數(shù)字形式的用戶(hù) ID

  • 數(shù)字形式的組 ID

  • 用戶(hù)名或注釋字段

  • 用戶(hù)家目錄

  • 可選的用戶(hù)命令解釋器

/etc/passwd” 的第二項(xiàng)曾經(jīng)被用來(lái)保存加密后的密碼。在引入了 “/etc/shadow” 后,該項(xiàng)被用來(lái)說(shuō)明密碼形式。

表 4.2. “/etc/passwd” 第二項(xiàng)的內(nèi)容

內(nèi)容 說(shuō)明
(空) 無(wú)需密碼的賬號(hào)
x 加密后的密碼保存在 “/etc/shadow
無(wú)法登錄的賬號(hào)
! 無(wú)法登錄的賬號(hào)

/etc/shadow” 包含下列內(nèi)容。

 ...
user1:$1$Xop0FYH9$IfxyQwBe9b8tiyIkt2P4F/:13262:0:99999:7:::
user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7:::
 ...

shadow(5) 中所述,這個(gè)文件中被 “:” 分隔的每項(xiàng)含義如下。

  • 登錄名

  • 加密后的密碼(開(kāi)頭的 “$1$” 表示使用 MD5 加密。“*” 表示無(wú)法登錄。)

  • 最后一次修改密碼的時(shí)間,其表示從 1970 年 1 月 1 日起的天數(shù)

  • 允許用戶(hù)再次修改密碼的天數(shù)間隔

  • 用戶(hù)必須修改密碼的天數(shù)間隔

  • 密碼失效前的天數(shù),在此期間用戶(hù)會(huì)被警告

  • 密碼失效后的天數(shù),在次期間密碼依舊會(huì)被接受

  • 賬號(hào)失效的時(shí)間,其表示從 1970 年 1 月 1 日起的天數(shù)

/etc/group” 包含下列內(nèi)容。

group1:x:20:user1,user2

group(5) 中所述,這個(gè)文件中被 “:” 分隔的每項(xiàng)含義如下。

  • 組名稱(chēng)

  • 加密后的密碼(不會(huì)被真正使用)

  • 數(shù)字形式的組 ID

  • 使用 “,” 分隔的用戶(hù)名列表

注意

/etc/gshadow” 為 “/etc/group” 提供了與 “/etc/shadow” 相似的功能,但沒(méi)有被真正地使用。

注意

如果"auth optional pam_group.so" 這行添加到了"/etc/pam.d/common-auth",并且在"/etc/security/group.conf" 里進(jìn)行了設(shè)置,一個(gè)用戶(hù)的實(shí)際組就可以被動(dòng)態(tài)添加。參見(jiàn) pam_group(8).

注意

base-passwd 軟件包包含了一份用戶(hù)和組的官方文檔:“/usr/share/doc/base-passwd/users-and-groups.html”。

4.2. 管理賬號(hào)和密碼信息

下面是一些管理賬號(hào)信息的重要命令。

表 4.3. 管理賬號(hào)信息的命令

命令 功能
getent passwd user_name 瀏覽 “user_name” 的賬號(hào)信息
getent shadow user_name 瀏覽用戶(hù) "user_name" 隱藏的賬戶(hù)信息
getent group group_name 瀏覽 “group_name” 的組信息
passwd 管理賬號(hào)密碼
passwd -e 為激活的賬號(hào)設(shè)置一次性的密碼
chage 管理密碼有效期信息

其中的一些功能只能被 root 使用。密碼和數(shù)據(jù)的加密參見(jiàn) crypt(3)。

注意

在設(shè)置了 PAM 和 NSS 的系統(tǒng)上(例如 Debian salsa 機(jī)器),本地的 “/etc/passwd”、“/etc/group” 和 “/etc/shadow” 可能不會(huì)被系統(tǒng)激活使用。上述的命令即使處于這種環(huán)境下依舊是有效的。

4.3. 好密碼

在系統(tǒng)安裝時(shí)建立一個(gè)賬號(hào)或使用 passwd(1) 命令時(shí),你應(yīng)該選擇一個(gè)好密碼,它應(yīng)該由 6 到 8 個(gè)字符組成,其中包含下列根據(jù) passwd(1) 設(shè)定的每個(gè)組合中的一個(gè)或多個(gè)字符。

  • 小寫(xiě)字母

  • 數(shù)字 0 到 9

  • 標(biāo)點(diǎn)符號(hào)

警告

密碼中不要使用可以猜到的詞。賬號(hào)名、身份證號(hào)碼、電話(huà)號(hào)碼、地址、生日、家庭成員或?qū)櫸锏拿帧⒆值鋯卧~、簡(jiǎn)單的字符序列(例如 “12345” 或 “qwerty”)等都是糟糕的選擇。

4.4. 設(shè)立加密的密碼

下面是一些用于 生成加鹽的加密密碼 的獨(dú)立工具。

表 4.4. 生成密碼的工具

軟件包 流行度 大小 命令 功能
whois V:31, I:333 364 mkpasswd 具備 crypt(3) 庫(kù)所有特性的前端
openssl V:810, I:994 1465 openssl passwd 計(jì)算密碼哈希 (OpenSSL). passwd(1ssl)

4.5. PAM 和 NSS

現(xiàn)代的類(lèi) Unix 系統(tǒng)(例如 Debian 系統(tǒng))提供 PAM (Pluggable Authentication Modules,插入式驗(yàn)證模塊) 和 NSS(Name Service Switch,名稱(chēng)服務(wù)切換) 機(jī)制給本地系統(tǒng)管理員,使他們能夠配置自己的系統(tǒng)。它們的功能可以概括為以下幾點(diǎn)。

  • PAM 給應(yīng)用軟件提供了一個(gè)靈活的認(rèn)證機(jī)制,因此涉及到了密碼數(shù)據(jù)的交換。

  • NSS 提供了一個(gè)靈活的名稱(chēng)服務(wù)機(jī)制,它經(jīng)常被 C 標(biāo)準(zhǔn)庫(kù)使用,使例如 ls(1) 和 id(1) 這樣的程序獲得用戶(hù)和組名稱(chēng)。

PAM 和 NSS 系統(tǒng)必須保持配置一致。

PAM 和 NSS 系統(tǒng)中重要的軟件包如下。

表 4.5. PAM 和 NSS 系統(tǒng)中重要的軟件包

軟件包 流行度 大小 說(shuō)明
libpam-modules V:819, I:999 1045 插入式驗(yàn)證模塊(基礎(chǔ)服務(wù))
libpam-ldap V:1, I:11 249 允許 LDAP 接口的插入式驗(yàn)證模塊
libpam-cracklib V:1, I:15 118 啟用 cracklib 支持的插入式驗(yàn)證模塊
libpam-systemd V:458, I:891 609 用于 logind 注冊(cè)用戶(hù)會(huì)話(huà)的插入式驗(yàn)證模塊(PAM)
libpam-doc I:1 1047 插入式驗(yàn)證模塊(html 和 文本文檔)
libc6 V:923, I:999 12878 GNU C 庫(kù):同樣提供“名稱(chēng)服務(wù)切換”服務(wù)的共享庫(kù)
glibc-doc I:11 3354 GNU C 庫(kù):幫助頁(yè)面
glibc-doc-reference I:4 13034 GNU C 庫(kù):參考手冊(cè),有 info、pdf 和 html 格式(non-free)
libnss-mdns I:512 147 用于解析組播 DNS 名稱(chēng)的 NSS 模塊
libnss-ldap I:10 265 NSS 模塊,用于使用 LDAP 作為一個(gè)名稱(chēng)服務(wù)的
libnss-ldapd V:1, I:13 151 NSS 模塊,用于使用 LDAP 作為一個(gè)名稱(chēng)服務(wù)的(libnss-ldap 的新 fork)

  • libpam-doc 中 “The Linux-PAM System Administrators' Guide” 是了解 PAM 配置的必要文檔。

  • glibc-doc-reference 中的 “System Databases and Name Service Switch” 是了解 NSS 配置的重要文檔。

注意

你可以使用 “aptitude search 'libpam-|libnss-'” 命令查看更多的相關(guān)軟件包。NSS 縮寫(xiě)也可能意味著 “Network Security Service,網(wǎng)絡(luò)安全服務(wù)”,它不同于 “Name Service Switch,名稱(chēng)服務(wù)切換”。

注意

PAM 是用來(lái)為每個(gè)程序使用系統(tǒng)范圍的默認(rèn)值來(lái)初始化環(huán)境變量的最基礎(chǔ)方法。

在 systemd 下, libpam-systemd 軟件包被安裝用來(lái)管理用戶(hù)登錄,通過(guò)為 logind 在 systemd 控制組層級(jí)中注冊(cè)用戶(hù)會(huì)話(huà)來(lái)實(shí)現(xiàn)。參見(jiàn) systemd-logind(8)、logind.conf(5)和 pam_systemd(8)。

4.5.1. PAM 和 NSS 訪(fǎng)問(wèn)的配置文件

下面是一些 PAM 和 NSS 訪(fǎng)問(wèn)的重要配置文件。

表 4.6. PAM 和 NSS 訪(fǎng)問(wèn)的配置文件

配置文件 功能
/etc/pam.d/program_name 為 “program_name” 程序設(shè)置 PAM 配置;參加 pam(7) 和 pam.d(5)
/etc/nsswitch.conf 為每個(gè)服務(wù)條目設(shè)置 NSS 配置。參見(jiàn) nsswitch.conf(5)
/etc/nologin 通過(guò) pam_nologin(8) 模塊限制用戶(hù)登錄
/etc/securetty 通過(guò) pam_securetty(8) 模塊限制 root 訪(fǎng)問(wèn) tty
/etc/security/access.conf 通過(guò) pam_access(8) 模塊設(shè)置訪(fǎng)問(wèn)限制
/etc/security/group.conf 通過(guò) pam_group(8) 模塊設(shè)置基于組的限制
/etc/security/pam_env.conf 通過(guò) pam_env(8) 模塊設(shè)置環(huán)境變量
/etc/environment 通過(guò)帶有 “readenv=1” 參數(shù)的 pam_env(8) 模塊設(shè)置額外的環(huán)境變量
/etc/default/locale 通過(guò)帶有 “readenv=1 envfile=/etc/default/locale” 參數(shù)的 pam_env(8) 模塊設(shè)置語(yǔ)言環(huán)境值(在 Debian 系統(tǒng)中)
/etc/security/limits.conf 通過(guò) pam_linits(8) 模塊設(shè)置資源限制(ulimit、core 等等)
/etc/security/time.conf 通過(guò) pam_time(8) 模塊設(shè)置時(shí)間限制
/etc/systemd/logind.conf 設(shè)置systemd 的登錄管理器配置 (參見(jiàn) logind.conf(5) 和 systemd-logind.service(8))

密碼選擇的限制是通過(guò) PAM 模塊 pam_unix(8) 和 pam_cracklib(8) 來(lái)實(shí)現(xiàn)的。它們可以通過(guò)各自的參數(shù)進(jìn)行配置。

提示

PAM 模塊在文件名中使用后綴 “.so”。

4.5.2. 現(xiàn)代的集中式系統(tǒng)管理

現(xiàn)代的集中式系統(tǒng)管理可以使用集中式的輕量目錄訪(fǎng)問(wèn)協(xié)議(LDAP)服務(wù)器進(jìn)行部署,從而通過(guò)網(wǎng)絡(luò)管理許多類(lèi) Unix 和 非類(lèi) Unix 系統(tǒng)。輕量目錄訪(fǎng)問(wèn)協(xié)議的開(kāi)源實(shí)現(xiàn)是 OpenLDAP 軟件。

LDAP 服務(wù)器使用帶有 PAM 和 NSS 的libpam-ldaplibnss-ldap 軟件包為 Debian 系統(tǒng)提供賬號(hào)信息。需要一些動(dòng)作來(lái)啟用 LDAP(我沒(méi)有使用過(guò)這個(gè)設(shè)置,并且下面的信息純粹是第二手的信息。請(qǐng)?jiān)谶@種前提下閱讀下列內(nèi)容。)。

  • 你通過(guò)運(yùn)行一個(gè)程序,例如獨(dú)立的 LDAP 守護(hù)進(jìn)程 slapd(8),來(lái)建立集中式的 LDAP 服務(wù)器。

  • 你在 “/etc/pam.d/” 目錄中的 PAM 配置文件里,使用 “pam_ldap.so” 替代默認(rèn)值 “pam_unix.so”。

    • Debian 使用 “/etc/pam_ldap.conf” 作為 libpam-ldap 的配置文件,“/etc/pam_ldap.secret” 作為保存 root 密碼的文件。

  • 你在 “/etc/nsswitch.conf” 文件中改變 NSS 配置,使用 “ldap” 替代默認(rèn)值(“compat” 或 “file”)。

    • Debian 使用 “/etc/libnss-ldap.conf” 作為 libnss-ldap 的配置文件。

  • 為了密碼的安全,你必須讓 libpam-ldap 使用 SLL(或 TLS)連接。

  • 為了確保 LDAP 網(wǎng)絡(luò)開(kāi)銷(xiāo)數(shù)據(jù)的完整性,你必須讓 libpam-ldap 使用 SLL(或 TLS)連接。

  • 為了減少 LDAP 網(wǎng)絡(luò)流量,你應(yīng)該在本地運(yùn)行 nscd(8) 來(lái)緩存任何 LDAP 搜索結(jié)果。

參見(jiàn)由 libpam-doc 軟件包提供的 pam_ldap.conf(5) 中的文檔和 “/usr/share/doc/libpam-doc/html/”,以及 glibc-doc 軟件包提供的 “info libc 'Name Service Switch'”。

類(lèi)似地,你可以使用其它方法來(lái)設(shè)置另一種集中式的系統(tǒng)。

  • 同 Windows 系統(tǒng)集成用戶(hù)和組。

    • 通過(guò) winbindlibpam_winbind 軟件包訪(fǎng)問(wèn) Windows domain 服務(wù).

    • 參見(jiàn) winbindd(8) 和 Integrating MS Windows Networks with Samba。

  • 同古老的類(lèi) Unix 系統(tǒng)集成用戶(hù)和組。

    • 通過(guò) nis 軟件包訪(fǎng)問(wèn) NIS (之前叫 YP) 或 NIS+。

    • 參見(jiàn) The Linux NIS(YP)/NYS/NIS+ HOWTO。

4.5.3. “為什么 GNU su 不支持 wheel 組”

這是在舊的 “info su” 底部 Richard M. Stallman 所說(shuō)的一句名言。別擔(dān)心:Debian 系統(tǒng)中當(dāng)前的 su 命令使用了 PAM,這樣當(dāng)在 “/etc/pam.d/su” 中啟用了帶有 “pam_wheel.so” 的行后,就能夠限制非 wheel 組的用戶(hù) suroot 組的能力。

4.5.4. 嚴(yán)格的密碼規(guī)則

安裝 libpam-cracklib 軟件包你能夠強(qiáng)制使用嚴(yán)格的密碼規(guī)則。

在一個(gè)典型的 GNOME 系統(tǒng),將會(huì)安裝 libpam-gnome-keyring,"/etc/pam.d/common-password" 看起來(lái)像:

# here are the per-package modules (the "Primary" block)
password	requisite			pam_cracklib.so retry=3 minlen=8 difok=3
password	[success=1 default=ignore]	pam_unix.so obscure use_authtok try_first_pass yescrypt
# here's the fallback if no module succeeds
password	requisite			pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password	required			pam_permit.so
# and here are more per-package modules (the "Additional" block)
password	optional	pam_gnome_keyring.so 
# end of pam-auth-update config

4.6. 安全認(rèn)證

注意

這里的信息也許不能完全滿(mǎn)足你的安全需求,但這里應(yīng)當(dāng)是一個(gè)好的起點(diǎn)

4.6.1. 確?;ヂ?lián)網(wǎng)上的的密碼安全

許多流行的傳輸層服務(wù)都使用純文本來(lái)傳輸包括密碼驗(yàn)證信息在內(nèi)的各類(lèi)消息。使用純文本在公網(wǎng)上傳輸密碼是很糟糕的做法,因?yàn)檫@樣傳輸?shù)拿艽a很容易在網(wǎng)上被他人截獲。為了確保整個(gè)溝通過(guò)程,包括密碼信息在內(nèi)都使用加密傳輸來(lái)確保安全,您可以在“傳輸層安全(Transport Layer Security,TLS)”協(xié)議或者其前身,“安全套接字層(Secure Sockets Layer,SSL)”協(xié)議之上運(yùn)行這些服務(wù)。

表 4.7. 安全和不安全的服務(wù)端口列表

不安全的服務(wù)名 端口 安全的服務(wù)名 端口
www (http) 80 https 443
smtp (郵件) 25 ssmtp (smtps) 465
ftp-data 20 ftps-data 989
ftp 21 ftps 990
telnet 23 telnets 992
imap2 143 imaps 993
pop3 110 pop3s 995
ldap 389 ldaps 636

加密消耗 CPU 時(shí)間。作為對(duì) CPU 有益的替代方案,你可以保持使用純文本通訊,僅僅使用安全認(rèn)證協(xié)議加密密碼,比如說(shuō):POP 使用"Authenticated Post Office Protocol" (APOP),SMTP 和 IMAP 使用 "Challenge-Response Authentication Mechanism MD5" (CRAM-MD5)。(你的郵件客戶(hù)端通過(guò)互聯(lián)網(wǎng)上你的郵件服務(wù)器發(fā)送郵件時(shí),最近流行使用新的遞交端口 587 來(lái)代替?zhèn)鹘y(tǒng)的 SMTP 端口 25,這樣可以避免在使用 CRAM-MD5 認(rèn)證自己時(shí),網(wǎng)絡(luò)提供商阻塞 25 端口。)

4.6.2. 安全 Shell

安全 Shell (SSH) 程序使用安全認(rèn)證來(lái)提供不安全網(wǎng)絡(luò)上兩個(gè)不可信任主機(jī)之間的安全加密通訊。它由 OpenSSH 客戶(hù)端, ssh(1), 和 OpenSSH 后臺(tái)守護(hù)進(jìn)程(daemon), sshd(8)組成.SSH 使用端口轉(zhuǎn)發(fā)特性,可以給 POP 和 X 之類(lèi)的不安全的協(xié)議通訊建立隧道,使其可以在互聯(lián)網(wǎng)上安全傳輸。

客戶(hù)端可以使用如下方式來(lái)認(rèn)證自己:基于主機(jī)的認(rèn)證、公鑰認(rèn)證、質(zhì)疑應(yīng)答認(rèn)證、密碼認(rèn)證。使用公鑰認(rèn)證,可以實(shí)現(xiàn)遠(yuǎn)程免密碼登錄。參見(jiàn) 第 6.3 節(jié) “服務(wù)器遠(yuǎn)程訪(fǎng)問(wèn)和工具 (SSH)”.

4.6.3. 互聯(lián)網(wǎng)額外的安全方式

即使你運(yùn)行 Secure Shell (SSH) 和 Point-to-point tunneling protocol (PPTP) 這樣的安全服務(wù),在互聯(lián)網(wǎng)上,仍然有機(jī)會(huì)使用野蠻暴力猜測(cè)密碼攻擊進(jìn)入。 使用防火墻策略 (參見(jiàn) 第 5.6 節(jié) “Netfilter 網(wǎng)絡(luò)過(guò)濾框架”),并和下面的安全工具一起,可以提升安全形勢(shì)。

表 4.8. 提供額外安全方式的工具列表

軟件包 流行度 大小 說(shuō)明
knockd V:0, I:3 110 小的 port-knock 后臺(tái)守護(hù)進(jìn)程(daemon) knockd(1) 和客戶(hù)端 knock(1)
fail2ban V:109, I:122 2091 禁用造成多個(gè)認(rèn)證錯(cuò)誤的 IP
libpam-shield V:0, I:0 115 把嘗試猜測(cè)密碼的遠(yuǎn)程攻擊者關(guān)在外面

4.6.4. root 密碼安全

為阻止人們使用 root 權(quán)限訪(fǎng)問(wèn)你的機(jī)器,你需要做下面的操作。

  • 阻止對(duì)硬盤(pán)的物理訪(fǎng)問(wèn)

  • 鎖住 UEFI/ BIOS 來(lái)阻止從可移動(dòng)介質(zhì)啟動(dòng)

  • 為 GRUB 交互式會(huì)話(huà)設(shè)置密碼

  • 鎖住 GRUB 菜單,禁止編輯

如果可以物理訪(fǎng)問(wèn)硬盤(pán),則可以使用下面的步驟,相對(duì)簡(jiǎn)單的重置密碼。

  1. 將硬盤(pán)拿到一個(gè)可以設(shè)置 UEFI/BIOS 從 CD 啟動(dòng)的電腦。

  2. 使用緊急介質(zhì)啟動(dòng)系統(tǒng)(Debian 啟動(dòng)磁盤(pán), Knoppix CD, GRUB CD, …)。

  3. 用讀寫(xiě)訪(fǎng)問(wèn)掛載根分區(qū)。

  4. 編輯根分區(qū)的"/etc/passwd"文件,使 root 賬戶(hù)條目的第二段為空。

對(duì)于 grub-rescue-pc ,即使用緊急介質(zhì)啟動(dòng)的電腦,如果有編輯 GRUB 菜單條目 (參見(jiàn) 第 3.1.2 節(jié) “第二階段:引載加載程序”) 的權(quán)限,在啟動(dòng)時(shí),使用下面的步驟更加簡(jiǎn)單。

  1. 使用內(nèi)核參數(shù)啟動(dòng)系統(tǒng)來(lái)修改一些事情,比如說(shuō),"root=/dev/hda6 rw init=/bin/sh".

  2. 編輯 "/etc/passwd" 文件,使 root 賬戶(hù)條目的第二段為空。

  3. 重啟系統(tǒng)。

系統(tǒng)的 root shell 現(xiàn)在可以無(wú)密碼訪(fǎng)問(wèn)了。

注意

一旦某人擁有 root shell 訪(fǎng)問(wèn)權(quán)限,他能夠訪(fǎng)問(wèn)任何內(nèi)容,并可以重設(shè)系統(tǒng)上的任何密碼。此外,他可以使用 johncrack 等軟件包的暴力破解工具來(lái)比較所有用戶(hù)的密碼 (參見(jiàn) 第 9.5.11 節(jié) “系統(tǒng)安全性和完整性檢查”)。被破解的密碼,可以用來(lái)和其它系統(tǒng)進(jìn)行比較。

為避免這些相關(guān)問(wèn)題,僅有的理論上的軟件解決方案是使用 dm-crypt 和 initramfs (參見(jiàn) 第 9.9 節(jié) “數(shù)據(jù)加密提示”)加密 root 分區(qū)(或 "/etc" 分區(qū)) 。這樣的話(huà),你總是需要密碼來(lái)啟動(dòng)系統(tǒng)。

4.7. 其它的訪(fǎng)問(wèn)控制

在密碼基于認(rèn)證和文件權(quán)限之外,系統(tǒng)也有其它的訪(fǎng)問(wèn)控制。

注意

參見(jiàn) 第 9.4.15 節(jié) “Alt-SysRq 鍵” 來(lái)限制內(nèi)核的安全警告密鑰(SAK)功能。

4.7.1. sudo

sudo(8) 程序是為了使一個(gè)系統(tǒng)管理員可以給用戶(hù)受限的 root 權(quán)限并記錄 root 活動(dòng)而設(shè)計(jì)的。sudo 只需要一個(gè)普通用戶(hù)的密碼。安裝 sudo 軟件包并通過(guò)設(shè)置 “/etc/sudoers” 中的選項(xiàng)來(lái)使用它。參見(jiàn) “/usr/share/doc/sudo/examples/sudoers” 和 第 1.1.12 節(jié) “sudo 配置” 中的配置示例。

我將 sudo 用于單用戶(hù)系統(tǒng)(參見(jiàn) 第 1.1.12 節(jié) “sudo 配置”)是為了防止自己可能做出的愚蠢行為。就我個(gè)人而言,我認(rèn)為使用 sudo 會(huì)比使用 root 賬號(hào)操作系統(tǒng)來(lái)得好。例如,下列命令將 “some_file” 的擁有者改變?yōu)?“my_name”。

$ sudo chown my_name some_file

當(dāng)然如果你知道 root 密碼(比如自行安裝 Debian 的用戶(hù)所做的),任何用戶(hù)賬號(hào)都可以使用 “su -c” 讓任何命令以 root 運(yùn)行。

4.7.2. PolicyKit

PolicyKit 是在類(lèi) Unix 操作系統(tǒng)中控制整個(gè)系統(tǒng)權(quán)限的一個(gè)操作系統(tǒng)組件。

較新的 GUI 圖形界面程序設(shè)計(jì)時(shí)便考慮到了不作為特權(quán)進(jìn)程來(lái)運(yùn)行。它們通過(guò) PolicyKit 來(lái)和特權(quán)進(jìn)程通信,從而執(zhí)行管理操作。

在 Debian 系統(tǒng)中,PolicyKit 限制了屬于 sudo 組的用戶(hù)賬號(hào)的這種操作。

參見(jiàn) polkit(8)。

4.7.3. 限制訪(fǎng)問(wèn)某些服務(wù)端的服務(wù)

對(duì)系統(tǒng)安全而言,盡可能的禁用服務(wù)程序,是一個(gè)好的主意。網(wǎng)絡(luò)服務(wù)是危險(xiǎn)的。有不使用的服務(wù),不管是直接由后臺(tái)守護(hù)進(jìn)程(daemon)激活,還是通過(guò)super-server 程序激活,都被認(rèn)為是安全風(fēng)險(xiǎn)。

許多程序,比如說(shuō) sshd(8), 使用基于 PAM 的訪(fǎng)問(wèn)控制。也還有許多方式來(lái)限制訪(fǎng)問(wèn)一些服務(wù)端的程序。

  • 配置文件: "/etc/default/program_name"

  • 后臺(tái)守護(hù)進(jìn)程(daemon)的 Systemd 服務(wù)單元配置

  • PAM (Pluggable Authentication Modules)

  • super-server 使用 "/etc/inetd.conf"

  • TCP wrapper 使用 "/etc/hosts.deny" 和 "/etc/hosts.allow" , tcpd(8)

  • Sun RPC" 使用 /etc/rpc.conf"

  • atd(8) 使用 "/etc/at.allow" 和 "/etc/at.deny"

  • crontab(1) 使用 "/etc/cron.allow" 和 "/etc/cron.deny"

  • Network firewall 或netfilter 框架

參見(jiàn) 第 3.5 節(jié) “系統(tǒng)管理”、第 4.5.1 節(jié) “PAM 和 NSS 訪(fǎng)問(wèn)的配置文件” 和 第 5.6 節(jié) “Netfilter 網(wǎng)絡(luò)過(guò)濾框架”。

提示

NFS 和其它基于 RPC 的程序,需要激活 Sun RPC 服務(wù)。

提示

如果你遠(yuǎn)程訪(fǎng)問(wèn)最新的 Debian 系統(tǒng)有問(wèn)題,看下在"/etc/hosts.deny"里是否存在"ALL: PARANOID"這樣討厭的配置,請(qǐng)把它注釋掉。(但是你必須注意這種行為所帶來(lái)的安全風(fēng)險(xiǎn)。)

4.7.4. Linux 安全特性

Linux 內(nèi)核已經(jīng)發(fā)展和支持在傳統(tǒng)的 UNIX 實(shí)現(xiàn)里面沒(méi)有的安全特征。

Linux 支持 擴(kuò)展屬性,擴(kuò)展了傳統(tǒng)的 UNIX 屬性 (參見(jiàn) xattr(7))。

Linux 把傳統(tǒng)的超級(jí)用戶(hù)相關(guān)的特權(quán)分開(kāi)到不同的單元,被稱(chēng)為 capabilities(7),它能夠獨(dú)立的啟用和禁用。從 2.2 版本內(nèi)核開(kāi)始,Capabilities 是一個(gè)線(xiàn)程獨(dú)立的屬性。

Linux Security Module (LSM) 安全模塊框架 提供了一個(gè)多方面的安全檢查機(jī)制,和新的內(nèi)核擴(kuò)展關(guān)聯(lián)。例如:

  • AppArmor

  • Security-Enhanced Linux (SELinux)

  • Smack (Simplified Mandatory Access Control Kernel)

  • Tomoyo Linux

這些擴(kuò)展緊縮的權(quán)力模型比普通的類(lèi) Unix 安全模型策略更加嚴(yán)格,甚至 root 的權(quán)力也被限制。建議你閱讀 kernel.org 上的 Linux 安全模塊(LSM)框架文檔。

Linux 的 namespaces 封裝了一個(gè)全局系統(tǒng)資源到一個(gè)抽象的概念,全局系統(tǒng)資源在 namespace 內(nèi)對(duì)進(jìn)程可見(jiàn),并且 namespace 有它們自己的全局資源隔離實(shí)例。 對(duì)其它進(jìn)程全局資源的可見(jiàn)性的改變是,同一個(gè) namespace 的成員可見(jiàn),但是對(duì)非同一個(gè) namespace 的其它進(jìn)程不可見(jiàn)。從內(nèi)核 5.6 版本起,有 8 種 namespaces (參見(jiàn) namespaces(7), unshare(1), nsenter(1))。

在 Debian 11 Bullseye (2021) 中, Debian 使用 unified cgroup hierarchy(統(tǒng)一 cgroup 層級(jí)架構(gòu)) (亦稱(chēng)為 cgroups-v2)。

namespaces 同 cgroups 一起來(lái)隔離它們的進(jìn)程,允許資源控制的使用示例是:

  • Systemd。參見(jiàn) 第 3.2 節(jié) “Systemd 初始化”。

  • 沙盒環(huán)境。參見(jiàn) 第 7.6 節(jié) “沙盒”。

  • Linux 容器,比如 Docker、 LXC。參見(jiàn) 第 9.11 節(jié) “虛擬化系統(tǒng)”。

這些功能不能夠通過(guò) 第 4.1 節(jié) “一般的 Unix 認(rèn)證” 實(shí)現(xiàn)。這些高級(jí)話(huà)題大部分超出了本介紹文檔的范圍。


當(dāng)前題目:【Debian參考手冊(cè)】第?4?章?認(rèn)證和訪(fǎng)問(wèn)控制
分享地址:http://www.5511xx.com/article/cdsocij.html