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

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

新聞中心

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

目錄

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

4.1. 一般的 Unix 認(rèn)證
4.2. 管理賬號和密碼信息
4.3. 好密碼
4.4. 設(shè)立加密的密碼
4.5. PAM 和 NSS
4.5.1. PAM 和 NSS 訪問的配置文件
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. 其它的訪問控制
4.7.1. sudo
4.7.2. PolicyKit
4.7.3. 限制訪問某些服務(wù)端的服務(wù)
4.7.4. Linux 安全特性

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

警告

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

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

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

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

文件 權(quán)限 用戶 說明
/etc/passwd -rw-r--r-- root root (明文的)用戶賬號信息
/etc/shadow -rw-r----- root shadow 安全加密的用戶賬號信息
/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) 中所述,這個文件中被 “:” 分隔的每項含義如下。

  • 登錄名

  • 密碼形式說明

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

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

  • 用戶名或注釋字段

  • 用戶家目錄

  • 可選的用戶命令解釋器

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

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

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

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

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

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

  • 登錄名

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

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

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

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

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

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

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

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

group1:x:20:user1,user2

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

  • 組名稱

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

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

  • 使用 “,” 分隔的用戶名列表

注意

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

注意

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

注意

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

4.2. 管理賬號和密碼信息

下面是一些管理賬號信息的重要命令。

表 4.3. 管理賬號信息的命令

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

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

注意

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

4.3. 好密碼

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

  • 小寫字母

  • 數(shù)字 0 到 9

  • 標(biāo)點符號

警告

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

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

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

表 4.4. 生成密碼的工具

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

4.5. PAM 和 NSS

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

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

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

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

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

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

軟件包 流行度 大小 說明
libpam-modules V:819, I:999 1045 插入式驗證模塊(基礎(chǔ)服務(wù))
libpam-ldap V:1, I:11 249 允許 LDAP 接口的插入式驗證模塊
libpam-cracklib V:1, I:15 118 啟用 cracklib 支持的插入式驗證模塊
libpam-systemd V:458, I:891 609 用于 logind 注冊用戶會話的插入式驗證模塊(PAM)
libpam-doc I:1 1047 插入式驗證模塊(html 和 文本文檔)
libc6 V:923, I:999 12878 GNU C 庫:同樣提供“名稱服務(wù)切換”服務(wù)的共享庫
glibc-doc I:11 3354 GNU C 庫:幫助頁面
glibc-doc-reference I:4 13034 GNU C 庫:參考手冊,有 info、pdf 和 html 格式(non-free)
libnss-mdns I:512 147 用于解析組播 DNS 名稱的 NSS 模塊
libnss-ldap I:10 265 NSS 模塊,用于使用 LDAP 作為一個名稱服務(wù)的
libnss-ldapd V:1, I:13 151 NSS 模塊,用于使用 LDAP 作為一個名稱服務(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 縮寫也可能意味著 “Network Security Service,網(wǎng)絡(luò)安全服務(wù)”,它不同于 “Name Service Switch,名稱服務(wù)切換”。

注意

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

在 systemd 下, libpam-systemd 軟件包被安裝用來管理用戶登錄,通過為 logind 在 systemd 控制組層級中注冊用戶會話來實現(xiàn)。參見 systemd-logind(8)、logind.conf(5)和 pam_systemd(8)。

4.5.1. PAM 和 NSS 訪問的配置文件

下面是一些 PAM 和 NSS 訪問的重要配置文件。

表 4.6. PAM 和 NSS 訪問的配置文件

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

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

提示

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

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

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

LDAP 服務(wù)器使用帶有 PAM 和 NSS 的libpam-ldaplibnss-ldap 軟件包為 Debian 系統(tǒng)提供賬號信息。需要一些動作來啟用 LDAP(我沒有使用過這個設(shè)置,并且下面的信息純粹是第二手的信息。請在這種前提下閱讀下列內(nèi)容。)。

  • 你通過運(yùn)行一個程序,例如獨(dú)立的 LDAP 守護(hù)進(jìn)程 slapd(8),來建立集中式的 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ò)開銷數(shù)據(jù)的完整性,你必須讓 libpam-ldap 使用 SLL(或 TLS)連接。

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

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

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

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

    • 通過 winbindlibpam_winbind 軟件包訪問 Windows domain 服務(wù).

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

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

    • 通過 nis 軟件包訪問 NIS (之前叫 YP) 或 NIS+。

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

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

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

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

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

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

# 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)是一個好的起點。

4.6.1. 確保互聯(lián)網(wǎng)上的的密碼安全

許多流行的傳輸層服務(wù)都使用純文本來傳輸包括密碼驗證信息在內(nèi)的各類消息。使用純文本在公網(wǎng)上傳輸密碼是很糟糕的做法,因為這樣傳輸?shù)拿艽a很容易在網(wǎng)上被他人截獲。為了確保整個溝通過程,包括密碼信息在內(nè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 時間。作為對 CPU 有益的替代方案,你可以保持使用純文本通訊,僅僅使用安全認(rèn)證協(xié)議加密密碼,比如說:POP 使用"Authenticated Post Office Protocol" (APOP),SMTP 和 IMAP 使用 "Challenge-Response Authentication Mechanism MD5" (CRAM-MD5)。(你的郵件客戶端通過互聯(lián)網(wǎng)上你的郵件服務(wù)器發(fā)送郵件時,最近流行使用新的遞交端口 587 來代替?zhèn)鹘y(tǒng)的 SMTP 端口 25,這樣可以避免在使用 CRAM-MD5 認(rèn)證自己時,網(wǎng)絡(luò)提供商阻塞 25 端口。)

4.6.2. 安全 Shell

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

客戶端可以使用如下方式來認(rèn)證自己:基于主機(jī)的認(rèn)證、公鑰認(rèn)證、質(zhì)疑應(yīng)答認(rèn)證、密碼認(rèn)證。使用公鑰認(rèn)證,可以實現(xiàn)遠(yuǎn)程免密碼登錄。參見 第 6.3 節(jié) “服務(wù)器遠(yuǎ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ī)會使用野蠻暴力猜測密碼攻擊進(jìn)入。 使用防火墻策略 (參見 第 5.6 節(jié) “Netfilter 網(wǎng)絡(luò)過濾框架”),并和下面的安全工具一起,可以提升安全形勢。

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

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

4.6.4. root 密碼安全

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

  • 阻止對硬盤的物理訪問

  • 鎖住 UEFI/ BIOS 來阻止從可移動介質(zhì)啟動

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

  • 鎖住 GRUB 菜單,禁止編輯

如果可以物理訪問硬盤,則可以使用下面的步驟,相對簡單的重置密碼。

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

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

  3. 用讀寫訪問掛載根分區(qū)。

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

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

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

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

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

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

注意

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

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

4.7. 其它的訪問控制

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

注意

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

4.7.1. sudo

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

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

$ sudo chown my_name some_file

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

4.7.2. PolicyKit

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

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

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

參見 polkit(8)。

4.7.3. 限制訪問某些服務(wù)端的服務(wù)

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

許多程序,比如說 sshd(8), 使用基于 PAM 的訪問控制。也還有許多方式來限制訪問一些服務(wù)端的程序。

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

  • 后臺守護(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 框架

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

提示

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

提示

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

4.7.4. Linux 安全特性

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

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

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

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

  • AppArmor

  • Security-Enhanced Linux (SELinux)

  • Smack (Simplified Mandatory Access Control Kernel)

  • Tomoyo Linux

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

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

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

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

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

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

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

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


標(biāo)題名稱:【Debian參考手冊】第?4?章?認(rèn)證和訪問控制
文章分享:http://m.5511xx.com/article/cdsocij.html