新聞中心
目錄

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(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ì)用頭腦與智慧不斷的給客戶帶來(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 訪問(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. 其它的訪問(wèn)控制
-
- 4.7.1. sudo
- 4.7.2. PolicyKit
- 4.7.3. 限制訪問(wèn)某些服務(wù)端的服務(wù)
- 4.7.4. Linux 安全特性
當(dā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)限 | 用戶 | 組 | 說(shuō)明 |
|---|---|---|---|---|
/etc/passwd |
-rw-r--r-- |
root |
root |
(明文的)用戶賬號(hào)信息 |
/etc/shadow |
-rw-r----- |
root |
shadow |
安全加密的用戶賬號(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ù)字形式的用戶 ID
-
數(shù)字形式的組 ID
-
用戶名或注釋字段
-
用戶家目錄
-
可選的用戶命令解釋器
“/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ù)
-
允許用戶再次修改密碼的天數(shù)間隔
-
用戶必須修改密碼的天數(shù)間隔
-
密碼失效前的天數(shù),在此期間用戶會(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
-
使用 “,” 分隔的用戶名列表
| 注意 | |
|---|---|
|
“ |
| 注意 | |
|---|---|
|
如果" |
| 注意 | |
|---|---|
|
|
4.2. 管理賬號(hào)和密碼信息
下面是一些管理賬號(hào)信息的重要命令。
表 4.3. 管理賬號(hào)信息的命令
| 命令 | 功能 |
|---|---|
getent passwd user_name |
瀏覽 “user_name” 的賬號(hào)信息 |
getent shadow user_name |
瀏覽用戶 "user_name" 隱藏的賬戶信息 |
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ī)器),本地的 “ |
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)碼、電話號(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) 這樣的程序獲得用戶和組名稱(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è)用戶會(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 配置的重要文檔。
| 注意 | |
|---|---|
|
你可以使用 “ |
| 注意 | |
|---|---|
|
PAM 是用來(lái)為每個(gè)程序使用系統(tǒng)范圍的默認(rèn)值來(lái)初始化環(huán)境變量的最基礎(chǔ)方法。 |
在 systemd 下, libpam-systemd 軟件包被安裝用來(lái)管理用戶登錄,通過(guò)為 logind 在 systemd 控制組層級(jí)中注冊(cè)用戶會(huì)話來(lái)實(shí)現(xiàn)。參見(jiàn) systemd-logind(8)、logind.conf(5)和 pam_systemd(8)。
4.5.1. PAM 和 NSS 訪問(wèn)的配置文件
下面是一些 PAM 和 NSS 訪問(wèn)的重要配置文件。
表 4.6. PAM 和 NSS 訪問(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) 模塊限制用戶登錄 |
/etc/securetty |
通過(guò) pam_securetty(8) 模塊限制 root 訪問(wèn) tty |
/etc/security/access.conf |
通過(guò) pam_access(8) 模塊設(shè)置訪問(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 模塊在文件名中使用后綴 “ |
4.5.2. 現(xiàn)代的集中式系統(tǒng)管理
現(xiàn)代的集中式系統(tǒng)管理可以使用集中式的輕量目錄訪問(wèn)協(xié)議(LDAP)服務(wù)器進(jìn)行部署,從而通過(guò)網(wǎng)絡(luò)管理許多類(lèi) Unix 和 非類(lèi) Unix 系統(tǒng)。輕量目錄訪問(wèn)協(xié)議的開(kāi)源實(shí)現(xiàn)是 OpenLDAP 軟件。
LDAP 服務(wù)器使用帶有 PAM 和 NSS 的libpam-ldap 和 libnss-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)集成用戶和組。
-
通過(guò)
winbind和libpam_winbind軟件包訪問(wèn) Windows domain 服務(wù). -
參見(jiàn)
winbindd(8) 和 Integrating MS Windows Networks with Samba。
-
-
同古老的類(lèi) Unix 系統(tǒng)集成用戶和組。
-
通過(guò)
nis軟件包訪問(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 組的用戶 su 到 root 組的能力。
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)證
| 注意 | |
|---|---|
|
這里的信息也許不能完全滿足你的安全需求,但這里應(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)。(你的郵件客戶端通過(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 客戶端, ssh(1), 和 OpenSSH 后臺(tái)守護(hù)進(jìn)程(daemon), sshd(8)組成.SSH 使用端口轉(zhuǎn)發(fā)特性,可以給 POP 和 X 之類(lèi)的不安全的協(xié)議通訊建立隧道,使其可以在互聯(lián)網(wǎng)上安全傳輸。
客戶端可以使用如下方式來(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)程訪問(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) 和客戶端 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)限訪問(wèn)你的機(jī)器,你需要做下面的操作。
-
阻止對(duì)硬盤(pán)的物理訪問(wèn)
-
鎖住 UEFI/ BIOS 來(lái)阻止從可移動(dòng)介質(zhì)啟動(dòng)
-
為 GRUB 交互式會(huì)話設(shè)置密碼
-
鎖住 GRUB 菜單,禁止編輯
如果可以物理訪問(wèn)硬盤(pán),則可以使用下面的步驟,相對(duì)簡(jiǎn)單的重置密碼。
-
將硬盤(pán)拿到一個(gè)可以設(shè)置 UEFI/BIOS 從 CD 啟動(dòng)的電腦。
-
使用緊急介質(zhì)啟動(dòng)系統(tǒng)(Debian 啟動(dòng)磁盤(pán), Knoppix CD, GRUB CD, …)。
-
用讀寫(xiě)訪問(wèn)掛載根分區(qū)。
-
編輯根分區(qū)的"
/etc/passwd"文件,使root賬戶條目的第二段為空。
對(duì)于 grub-rescue-pc ,即使用緊急介質(zhì)啟動(dòng)的電腦,如果有編輯 GRUB 菜單條目 (參見(jiàn) 第 3.1.2 節(jié) “第二階段:引載加載程序”) 的權(quán)限,在啟動(dòng)時(shí),使用下面的步驟更加簡(jiǎn)單。
-
使用內(nèi)核參數(shù)啟動(dòng)系統(tǒng)來(lái)修改一些事情,比如說(shuō),"
root=/dev/hda6 rw init=/bin/sh". -
編輯 "
/etc/passwd" 文件,使root賬戶條目的第二段為空。 -
重啟系統(tǒng)。
系統(tǒng)的 root shell 現(xiàn)在可以無(wú)密碼訪問(wèn)了。
| 注意 | |
|---|---|
|
一旦某人擁有 root shell 訪問(wèn)權(quán)限,他能夠訪問(wèn)任何內(nèi)容,并可以重設(shè)系統(tǒng)上的任何密碼。此外,他可以使用 |
為避免這些相關(guān)問(wèn)題,僅有的理論上的軟件解決方案是使用 dm-crypt 和 initramfs (參見(jiàn) 第 9.9 節(jié) “數(shù)據(jù)加密提示”)加密 root 分區(qū)(或 "/etc" 分區(qū)) 。這樣的話,你總是需要密碼來(lái)啟動(dòng)系統(tǒng)。
4.7. 其它的訪問(wèn)控制
在密碼基于認(rèn)證和文件權(quán)限之外,系統(tǒ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)管理員可以給用戶受限的 root 權(quán)限并記錄 root 活動(dòng)而設(shè)計(jì)的。sudo 只需要一個(gè)普通用戶的密碼。安裝 sudo 軟件包并通過(guò)設(shè)置 “/etc/sudoers” 中的選項(xiàng)來(lái)使用它。參見(jiàn) “/usr/share/doc/sudo/examples/sudoers” 和 第 1.1.12 節(jié) “sudo 配置” 中的配置示例。
我將 sudo 用于單用戶系統(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à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ào)的這種操作。
參見(jiàn) polkit(8)。
4.7.3. 限制訪問(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 的訪問(wèn)控制。也還有許多方式來(lái)限制訪問(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 訪問(wèn)的配置文件” 和 第 5.6 節(jié) “Netfilter 網(wǎng)絡(luò)過(guò)濾框架”。
| 提示 | |
|---|---|
|
NFS 和其它基于 RPC 的程序,需要激活 Sun RPC 服務(wù)。 |
| 提示 | |
|---|---|
|
如果你遠(yuǎn)程訪問(wèn)最新的 Debian 系統(tǒng)有問(wè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í)用戶相關(guān)的特權(quán)分開(kāi)到不同的單元,被稱(chēng)為 capabilities(7),它能夠獨(dú)立的啟用和禁用。從 2.2 版本內(nèi)核開(kāi)始,Capabilities 是一個(gè)線程獨(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í)話題大部分超出了本介紹文檔的范圍。
本文標(biāo)題:【Debian參考手冊(cè)】第?4?章?認(rèn)證和訪問(wèn)控制
轉(zhuǎn)載來(lái)于:http://fisionsoft.com.cn/article/cdsocij.html


咨詢(xún)
建站咨詢(xún)
