Red Hat Training
A Red Hat training course is available for Red Hat Satellite
客戶端配置指南
Red Hat Network 衛星伺服器 5.4
Red Hat Network 衛星伺服器
版 1
摘要
歡迎使用 Red Hat Network 衛星伺服器客戶端配置指南。
章 1. 介紹
本指南主要是為了協助 RHN Satellite Server 和 RHN Proxy Server 的客戶們,更輕易地配置他們的客戶端系統。
就預設值,所有的 Red Hat Network 客戶端應用程式皆會被設定為與中央 Red Hat Network 伺服器進行通訊。當客戶端連結至 RHN Satellite Server 或 RHN Proxy Server 時,許多的這些設定就必須遭到變更。為一兩部系統進行客戶端設定並不複雜。在大型企業的環境中,當有上百或上千部系統時,在此所描述到的大量重新配置步驟,就會變得相當有用。
基於這項作業的複雜程度較高,客戶可能需使用一個預先填入的 script,此 script 能夠自動化許多需要存取其衛星伺服器,或 Proxy 伺服器所需的工作;欲取得詳細資訊,請參閱 章 5, 使用 RHN Bootstrap。Red Hat 相信,了解這些變更所造成的影響相當有幫助,因而在起始的章節之中,便討論到了重新配置上的手動式步驟。請使用您的判斷力來測定適合您組織的解決方法。
雖然本指南中所提供的許多指令,皆能照它們所表示地一般套用,不過若要預測客戶所採用的所有網路配置,則是不可能的。因此,Red Hat 建議您根據您組織的個別設定,使用這些指令。
注意
Unix 客戶端配置資訊能在 Unix 支援章節中的 RHN Satellite Server 參考指南之中找到。
章 2. 客戶端應用程式
為了要使用 Red Hat Network 大部分的企業級功能(例如與 RHN 衛星伺服器進行註冊),您需要最新的客戶端應用程式配置。要在客戶端和 Red Hat Network 註冊前取得這些應用程式有些困難。此矛盾的情況特別對於需將大量老舊系統遷移至 Red Hat Network 的客戶來說更為麻煩。本章節描述了如何解決此瓶頸的的技巧。
重要
Red Hat 強烈建議將客戶端連結至含有最新 Red Hat Enterprise Linux 更新的 RHN Proxy Server 或 RHN Satellite Server 以確保正確的連結性。
另外,若客戶端防火牆已配置,port 80 和 433 應被開啟才能正確地運作 Red Hat Network。
2.1. 佈署最新的 Red Hat Network 客戶端 RPM
Red Hat Enterprise Linux 5 上的(先前 Red Hat Enterprise Linux 版本上為
up2date
)Package Updater(套件更新程式)(pup
)、yum
,以及 Red Hat Network Registration Client(rhn_register
)都是使用大部分 Red Hat Network 企業功能的首要事物。當嘗試在您的環境下使用 RHN Proxy Server 或 RHN Satellite Server 之前,先將這些應用程式安裝在客戶端系統上的程序是非常重要的。
完成此 RHN 客戶端軟體更新的適當的方式有幾種。其中一種就是將 RPM 儲存在一個所有客戶端系統都能夠存取的位置上,並且以愈簡單愈好的指令來建置套件。幾乎在所有情況下,您都無須手動式地建置
yum
、pup
和 rhn_register
(若是較早版本的 Red Hat Enterprise Linux 的話則是 up2date
)。這些客戶端工具應該可無礙地連結至您的 RHN 衛星伺服器或是 Proxy 環境。下列討論假設了包裝中所附的 yum
、pup
和 rhn_register
(或 up2date
)並非最新版本並且無法在您的環境下運作。
請記得,只有執行 Red Hat Enterprise Linux 5 的系統必須在安裝過後於
firstboot
時,或使用 rhn_register 來與 RHN 進行註冊。執行 Red Hat Enterprise Linux 3 和 4 的系統則能使用內建於 Red Hat Update Agent 之中的註冊功能。
本文件推測,客戶在他們的網路上已安裝了至少一個 RHN Satellite Server 與/或 RHN Proxy Server。下列範例示範了假設系統管理員在機器並未含有可運作的 RHN 的情況下,第一次建置
yum
、pup
和 rhn_register
(或 up2date
)的基本方式。系統管理員以他客戶端系統所需的 yum
、pup
和 rhn_register
(或 up2date
)RPM 副本填入了 /var/www/html/pub/
目錄,並透過一項基本的 rpm -Uvh
指令,來將這些 RPM 建置至其客戶端系統上。當這項指令由客戶端來執行時,它會將 RPM 安裝至該客戶端,並假設區域名稱、路徑和 RPM 版本皆為正確的(請注意,這項指令已被分為數行,以便於列印和使用 PDF,不過當使用於 shell 提示列時,請將它作為單獨的一行輸入):
rpm -Uvh http://your_proxy_or_sat.your_domain.com/pub/rhn-setup-0.4.17-8.el5.i386.rpm http://your_proxy_or_sat.your_domain.com/pub/yum-3.2.8-9.el5.i386.rpm http://your_proxy_or_sat.your_domain.com/pub/pirut-1.3.28-13.3l5.noarch.rpm
請切記,架構(在此情況下為
i386
)也許需根據系統不同而改變。
2.2. 配置客戶端應用程式
並分所有客戶端都必須安全地連結至他們組織中的 RHN Satellite Server 或 RHN Proxy Server。並非所有客戶都需要為自訂的套件建置與佈署 GPG 金鑰。(這兩個論點將在之後詳細討論。)所有使用 RHN Satellite Server 或 RHN Proxy Server 的客戶都被需重新配置 Red Hat Update Agent(
up2date
)或甚至是 Red Hat Network Registration Client(rhn_register
)來將它由 Red Hat Network 重新導向至他們的 RHN Satellite Server 或 RHN Proxy Server。
重要
雖然這無法被設置,不過請注意,up2date 所使用的通訊埠為 433(secure HTTP〔HTTPS〕)以及 80(HTTP)。就預設值來講,Red Hat Enterprise Linux 5 上的
yum
只會使用 SSL。因為這個原因,使用者應確認他們的防火牆允許透過通訊埠 433 的連結。若要跳過 SSL,請在 /etc/sysconfig/rhn/up2date
之中將 serverURL
的協定由 https
更改為 http
。若要使用 RHN 的 Monitoring 功能和需要 Red Hat Network Monitoring Daemon 的偵測的話也一樣,請注意客戶端系統必須允許通訊埠 4545 上的連結(或是若使用的是 sshd
的話則是通訊埠 22)。
就預設值,
rhn_register
與 up2date 代表主要的 Red Hat Network 伺服器。使用者必須將客戶端系統重新配置以參照他們的 RHN Satellite Server 或 RHN Proxy Server。
請注意,Red Hat Update Agent 的最新版本能夠被配置來適應許多 RHN 伺服器,因此也提供了容錯移轉保護,以預防主要伺服器無法被存取。欲取得如何啟用此功能的相關指南,請參閱 節 2.2.4, “實施伺服器容錯移轉”。
下一部分詳述了幾種配置客戶端系統的方式,以存取您的 RHN Satellite Server 或 RHN Proxy Server。若要查看如何將所有的重新配置編寫為 script,請參閱 章 6, 手動式編寫配置。
2.2.1. 以啟動金鑰(activation key)進行註冊
Red Hat 建議您使用啟動金鑰來註冊與配置存取 RHN Proxy Server 或 RHN Satellite Server 的客戶端系統。您能夠使用啟動金鑰來註冊、賦予和訂閱一批系統。如欲取得更多有關於啟動金鑰的相關資訊,請參閱 RHN Satellite Server 參考指南中的「啟動金鑰」部份。
以啟動金鑰進行註冊包含四個簡單的步驟:
- 產生一組啟動金鑰
- 匯入自訂的 GPG 金鑰。
- 由 RHN Proxy Server 或是 RHN Satellite Server 的
/pub/
目錄下載並安裝 SSL 認證 RPM。此步驟的指令應看似:rpm -Uvh http://your-satellite-FQDN/pub/rhn-org-trusted-ssl-cert-1.0-1.noarch.rpm
- 以您的 RHN Proxy Server 或 RHN Satellite Server 來註冊系統。此步驟的指令應看似:
rhnreg_ks --activationkey mykey --serverUrl https://your-satellite-FQDN/XMLRPC
此外,以上大部分的步驟皆可併入包含了下列行列的 shell script 中(請注意,這項指令已被分為數行,以便於列印和使用 PDF,不過當使用於 shell 提示列時,請將它作為單獨的一行輸入)
wget -0 - http://your-satellite-FQDN/pub/bootstrap.sh | bash && rhnreg_ks --activation-key my_key --serverUrl https://your-satellite-FQDN/XMLRPC
在安裝程序時所產生並可供 RHN Satellite Server 與 RHN Proxy Server 使用的 bootstrap script 為這類的 script。該 script 以及產生它的 RHN Bootstrap 的相關討論位於 章 5, 使用 RHN Bootstrap 中。
警告
執行 Red Hat Enterprise Linux 2.1 與版本 8.0 之前的 Red Hat Linux 的系統可能會在使用啟動金鑰來從
rhn_register
將 SSL 認證設定遷移至 up2date
時發生問題。因此,這些系統上的 SSL 認證資訊必須被手動式地設置。其它所有的設定(例如伺服器的 URL)都能被正常地傳送。
2.2.2. up2date --configure
選項
包含在 Red Hat Enterprise Linux 3 和 4 中的 Red Hat Update Agent 提供了用來配置各種設定的介面。若要查看這些設定的完整清單,請參閱
up2date
的 man page(在指令列上輸入 man up2date
)。
若要重新配置 Red Hat Update Agent,請以 root 身份來提供下列指令:
up2date --configure
您會看見一個提供了各種可被重配置的設定的對話窗格。請在
選擇欲使用的 Red Hat 網路伺服器
下的「一般」分頁中,將預設值更換為 RHN Satellite Server 或 RHN Proxy Server 的完整網域名稱(FQDN),例如 https://your_proxy_or_sat.your_domain.com/XMLRPC
。請保留最後的 /XMLRPC
。當完成之後,請按下「確定」。
圖形 2.1. Red Hat Update Agent GUI 配置
請確認您正確地輸入了您 RHN Satellite Server 或 RHN Proxy Server 的網域名稱。輸入錯誤的區域或未填入欄位,皆有可能會造成
up2date --configure
無法啟動。不過,此問題可透過編輯 up2date
配置檔案中的值來解決。若要取得更詳細的指南,請參閱 節 2.2.3, “手動式地更新配置檔案”。
警告
執行 Red Hat Enterprise Linux 3 或 4 的系統含有內建於 Red Hat Update Agent 之中的註冊功能,因此請勿安裝 Red Hat Network Registration Client。Red Hat Enterprise Linux 5 上的系統不使用
up2date
,它們需要透過使用 rhn_register
來將系統註冊至 RHN 或衛星伺服器,並使用 yum
和 pup
來更新它們的套件。
2.2.3. 手動式地更新配置檔案
除了在先前部份中所描述到的 GUI 介面之外,使用者亦可透過編輯應用程式的配置檔案來重新配置 Red Hat Update Agent。
若要在連結至 RHN Proxy Server 或 RHN Satellite Server 的客戶端系統上重新配置 Red Hat Update Agent,請(以 root 身份)編輯
/etc/sysconfig/rhn/up2date
配置檔案中的 serverURL
與 noSSLServerURL
的值。請將預設的 Red Hat Network URL 更換為 RHN Proxy Server 或 RHN Satellite Server 的完整網域名稱(FQDN)。例如:
serverURL[comment]=Remote server URL serverURL=https://your_primary.your_domain.com/XMLRPC noSSLServerURL[comment]=Remote server URL without SSL noSSLServerURL=http://your_primary.your_domain.com/XMLRPC
警告
/etc/sysconfig/rhn/up2date
之中的 httpProxy
設定並不代表 RHN Proxy Server。它是拿來為客戶端配置額外的 HTTP proxy 用的。若 RHN Proxy Server 存在的話,httpProxy
設定就必須被保留為空白(不設為任何的值)。
2.2.4. 實施伺服器容錯移轉
從
up2date-4.2.38
開始,Red Hat Update Agent 能被配置來從一系列的 RHN 伺服器搜尋更新。這對於在您的主要 RHN Proxy Server 或 RHN Satellite Server 可能離線並需進行持久性固定更新的情況下相當有幫助。
若要使用此功能,請先確認您是否執行正確的
up2date
版本。接著請(以 root 身份)手動式地將次要伺服器新增至 /etc/sysconfig/rhn/up2date
配置檔案中的 serverURL
與 noSSLServerURL
設定中。請在緊接著主要伺服器的位置為 Proxy 或衛星伺服器新增完整的網域名稱(FQDN),並以分號(;)區隔開來。就像是:
serverURL[comment]=Remote server URL serverURL=https://your_primary.your_domain.com/XMLRPC; https://your_secondary.your_domain.com/XMLRPC; noSSLServerURL[comment]=Remote server URL without SSL noSSLServerURL=http://your_primary.your_domain.com/XMLRPC; https://your_secondary.your_domain.com/XMLRPC;
這裡提供了嘗試連結至伺服器的順序。您能夠依照您的喜好加入任何數量的伺服器。您也能將中央 RHN 伺服器列出。這是合理的,不過卻是只有在客戶端系統能夠連結至網路的情況下。
2.3. 套件更新程式
Red Hat Enterprise Linux 5 包含了一個執行於圖形化桌面面板上的程式,該程式會定時地從 RHN 或衛星伺服器檢查更新,並且當有可用更新時便會告知用戶。
圖形 2.2. 套件更新程式
位於桌面面板通知匣中的套件更新程式(Package Updater Applet)會定時地檢查可用的更新。該程式也能讓您透過點選通知圖像並由下列動作中篩選一些欲進行的套件維護工作:
- 刷新 — 檢查 RHN 或衛星伺服器來查看是否有可用更新
- 檢視更新 — 啟動套件更新程式,如此一來您便能以更詳細地方式來看見所有可用更新並按照您的需求配置這些更新
- 套用更新 — 下載和安裝所有已更新套件。
- 離開 — 關閉程式
2.4. 以衛星伺服器來配置 Red Hat Network Alert Notification Tool
Red Hat Network Alert Notification Tool(您 Red Hat Enterprise Linux 3 或 4 桌面面板中的圓形圖像)能在執行 Red Hat Enterprise Linux 3 或更新版本的系統上被設定,這能幫助您辨識您 RHN Satellite Server 上的自訂頻道的可用更新。您必須確認 RHN Satellite Server 已經過配置來支援此功能。(RHN Proxy Server 能在不修改客戶端或伺服器的情況下支援 applet。)設置 Red Hat Network Alert Notification Tool 的步驟如下:
- 請確認您的 RHN Satellite Server 是版本 3.4 或更新版本並且您已在衛星伺服器上安裝了
rhns-applet
套件。以 3.4 或更新版本來講,該套件能在 RHN 衛星伺服器軟體頻道中找到。 - 請以
up2date
或透過 Red Hat Network 工具軟體頻道來檢索rhn-applet-actions
套件。請透過 Red Hat Network Alert Notification Tool 來在所有 Red Hat Enterprise Linux 3 上安裝此套件並通知新客戶端系統自訂的更新。客戶端系統必須被授予 Management 或 Provisioning 服務層級的權利。 - 請由衛星伺服器版本的 RHN 網站中進入各個系統的「系統詳情」頁面,並按下「RHN Applet」部份中的連結,來將 Red Hat Network Alert Notification Tool 重定向至衛星伺服器。
下次 applet 被啟動時,它便會套用它的新配置並連結至 RHN Satellite Server 來取得更新。
章 3. SSL 基礎結構
對於 Red Hat Network 的客戶來說,安全性上的顧慮是最為重要的。Red Hat Network 的其中一個強項就是它能透過 Secure Sockets Layer(SSL)來處理每一個請求。若要保持這種層級的安全性,將 Red Hat Network 安裝在他們基礎結構中的客戶就必須產生自訂的 SSL 金鑰與認證。
SSL 金鑰與認證的手動式建立與建置有時相當複雜。RHN Proxy Server 與 RHN Satellite Server 兩者都允許您在安裝期間基於您自己的私密憑證機構(CA)來建立您自己的 SSL 金鑰與認證。另外還有個為此原因存在的另一個指令列工具程式,RHN SSL Maintenance Tool。接下來,無論如何這些金鑰與認證都必須被建置至您所管理的基礎結構之中的所有系統。在很多情況下,這些 SSL 金鑰與認證的建置都會自動地為您完成。本章節描述了一些處理所有這些作業的有效方式。
請注意,本章節並不會深度去解釋 SSL。RHN SSL Maintenance Tool 是被用來隱藏大部分包含在設定與維護此公共金鑰基礎結構(public-key infrastructure,PKI)之中的複雜性所設計的。如欲取得更多資訊,請至各大書局參考相關書籍。
3.1. SSL 的詳細介紹
SSL(或 Secure Sockets Layer)是個啟用用來安全傳輸資訊的客戶端伺服器應用程式的通訊協定。SSL 使用了一種公用與私密金鑰配對的系統來為客戶端與伺服器之間所傳輸的通訊加密。公共認證能被存取,私密金鑰則必須被保密。此系統其實就是以私密金鑰與其配對的公共認證之間的精確數學關係(數位簽章)來運作的。信任就是透過此關係來聯繫的。
注意
在此文件中我們從頭到尾都會提到 SSL 私密金鑰以及公用認證。技術上來講,兩者都能被歸類為金鑰(公用與私密金鑰)。不過這是個常規,通常當我們談到 SSL 時,都會將 SSL 金鑰配對(或金鑰組)公用的另一半歸類為 SSL 公用認證。
一個組織的 SSL 基礎結構一般都是以這些 SSL 金鑰與認證所建立而成的:
- 憑證機構(CA)SSL 私密金鑰以及公用認證 — 一個組織一般來講都只會產生一組。公用認證會被它的私密金鑰進行數位簽章。公用認證會被發佈至每部系統上。
- 網路伺服器 SSL 私密金鑰以及公用認證 — 一個應用程式伺服器一組。此公用認證會由它的私密金鑰與 CA SSL 私密金鑰進行簽章。我們通常會將網站伺服器的金鑰歸類為金鑰組;這是因為有個媒介的 SSL 認證請求會被產生。該作用的詳情對目前的討論範圍來講並不重要。這三者都會被建置至一個 RHN 伺服器。
範例:若您擁有一個 RHN Satellite Server 以及五個 RHN Proxy Server,您將會產生一個 CA SSL 金鑰配對以及六個網站伺服器 SSL 金鑰組。CA SSL 公用認證會被發佈至所有系統並被所有客戶端用來建立一個連至他們個別上游伺服器的連結。所有伺服器都擁有自己的 SSL 金鑰組,此金鑰組會特定性地和該伺服器的主機名稱綁在一起,並且此 SSL 金鑰組則能透過使用它自己的 SSL 私密金鑰以及 CA SSL 私密金鑰的組合來產生。這在網站伺服器的 SSL 公用認證與 CA SSL 金鑰配對和伺服器的私密金鑰之間建立了一個數位化驗證的關聯。網站伺服器的金鑰組不可與其它網站伺服器共享。
重要
此系統最重要的部份就是 CA SSL 金鑰配對。透過此私密金鑰與公用認證,系統管理員能夠重新產生任何網站伺服器的 SSL 金鑰組。此 CA SSL 金鑰配對必須受到保密。我們強烈建議一旦伺服器的 RHN 基礎結構被完整設定好並開始運作後,您應將由此工具與 / 或安裝程式所產生的 SSL 建置目錄保存到其它媒介上、寫下 CA 密碼,並將該媒介與密碼存放在安全的地方。
3.2. RHN SSL Maintenance Tool
Red Hat Network 提供了一個方便於管理您安全性基礎結構的指令列工具:RHN SSL Maintenance Tool,一般以它的指令
rhn-ssl-tool
來識別。此工具為 rhns-certs-tools
套件的一部分。此套件能在最新的 RHN Proxy Server 與 RHN Satellite Server(以及 RHN Satellite Server ISO)的軟體頻道中找到。RHN SSL Maintenance Tool 能讓您產生您自己的憑證機構 SSL 金鑰配對以及網站伺服器 SSL 金鑰組(有時又稱為金鑰配對)。
此工具只是個建置工具。它能產生所有必要的 SSL 金鑰與認證。它也會將所有檔案彙整為 RPM 格式,以便快速發佈與安裝在所有客戶端機器上,然而它卻不會建置它們,因為這是系統管理員所負責的範圍,或在許多情況下則是由 RHN Satellite Server 自動化完成的。
注意
rhns-certs-tools
包含著 rhn-ssl-tool
,它能被以最低需求安裝並在目前任何的 Red Hat Enterprise Linux 系統上執行。這有助於方便系統管理員從他們的工作站或是其它除了他們的 RHN 伺服器以外的系統來管理他們的 SSL 基礎結構。
此工具會需要在下列情況下使用到:
- 當更新您的 CA 公共認證時 — 非常罕見。
- 當安裝一個版本 3.6 或更新的 RHN Proxy Server,並且該 RHN Proxy Server 連結至中央 RHN 伺服器為它的頂層服務時 — 被 host 的服務基於安全性考量,無法作為您 CA SSL 金鑰與認證(對於您的組織來說是私密的)的貯藏庫。
- 當重新配置您的 RHN 基礎結構使其在先前未使用到 SSL 的部份中使用 SSL。
- 當在您的 RHN 基礎結構中新增版本 3.6 之前的 RHN Proxy Server 的時候。
- 當新增多重 RHN Satellite Server 至您的 RHN 基礎結構時 — 如欲取得相關指南,請詢問 Red Hat 的服務人員。
此工具不會需要在下列情況下使用到:
- 安裝 RHN Satellite Server 的期間 — 所有的 SSL 設定都會在安裝程序進行的期間被設置。SSL 金鑰與認證會自動地被建立和建置。
- 當安裝版本 3.6 或更新版本的 RHN Proxy Server,並且當連結至 3.6 或更新版本的 RHN Satellite Server 作為它的頂層服務的時候 — RHN Satellite Server 包含配置、建立和建置 RHN Proxy Server 的 SSL 金鑰與認證時所需的所有 SSL 資訊。
RHN Satellite Server 與 RHN Proxy Server 兩者的安裝程序確保 CA SSL 公用認證會被建置至各個伺服器上的
/pub
目錄中。此公用認證會被客戶端系統使用來連結至 RHN 伺服器。欲取得更多資訊,請參閱 節 3.3, “將 CA SSL 公用認證建置至客戶端”。
簡單地來說,若您組織的 RHN 基礎結構建置了最新版本的 RHN Satellite Server 為它的頂層服務,您很可能就不需要使用到此工具了。除此之外,請熟悉它的使用方法。
3.2.1. SSL 產生上的解說
使用 RHN SSL Maintenance Tool 的主要益處就是它的安全性、靈活性以及共通性。安全性是透過為各個 RHN 伺服器建立獨特的網站伺服器 SSL 金鑰與認證來達成的,並且它們全都被一個您組織所建立的單獨憑證機構 SSL 金鑰配對簽章了。靈活性則是由此工具能夠在任何安裝了
rhns-certs-tools
套件上的機器運作的能力所提供的。而共通性則是存在一個能被儲存在任何安全位置的建置架構中,並在需要時再進行安裝。
此外,若您基礎結構的頂層 RHN 伺服器是最新的 RHN Satellite Server 的話,您最多可能只需要將您的
ssl-build
樹由一個外儲存器復原至 /root
目錄並利用 RHN Satellite Server 網站中所提供的配置工具。
若要將 RHN SSL Maintenance Tool 物盡其用的話,請依照順序來完成下列高層作業。若想取得您需要的其它詳情,請參閱剩下的部份:
- 請將
rhns-certs-tools
套件安裝在您組織中的一部系統上,可能(或並不一定需要)是 RHN Satellite Server 或 RHN Proxy Server。 - 請為您的組織建立一組單獨的憑證機構 SSL 金鑰配對並將最後的 RPM 安裝或公用認證安裝至所有客戶端系統上。
- 請為各個需要被建置的代理主機與衛星伺服器建立一個網站伺服器 SSL 金鑰組,將最後的 RPM 安裝在 RHN 伺服器上,並在之後重新啟動
httpd
服務:/sbin/service httpd restart
- 請儲存 SSL build tree(建置目錄樹) — 包含著主要的建置目錄以及所有的子目錄與檔案 — 將它儲存至卸除式媒介,例如磁碟片。(磁碟大小的需求並不重要。)
- 請驗證並將該資料存放在安全的位置上,例如在 Proxy 或是衛星伺服器安裝指南的其它需求部份中所描述的備份詳情。
- 記錄並保存 CA 密碼以便日後使用。
- 礙於安全性上的考量,請將建置目錄樹由建置系統刪除掉,不過請先等到 RHN 基礎結構完全就位並經過配置。
- 當需要其它的網站伺服器 SSL 金鑰組時,請復原一部執行 RHN SSL Maintenance Tool 的系統上的建置樹,並重複步驟 3 到 7。
3.2.2. RHN SSL Maintenance Tool 選項
RHN SSL Maintenance Tool 提供了大量用來產生您憑證機構 SSL 金鑰配對與管理您的伺服器 SSL 認證和金鑰的指令列選項。此工具基本上提供了三個指令列選項協助清單:
rhn-ssl-tool --help
(一般)、rhn-ssl-tool --gen-ca --help
(憑證機構)以及 rhn-ssl-tool --gen-server --help
(網站伺服器)。rhn-ssl-tool 的說明頁面非常地詳細並能隨時協助您:man rhn-ssl-tool
。
下列的兩個表格將選項依照它們的作業來分解(CA 或是網站伺服器 SSL 金鑰組的產生)。
這些選項必須包含著前導的
--gen-ca
引數:
表格 3.1. SSL 憑證機構(CA)選項(rhn-ssl-tool --gen-ca --help
)
選項 | 描述 |
---|---|
--gen-ca | 產生一個憑證機構(CA)金鑰配對與公用 RPM。這必須和此表格中剩下的任何選項一起發佈。 |
-h 、--help | 顯示協助畫面以及一列特別用來產生與管理憑證機構的基本選項清單。 |
-f 、--force | 強制性地建立一個新的 CA 私密金鑰與 / 或公用認證。 |
-p= 、--password=密碼 | CA 密碼。若您沒輸入它的話,系統將會提示您。請將它保存在安全的地方。 |
-d= , --dir=建立目錄 | 大部分指令都需要 — 認證與 RPM 所被建置的目錄。預設值為 ./ssl-build 。 |
--ca-key=FILENAME | CA 私密金鑰檔案名稱。預設值為 RHN-ORG-PRIVATE-SSL-KEY 。 |
--ca-cert=FILENAME | CA 公用認證檔案名稱。預設值為 RHN-ORG-TRUSTED-SSL-CERT 。 |
--cert-expiration=CA_CERT_EXPIRE | 公用 CA 認證的有效日期。預設值為跨時代(例如 Y2K 或是 01-18-2038)前一天之前的天數。 |
--set-country=COUNTRY_CODE | 兩個字母的國碼。預設值為 US。 |
--set-state=STATE_OR_PROVINCE | CA 所屬的省或州。預設值為 ''。 |
--set-city=CITY_OR_LOCALITY | 城市或地區。預設值為 ''。 |
--set-org=ORGANIZATION | 公司或組織,例如 Red Hat。預設值為 Example Corp. Inc。 |
--set-org-unit=SET_ORG_UNIT | 組織單位,例如 RHN。預設值為 ''。 |
--set-common-name=HOSTNAME | 並非特別為 CA 所設。 — 一般名稱。 |
--set-email=EMAIL | 並非特別為 CA 所設。 — 電子郵件地址。 |
--rpm-packager=PACKAGER | 產生 RPM 的套件封裝者,例如「RHN Admin(rhn-admin@example.com)」。 |
--rpm-vendor=VENDOR | 產生的 RPM 的供應商,例如「IS/IT Example Corp」。 |
-v 、--verbose | 顯示詳細冗長的訊息。可累積使用 — 增加愈多「v」訊息就會更加詳細。 |
--ca-cert-rpm=CA_CERT_RPM | 很少會改變 — 儲藏 CA 認證(基礎檔案名稱,非 filename-version-release.noarch.rpm)的 RPM 名稱。 |
--key-only | 很少使用到 — 只會產生一個 CA 私密金鑰。如欲取得更多相關資訊請參閱 --gen-ca --key-only --help 。 |
--cert-only | 很少使用到 — 只會產生一個 CA 公用認證。如欲取得更多相關資訊請參閱 --gen-ca --cert-only --help 。 |
--rpm-only | 很少使用到 — 只會產生用來進行建置的 RPM。如欲取得更多相關資訊請參閱 --gen-ca --rpm-only --help 。 |
--no-rpm | 很少使用到 — 只會進行除了 RPM 的產生步驟之外的所有 CA 相關步驟。 |
下列選項必須加入前導的
--gen-server
引數:
表格 3.2. SSL 網站伺服器選項(rhn-ssl-tool --gen-server --help
)
選項 | 描述 |
---|---|
--gen-server | 產生網站伺服器的 SSL 金鑰組、RPM 與 tar 歸檔。這必須和此表格中剩下的任何選項一起發佈。 |
-h 、--help | 顯示協助畫面以及一列特別用來產生與管理伺服器金鑰配對的基本選項清單。 |
-p= 、--password=密碼 | CA 密碼。若您沒輸入它的話,系統將會提示您。請將它保存在安全的地方。 |
-d= , --dir=建立目錄 | 大部分指令都需要 — 認證與 RPM 所被建置的目錄。預設值為 ./ssl-build 。 |
--server-key=FILENAME | 網站伺服器的 SSL 私密金鑰檔案名稱。預設值為 server.key 。 |
--server-cert-req=FILENAME | 網站伺服器的 SSL 認證請求檔案名稱。預設值為 server.csr 。 |
--server-cert=FILENAME | 網站伺服器的 SSL 認證檔案名稱。預設值為 server.crt 。 |
--startdate=YYMMDDHHMMSSZ | 伺服器認證有效性起始日期的範例格式:年、月、日、小時、分鐘、秒(一個值含有兩個字元)。Z 代表 Zulu,並且是必要的。預設值為產生前的一個禮拜。 |
--cert-expiration=SERVER_CERT_EXPIRE | 伺服器認證的有效期限。預設值為跨時代(例如 Y2K 或是 01-18-2038)前一天之前的天數。 |
--set-country=COUNTRY_CODE | 兩個字母的國碼。預設值為 US。 |
--set-state=STATE_OR_PROVINCE | 省或州。預設值為北卡羅萊納州。 |
--set-city=CITY_OR_LOCALITY | 城市或地區。預設值為萊禮。 |
--set-org=ORGANIZATION | 公司或組織,例如 Red Hat。預設值為「Example Corp. Inc.」。 |
--set-org-unit=SET_ORG_UNIT | 組織單位,例如 RHN。預設值為「單位」。 |
--set-hostname=HOSTNAME | 取得金鑰的 RHN 伺服器主機名稱。預設值會被動態式地設為建置機器的主機名稱。 |
--set-email=EMAIL | 認證聯絡人的電子郵件地址。預設值為 admin@example.corp。 |
--rpm-packager=PACKAGER | 產生 RPM 的套件封裝者,例如「RHN Admin(rhn-admin@example.com)」。 |
--rpm-vendor=VENDOR | 產生的 RPM 的供應商,例如「IS/IT Example Corp」。 |
-v 、--verbose | 顯示詳細冗長的訊息。可累積使用 — 增加愈多「v」訊息就會更加詳細。 |
--key-only | 很少用到 — 只產生伺服器私密金鑰。如欲取得更多相關訊息請參閱 --gen-server --key-only --help 。 |
--cert-req-only | 很少用到 — 只產生伺服器認證請求。如欲取得更多相關訊息請參閱 --gen-server --cert-req-only --help 。 |
--cert-only | 很少用到 — 只產生伺服器認證。如欲取得更多相關訊息請參閱 --gen-server --cert-only --help 。 |
--rpm-only | 很少用到 — 只產生用來建置的 RPM。如欲取得更多相關訊息請參閱 --gen-server --rpm-only --help 。 |
--no-rpm | 很少用到 — 進行所有除了 RPM 產生之外的所有伺服器相關步驟。 |
--server-rpm=SERVER_RPM | 很少會改變 — 儲藏網站伺服器的 SSL 金鑰組(基礎檔案名稱,非 filename-version-release.noarch.rpm)的 RPM 名稱。 |
--server-tar=SERVER_TAR | 很少會改變 — 只被 host 的 RHN Proxy Server 安裝例行程序(基礎檔案名稱,非 filename-version-release.tar)使用的網站伺服器 SSL 金鑰組與 CA 公用認證的 .tar 歸檔名稱。 |
3.2.3. 產生憑證機構 SSL 金鑰配對
在建立網站伺服器所需的 SSL 金鑰組之前,您必須產生一個憑證機構(CA)SSL 金鑰配對。CA SSL 公用認證會被發佈至衛星伺服器或 Proxy 的客戶端系統上。RHN SSL Maintenance Tool 允許您按需求產生一組 CA SSL 金鑰配對並將它重複使用來進行所有後續的 RHN 伺服器建置。
建置程序會自動地建立金鑰配對與公用 RPM 來發佈給客戶端。所有的 CA 元件到最後都會位於指令列上所指定的建置目錄中,也就是
/root/ssl-build
(較舊的衛星伺服器與 Proxy 則為 /etc/sysconfig/rhn/ssl
)。若要產生一組 CA SSL 金鑰配對,請輸入一組類似下列的指令:
rhn-ssl-tool --gen-ca --password=MY_CA_PASSWORD --dir="/root/ssl-build" \ --set-state="North Carolina" --set-city="Raleigh" --set-org="Example Inc." \ --set-org-unit="SSL CA Unit"
請將範例值改成與您組織相應的值。這會使得下列相應的檔案最後位於指定的建置目錄之中:
RHN-ORG-PRIVATE-SSL-KEY
— CA SSL 私密金鑰RHN-ORG-TRUSTED-SSL-CERT
— CA SSL 公用認證rhn-org-trusted-ssl-cert-VER-REL.noarch.rpm
— 準備好發佈至客戶端系統的 RPM。它包含著 CA SSL 公用認證(上述)並將它安裝至此位置中:/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
rhn-ca-openssl.cnf
— SSL CA 配置檔案latest.txt
— 總是將相關檔案的最新版本列出。
一旦完成後,您便能將 RPM 發佈至客戶端系統上。請參閱 節 3.3, “將 CA SSL 公用認證建置至客戶端”。
3.2.4. 產生網站伺服器 SSL 金鑰組
雖然您必須擁有一對已產生了的 CA SSL 金鑰配對,不過您較有可能較常產生網站伺服器 SSL 金鑰組,特別是當多於一個 Proxy 或衛星伺服器被建置時。請注意,各個伺服器的
--set-hostname
值都不同。換句話說,每個不同的 RHN 伺服器名稱就需要產生一組不同的 SSL 金鑰與認證。
伺服器認證建置的程序和 CA SSL 金鑰配對產生的程序相似,除了:所有的伺服器元件最後都會位於反應建置系統的機器名稱的建置目錄之子目錄中,例如
/root/ssl-build/MACHINE_NAME
。若要產生伺服器認證,請輸入類似下列的指令:
rhn-ssl-tool --gen-server --password=MY_CA_PASSWORD --dir="/root/ssl-build" \ --set-state="North Carolina" --set-city="Raleigh" --set-org="Example Inc." \ --set-org-unit="IS/IT" --set-email="admin@example.com" \ --set-hostname="rhnbox1.example.com
請將範例值更換為與您組織相應的值。這會使得下列相關檔案最後會位於建置目錄的機器特屬子目錄中:
server.key
— 網站伺服器的 SSL 私密伺服器金鑰server.csr
— 網站伺服器的 SSL 認證請求server.crt
— 網站伺服器的 SSL 公用認證rhn-org-httpd-ssl-key-pair-MACHINE_NAME-VER-REL.noarch.rpm
— 準備發佈至 RHN 伺服器的 RPM。和它關聯的 src.rpm 檔案也會被產生。此 RPM 包含著上述的三個檔案,並且會將它們安裝至下列位置中:/etc/httpd/conf/ssl.key/server.key
/etc/httpd/conf/ssl.csr/server.csr
/etc/httpd/conf/ssl.crt/server.crt
- rhn-server-openssl.cnf — 網站伺服器的 SSL 配置檔案
latest.txt
— 總是將相關檔案的最新版本列出。
一旦完成之後,您便能將 RPM 發佈並安裝在它相應的 RHN 伺服器上。請注意,
httpd
服務必須在安裝過後重新啟動:
/sbin/service httpd restart
3.3. 將 CA SSL 公用認證建置至客戶端
RHN Proxy Server 與 RHN Satellite Server 這兩者的安裝程序都能透過產生 CA SSL 公用認證與 RPM 來使得客戶端建置變得更為容易。這些安裝程序能透過將其中一個或兩者的副本放入 RHN 伺服器的
/var/www/html/pub/
目錄中來使這些認證與 RPM能被共享。
此公用目錄能透過經由任何網站瀏覽器來輕易地檢查:http://proxy-or-sat.example.com/pub/。
在該目錄中的 CA SSL 公用認證能透過使用
wget
或是 curl
來被下載至客戶端系統。比方說:
curl -O http://proxy-or-sat.example.com/pub/RHN-ORG-TRUSTED-SSL-CERT wget http://proxy-or-sat.example.com/pub/RHN-ORG-TRUSTED-SSL-CERT
另外,若 CA SSL 公用認證 RPM 位於
/pub
目錄之中,它就能被直接安裝在客戶端系統上:
rpm -Uvh \ http://proxy-or-sat.example.com/pub/rhn-org-trusted-ssl-cert-VER-REL.noarch.rpm
在執行這些指令之前確認認證或 RPM 的確切名稱。
3.4. 配置客戶端系統
一旦 RPM 或是自然的認證被建置至一部客戶端系統後,該系統的管理員就必須更改 Red Hat Update Agent 與 Red Hat Network Registration Client(若有必要的話)的配置檔案才能使用新的 CA SSL 公用認證檔案並連結至適當的 RHN Proxy Server 或 RHN Satellite Server。該 CA SSL 公用認證一般所被接受的位置位於
/usr/share/rhn
目錄中。
RHN Proxy Server 與 RHN Satellite Server 這兩者就預設值,皆安裝了 RHN Bootstrap,這能大量減少這些重複的步驟,並簡化註冊與配置客戶端系統的程序。欲取得更詳細的資訊,請參閱 章 5, 使用 RHN Bootstrap。
章 4. 匯入自訂的 GPG 金鑰
對於打算建立並安全地發佈他們自己的 RPM 的客戶來說,我們強烈建議所有自訂的 RPM 都使用 GNU Privacy Guard(GPG)來簽章。產生 GPG 金鑰以及建立 GPG 簽章套件的相關討論涵蓋在 Red Hat Network 頻道管理指南中。
一旦套件經過簽章過後,公鑰就必須佈署在所有匯入了這些 RPM 的系統上。這項工作含有兩個步驟:首先是為公鑰建立一個中央位置,如此一來客戶端便能對它進行檢索。第二個步驟則是將該金鑰新增至各個系統的本地 GPG 鑰匙圈。
第一步很普遍,並且可透過使用建置 RHN 客戶端應用程式時所,被建議的網站方式來處理。(請參考 節 2.1, “佈署最新的 Red Hat Network 客戶端 RPM”。)若要如此,請在網站伺服器上建立一個公用目錄,並將 GPG 公鑰簽章放置在此目錄中:
cp /some/path/YOUR-RPM-GPG-KEY /var/www/html/pub/
接著,金鑰便能由客戶端系統透過使用 Wget 來下載:
wget -O- -q http://your_proxy_or_sat.your_domain.com/pub/YOUR-RPM-GPG-KEY
-O-
選項會將結果送至標準輸出,-q
則會將 Wget 設為以沉默模式執行。請記得使用您金鑰的檔案名稱來取代 YOUR-RPM-GPG-KEY 這個值。
一旦金鑰在客戶端檔案系統上可用之後,請將它匯入本地 GPG 鑰匙圈之中。不同的作業系統將需要使用不同的方式。
若使用 Red Hat Enterprise Linux 3 或更新的版本,請使用下列指令:
rpm --import /path/to/YOUR-RPM-GPG-KEY
若使用 Red Hat Enterprise Linux 2.1,請使用下列指令:
gpg $(up2date --gpg-flags) --import /path/to/YOUR-RPM-GPG-KEY
一旦 GPG 金鑰成功地被新增至客戶端之後,系統應該就可認證簽署了相應金鑰的自訂 RPM。
章 5. 使用 RHN Bootstrap
Red Hat Network 提供了一個能將先前章節中所談到的大部分手動式重配置自動化的工具:RHN Bootstrap。此工具在 RHN Satellite Server 安裝程式中扮演著整合的角色,並使 bootstrap script 在安裝時能夠被產生。
RHN Proxy Server 客戶端以及擁有更新的衛星伺服器設定的客戶端需要一個能被獨立使用的 bootstrap 工具。透過
/usr/bin/rhn-bootstrap
這項指令來引動的 RHN Bootstrap 能夠滿足此需求,並且就預設值來講會被安裝在 RHN Satellite Server 與 RHN Proxy Server 上。
若正確使用的話,此工具所產生的 script 便能由任何客戶端系統來執行並進行下列作業:
- 將客戶端應用程式重定向至 RHN Proxy 或衛星伺服器
- 匯入自訂的 GPG 金鑰
- 安裝 SSL 認證
- 透過啟動金鑰的協助來將系統註冊至 RHN 以及特定的系統群組與頻道
- 進行各種配置後的作業,包括更新套件、重新啟動,並針對 RHN 配置進行變更。
不過,客戶端必須注意使用 script 來進行配置的一些風險。像是 SSL 認證的安全性工具會被 script 安裝;因為如此,所以它們還未存在系統上,並且無法被用來處理業務。這會導致某些人可能能夠扮演衛星伺服器並傳輸危險的資料。不過此問題還是有辦法避免的,因為實際上所有的衛星伺服器以及客戶端系統都是在客戶端防火牆之後進行作業的,因此,它們被限制接受任何外部所傳輸的資料。因為註冊是透過 SSL 來實施的因此會受到保護。
bootstrap.sh
這個 bootstrap script 會被自動地放置在 RHN 伺服器的 /var/www/html/pub/bootstrap/
目錄中。在此,它能被下載並在所有的客戶端系統上執行。請注意,就如接下來的部份所示,有些準備和產生後的編輯是必要的。欲取得此工具的完整選項之清單,請參閱 節 5.4, “RHN Bootstrap 選項”。最後,請參閱 附錄 A, 範例 Bootstrap Script,以查看 script 的範本。
5.1. 準備
因為 RHN Bootstrap(
rhn-bootstrap
)取決於 Red Hat Network 設備的其它元件以便正確配置客戶端系統,因此這些元件必須在 script 的產生之前被準備好。下列清單顯示了建議的初始措施:
- 產生會被 script 呼叫的啟動金鑰。啟動金鑰能被用來註冊 Red Hat Enterprise Linux 系統,使它們達到 RHN 服務層級,並將它們訂閱至特定頻道與系統群組(這些動作將一次完成)。請注意,您必須擁有 Management 權利才能使用啟動金鑰,若一次需要多重啟動金鑰的話,您則需要 Provisioning 權利。您能透過 RHN 網站(Proxy 的中央 RHN 伺服器或是衛星伺服器的完整網域名稱)的「系統」類別中的「啟動金鑰」網頁來產生啟動金鑰。如欲取得建立與使用上的指南,請參閱 RHN 參考指南中的 Red Hat Update Agent 與 RHN 相關章節。
- Red Hat 建議您的 RPM 由自訂的 GNU 隱私守衛(GPG)金鑰簽章。請使此金鑰有效化,以便能夠由 script 來參照它。請按照 RHN 頻道管理指南中所描述的程序來產生金鑰,並將該金鑰按照 章 4, 匯入自訂的 GPG 金鑰 來放置在 RHN 伺服器的
/var/www/html/pub/
目錄中。 - 若您希望使用 script 來建置您的 CA SSL 公鑰認證,請使包含著此憑證或套件(RPM)的認證在該 RHN 伺服器上可使用,並在 script 產生時,透過
--ssl-cert
選項來將它包含在內。欲取得詳細資訊,請參閱 章 3, SSL 基礎結構。 - 請將數值準備好,以建立一個或更多個 bootstrap script,這取決於需要被重新配置的系統之類型。因為 RHN Bootstrap 提供了完整的重新配置選項,因此您可使用它來產生不同的 bootstrap script 以便與各種不同類型的系統相容。比方說,
bootstrap-web-servers.sh
可被用來重新配置您的網站伺服器,bootstrap-app-servers.sh
則能處理應用程式伺服器。欲取得完整清單,請參閱 節 5.4, “RHN Bootstrap 選項”。
5.2. 產生
現在,所有必要的元件都已在適當的位置上了,您能夠使用 RHN Bootstrap 來產生您需要的 script。請以 root 身份登入您的 RHN Satellite Server 或是 RHN Proxy Server 並輸入
rhn-bootstrap
這項指令以及您想要的選項與數值。若無給予任何選項的話,就會有個 bootstrap.sh
檔案建立在包含著由伺服器所派生的基本值的 bootstrap/
子目錄中,這些基本值包括主機名稱、SSL 認證、若存在的話,SSL 與 GPG 設定,以及一個 client-config-overrides.txt
檔案的呼叫。
至少,Red Hat 強烈建議您的 script 也可像下列一樣包含著啟動金鑰、GPG 金鑰以及進階的配置選項:
- 使用
--activation-keys
選項來包含金鑰,並考量到 節 5.1, “準備” 中所顯示的權利需求。 - 使用
--gpg-key
選項來在 script 產生時辨識金鑰路徑以及檔案名稱。要不然,請使用--no-gpg
選項來將此認證作業由客戶端系統上關閉。Red Hat 建議您持續啟用此安全性準則。 - 將
--allow-config-actions
旗標包含在 script 中以便在該 script 所及的所有客戶端系統上啟用遠端配置管理。這項功能對於同時為多重系統進行重配置相當有用。 - 將
--allow-remote-commands
旗標包含在 script 中以便啟用所有客戶端系統上的遠端 script 應用。就像配置管理一樣,此功能也能幫助多重系統進行重配置。
當您完成時,您的指令會看起來像是:
rhn-bootstrap --activation-keys KEY1,KEY2 \ --gpg-key /var/www/html/pub/MY_CORPORATE_PUBLIC_KEY \ --allow-config-actions \ --allow-remote-commands
請包含真實的金鑰名稱。欲取得完整的選項清單,請參閱 節 5.4, “RHN Bootstrap 選項”。
5.3. 使用 Script
最後,當您完成準備好要使用的 script 時,您就可以執行它了。請登入 RHN Satellite Server 或 RHN Proxy Server 然後瀏覽至
/var/www/html/pub/bootstrap/
目錄並執行下列指令,並且依照需求更改主機名稱與 script 名稱以便符合系統類型:
cat bootstrap-EDITED-NAME.sh | ssh root@CLIENT_MACHINE1 /bin/bash
有另外一個安全性較低的方法就是使用
wget
或 curl
來由各個客戶端系統檢索與執行 script。請登入各個客戶端機器並提供下列指令,然後相應地更改 script 以及主機名稱:
wget -qO - \ https://your-satellite.example.com/pub/bootstrap/bootstrap-EDITED-NAME.sh \ | /bin/bash
或使用
curl
時:
curl -Sks \ https://your-satellite.example.com/pub/bootstrap/bootstrap-EDITED-NAME.sh \ | /bin/bash
當這個 script 在各個客戶端系統上執行了以後,所有系統應該會被配置為使用 RHN 伺服器。
5.4. RHN Bootstrap 選項
RHN Bootstrap 提供了許多建立客戶端 bootstrap script 的指令列選項。雖然這些選項的描述可在下列表格中找到,不過請透過輸入
rhn-bootstrap --help
指令或是檢視它的 man page 來確認這些選項在您 RHN 伺服器上所安裝的工具版本中可使用。
表格 5.1. RHN Bootstrap 選項
選項 | 描述 |
---|---|
-h 、--help | 顯示協助畫面以及一列特屬於產生 bootstrap script 的選項。 |
--activation-keys=ACTIVATION_KEYS | 定義於 RHN 網站之中的啟動金鑰,以逗號區隔開來的多重項目並無空格 |
--overrides=OVERRIDES | 配置置換檔案名稱。預設值為 client-config-overrides.txt。 |
--script=SCRIPT | Bootstrap script 檔案名稱。預設值為 bootstrap.sh。 |
--hostname=HOSTNAME | 客戶端系統將會連結至的伺服器的完整網域名稱(FQDN)。 |
--ssl-cert=SSL_CERT | 您組織的公共 SSL 認證之路徑,這會是個套件或是個自然狀態的認證。它將會被複製至 --pub-tree 選項。"" 這個值會強制進行一個 --pub-tree 的搜尋。 |
--gpg-key=GPG_KEY | 若使用的話,這代表您組織的公共 GPG 金鑰之路徑。它將會被複製至由 --pub-tree 選項所指定的位置。 |
--http-proxy=HTTP_PROXY | 客戶端系統的 HTTP proxy 設定,格式為 hostname:port 。"" 這個值會將此設定停用。 |
--http-proxy-username=HTTP_PROXY_USERNAME | 若使用了一個認證的 HTTP proxy,請指定一組使用者名稱。"" 這個值能夠將此設定停用。 |
--http-proxy-password=HTTP_PROXY_PASSWORD | 若使用一個認證的 HTTP proxy,請指定一組密碼。 |
--allow-config-actions | 布林值;包含此選項能將系統設為允許所有透過 RHN 的配置動作。這將需要您安裝特定的 rhncfg-* 套件(可能是透過啟動金鑰)。 |
--allow-remote-commands | 布林值;包含此選項能將系統設為允許透過 RHN 所執行的任意遠端指令。這將需要您安裝特定的 rhncfg-* 套件(可能是透過啟動金鑰)。 |
--no-ssl | 不建議 - 布林值;若包含此選項的話會將 SSL 由客戶端系統上關閉。 |
--no-gpg | 不建議 - 布林值;若包含此選項的話會將客戶端系統上的 GPG 檢測關閉。 |
--no-up2date | 不建議 - 布林值;若包含此選項的話會使得 up2date 在系統被 bootstrap 之後絕不會執行。 |
--pub-tree=PUB_TREE | 不建議進行變更 - CA SSL 認證與套件落腳的公用目錄樹;bootstrap 目錄與 script。預設值為 /var/www/html/pub/ 。 |
--force | 不建議 - 布林值;包含此選項的話會強制 bootstrap script 在有緊告的情況下繼續產生。 |
-v 、--verbose | 顯示較詳細的訊息。累積的;-vvv 會產生非常詳細冗長的訊息。 |
章 6. 手動式編寫配置
請注意,本章節提供了另一個使用 RHN Bootstrap 來產生 bootstrap script 的方式。透過這些指南,您應該能夠從頭建立您自己的 bootstrap script。
所有初始的技巧皆持有一個共同點:位於中央位置的必要檔案之建置,會透過在各個客戶端上,藉由執行簡易、可編寫的指令來進行檢索與安裝。在本章節中,我們即將探索如何將所有這些點點滴滴結合在一起,以建立一個可讓您組織中的任何系統所引動的單獨 script。
當我們藉由最適當的順序,來將先前章節中的這些指令結合在一起時,我們會得到下列 script。請記住,
rhn_register
並不存在 Red Hat Enterprise Linux 3 或 4 這兩個版本上:
# First, install the latest client RPMs to the system. rpm -Uvh \ http://proxy-or-sat.example.com.com/pub/rhn_register-2.8.27-1.7.3.i386.rpm \ http://proxy-or-sat.example.com.com/pub/rhn_register-gnome-2.8.27-1.7.3.i386.rpm \ http://proxy-or-sat.example.com.com/pub/up2date-3.0.7-1.i386.rpm \ http://proxy-or-sat.example.com.com/pub/up2date-gnome-3.0.7-1.i386.rpm # Second, reconfigure the clients to talk to the correct server. perl -p -i -e 's/s/www\.rhns\.redhat\.com/proxy-or-sat\.example\.com/g' \ /etc/sysconfig/rhn/rhn_register \ /etc/sysconfig/rhn/up2date # Third, install the SSL client certificate for your company's # RHN Satellite Server or RHN Proxy Server. rpm -Uvh http://proxy-or-sat.example.com/pub/rhn-org-trusted-ssl-cert-*.noarch.rpm # Fourth, reconfigure the clients to use the new SSL certificate. perl -p -i -e 's/^sslCA/#sslCA/g;' \ /etc/sysconfig/rhn/up2date /etc/sysconfig/rhn/rhn_register echo "sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT" \ >> /etc/sysconfig/rhn/up2date echo "sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT" \ >> /etc/sysconfig/rhn/rhn_register # Fifth, download the GPG key needed to validate custom packages. wget -O - -q http://proxy-or-sat.example.com.com/pub/YOUR-RPM-GPG-KEY # Sixth, import that GPG key to your GPG keyring. rpm --import /path/to/YOUR-RPM-GPG-KEY
請記得第六步驟記載在此,因為它與執行 Red Hat Linux 3 或更新版本的系統相關。
這個 script 構成了一個乾淨並可重複的程序,它能完整地配置任何潛在的 Red Hat Network 客戶端,以便為註冊至一個 RHN Proxy Server 或 RHN Satellite Server 作準備。請記住,關鍵值(例如您 RHN 伺服器的網址、它的公用目錄以及您的真實 GPG 金鑰)必須被插入列在 script 中的佔位符之中。還有,隨著您環境的不同,您可能需要進行額外的修改。雖然此 script 可能就算逐字地使用也能運作,不過您應將它視為參考指南。
就和它的元件一樣,這個 script 能被至於中央。透過將此 script 放置在伺服器的
/pub/
目錄中、對它執行 wget -O-
,然後將輸出以管線傳輸至 shell session。您能夠藉由各個客戶端,以一項單獨的指令執行所有的 bootstrap 程序。
wget -O - http://proxy-or-sat.example.com.com/pub/bootstrap_script | bash
警告
透過網站連結來直接由管線所傳輸進來的輸入執行 shell script,明顯上含有一些固有的危險性。因此,請務必確認在此情況下的來源伺服器安全性。
之後,這項單行的指令便能在一個網路上的所有系統上引動。在此情況下,若系統管理員持有所有這些系統的 SSH 存取權限,他便能輕易重複性地透過遠端的方式來在這些系統上執行指令。這個 script 也能夠被當作是既有 kickstart script 的 %post 部份的完美附加功能。
章 7. 實作 Kickstart
很明顯的,最適合為一部系統進行配置變更的時機,即為該系統一開始建立時。對於早已有效使用 kickstart 的客戶來說,bootstrapping script 是項作為此程序的理想功能。
一旦所有的配置問題皆解決之後,系統亦可透過使用與
up2date
和 rhn_register
RPM 附加在一起的 rhnreg_ks
工具程式,來與本地的 Red Hat Network 伺服器進行註冊。此章節討論了如何正確地使用 rhnreg_ks
,以註冊系統。
rhnreg_ks
工具程式使用了啟動金鑰,來一次性地讓系統順利註冊、授予,以及訂閱特定頻道。若要取得更多有關於啟動金鑰的相關資訊,請參閱 Red Hat Network Management 參考指南的 Red Hat Update Agent 與 RHN 的網站章節。
下列註解的 kickstart 檔案,是個如何透過使用 Red Hat Network,以從頭到尾配置系統的理想範本。
# Generic 7.2 kickstart for laptops in the Widget Corporation (widgetco) # Standard kickstart options for a network-based install. For an # explanation of these options, consult the Red Hat Linux Customization # Guide. lang en_US langsupport --default en_US en_US keyboard defkeymap network --bootproto dhcp install url --url ftp://ftp.widgetco.com/pub/redhat/linux/7.2/en/os/i386 zerombr yes clearpart --all part /boot --size 128 --fstype ext3 --ondisk hda part / --size 2048 --grow --fstype ext3 --ondisk hda part /backup --size 1024 --fstype ext3 --ondisk hda part swap --size 512 --ondisk hda bootloader --location mbr timezone America/New_York rootpw --iscrypted $1$78Jnap82Hnd0PsjnC8j3sd2Lna/Hx4. auth --useshadow --enablemd5 --krb5realm .COM --krb5kdc auth.widgetco.com \ --krb5adminserver auth.widgetco.com mouse --emulthree genericps/2 xconfig --card "S3 Savage/MX" --videoram 8192 --resolution 1024x768 \ --depth 16 --defaultdesktop=GNOME --startxonboot --noprobe \ --hsync 31.5-48.5 --vsync 40-70 reboot # Define a standard set of packages. Note: Red Hat Network client # packages are found in Base. This is quite a minimal set of packages; # your mileage may vary. %packages @ Base @ Utilities @ GNOME @ Laptop Support @ Dialup Support @ Software Development @ Graphics and Image Manipulation @ Games and Entertainment @ Sound and Multimedia Support # Now for the interesting part. %post ( # Note that we run the entire %post section as a subshell for logging. # Remember that nifty one-line command for the bootstrap script that we # went through? This is an ideal place for it. And assuming that the # script has been properly configured, it should prepare the system # fully for usage of local Red Hat Network Servers. wget -O- http://proxy-or-sat.example.com/pub/bootstrap_script | /bin/bash # The following is an example of the usage of rhnreg_ks, the kickstart # utility for rhn_register. This demonstrates the usage of the # --activationkey flag, which describes an activation key. For example, # this activation key could be set up in the Web interface to join this # system to the "Laptops" group and the local Widgetco "Laptop Software" # channel. Note that this section applies only to Proxy users, as this # step is handled by the Satellite bootstrap script. # # For more information about activation keys, consult the Red Hat Network # Management Reference Guide. /usr/sbin/rhnreg_ks --activationkey=6c933ea74b9b002f3ac7eb99619d3374 # End the subshell and capture any output to a post-install log file. ) 1>/root/post_install.log 2>&1
附錄 A. 範例 Bootstrap Script
RHN Satellite Server 安裝程式所產生的
/var/www/html/pub/bootstrap/bootstrap.sh
script,提供了將客戶端系統重新配置,以便輕易存取您 RHN 伺服器的功能。RHN Satellite Server 與 RHN Proxy Server 兩方的客戶皆能透過 RHN Bootstrap 工具來使用該 script。在您修改了 script 以便作為特定使用之後,它便能在各個客戶端機器上執行。
欲取得額外詳情,請檢視範例以及其註解(以一個 # 符號作為起始)。請根據 章 5, 使用 RHN Bootstrap 中的步驟來準備欲使用的 script。
#!/bin/bash echo "RHN Server Client bootstrap script v3.6" # This file was autogenerated. Minor manual editing of this script (and # possibly the client-config-overrides.txt file) may be necessary to complete # the bootstrap setup. Once customized, the bootstrap script can be triggered # in one of two ways (the first is preferred): # # (1) centrally, from the RHN Server via ssh (i.e., from the # RHN Server): # cd /var/www/html/pub/bootstrap/ # cat bootstrap-<edited_name>.sh | ssh root@<client-hostname> /bin/bash # # ...or... # # (2) in a decentralized manner, executed on each client, via wget or curl: # wget -qO- # https://<hostname>/pub/bootstrap/bootstrap-<edited_name>.sh \ # | /bin/bash # ...or... # curl -Sks # https://<hostname>/pub/bootstrap/bootstrap-<edited_name>.sh \ # | /bin/bash # SECURITY NOTE: # Use of these scripts via the two methods discussed is the most expedient # way to register machines to your RHN Server. Since "wget" is used # throughout the script to download various files, a "Man-in-the-middle" # attack is theoretically possible. # # The actual registration process is performed securely via SSL, so the risk # is minimized in a sense. This message merely serves as a warning. # Administrators need to appropriately weigh their concern against the # relative security of their internal network. # PROVISIONING/KICKSTART NOTE: # If provisioning a client, ensure the proper CA SSL public certificate is # configured properly in the post section of your kickstart profiles (the # RHN Satellite or hosted web user interface). # UP2DATE/RHN_REGISTER VERSIONING NOTE: # This script will not work with very old versions of up2date and # rhn_register. echo echo echo "MINOR MANUAL EDITING OF THIS FILE MAY BE REQUIRED!" echo echo "If this bootstrap script was created during the initial installation" echo "of an RHN Satellite, the ACTIVATION_KEYS, and ORG_GPG_KEY values will" echo "probably *not* be set (see below). If this is the case, please do the" echo "following:" echo " - copy this file to a name specific to its use." echo " (e.g., to bootstrap-SOME_NAME.sh - like bootstrap-web-servers.sh.)" echo " - on the website create an activation key or keys for the system(s) to" echo " be registered." echo " - edit the values of the VARIABLES below (in this script) as" echo " appropriate:" echo " - ACTIVATION_KEYS needs to reflect the activation key(s) value(s)" echo " from the website. XKEY or XKEY,YKEY" echo " - ORG_GPG_KEY needs to be set to the name of the corporate public" echo " GPG key filename (residing in /var/www/html/pub) if appropriate." echo echo "Verify that the script variable settings are correct:" echo " - CLIENT_OVERRIDES should be only set differently if a customized" echo " client-config-overrides-VER.txt file was created with a different" echo " name." echo " - ensure the value of HOSTNAME is correct." echo " - ensure the value of ORG_CA_CERT is correct." echo echo "Enable this script: comment (with #'s) this block (or, at least just" echo "the exit below)" echo exit 1 # can be edited, but probably correct (unless created during initial install): # NOTE: ACTIVATION_KEYS *must* be used to bootstrap a client machine. ACTIVATION_KEYS=insert_activation_key_here ORG_GPG_KEY=insert_org_gpg_pub_key_here # can be edited, but probably correct: CLIENT_OVERRIDES=client-config-overrides.txt HOSTNAME=your_rhn_server_host.example.com ORG_CA_CERT=RHN-ORG-TRUSTED-SSL-CERT ORG_CA_CERT_IS_RPM_YN=0 USING_SSL=1 USING_GPG=1 REGISTER_THIS_BOX=1 ALLOW_CONFIG_ACTIONS=0 ALLOW_REMOTE_COMMANDS=0 FULLY_UPDATE_THIS_BOX=1 # # ----------------------------------------------------------------------------- # DO NOT EDIT BEYOND THIS POINT ----------------------------------------------- # ----------------------------------------------------------------------------- # # an idea from Erich Morisse (of Red Hat). # use either wget *or* curl # Also check to see if the version on the # machine supports the insecure mode and format # command accordingly. if [ -x /usr/bin/wget ] ; then output=`/usr/bin/wget --no-check-certificate 2>&1` error=`echo $output | grep "unrecognized option"` if [ -z "$error" ] ; then FETCH="/usr/bin/wget -q -r -nd --no-check-certificate" else FETCH="/usr/bin/wget -q -r -nd" fi else if [ -x /usr/bin/curl ] ; then output=`/usr/bin/curl -k 2>&1` error=`echo $output | grep "is unknown"` if [ -z "$error" ] ; then FETCH="/usr/bin/curl -SksO" else FETCH="/usr/bin/curl -SsO" fi fi fi HTTP_PUB_DIRECTORY=http://${HOSTNAME}/pub HTTPS_PUB_DIRECTORY=https://${HOSTNAME}/pub if [ $USING_SSL -eq 0 ] ; then HTTPS_PUB_DIRECTORY=${HTTP_PUB_DIRECTORY} fi echo echo "UPDATING RHN_REGISTER/UP2DATE CONFIGURATION FILES" echo "-------------------------------------------------" echo "* downloading necessary files" echo " client_config_update.py..." rm -f client_config_update.py $FETCH ${HTTPS_PUB_DIRECTORY}/bootstrap/client_config_update.py echo " ${CLIENT_OVERRIDES}..." rm -f ${CLIENT_OVERRIDES} $FETCH ${HTTPS_PUB_DIRECTORY}/bootstrap/${CLIENT_OVERRIDES} if [ ! -f "client_config_update.py" ] ; then echo "ERROR: client_config_update.py was not downloaded" exit 1 fi if [ ! -f "${CLIENT_OVERRIDES}" ] ; then echo "ERROR: ${CLIENT_OVERRIDES} was not downloaded" exit 1 fi echo "* running the update scripts" if [ -f "/etc/sysconfig/rhn/rhn_register" ] ; then echo " . rhn_register config file" /usr/bin/python -u client_config_update.py /etc/sysconfig/rhn/rhn_register \ ${CLIENT_OVERRIDES} fi echo " . up2date config file" /usr/bin/python -u client_config_update.py /etc/sysconfig/rhn/up2date \ ${CLIENT_OVERRIDES} if [ ! -z "$ORG_GPG_KEY" ] ; then echo echo "* importing organizational GPG key" rm -f ${ORG_GPG_KEY} $FETCH ${HTTPS_PUB_DIRECTORY}/${ORG_GPG_KEY} # get the major version of up2date res=$(rpm -q --queryformat '%{version}' up2date | sed -e 's/\..*//g') if [ $res -eq 2 ] ; then gpg $(up2date --gpg-flags) --import $ORG_GPG_KEY else rpm --import $ORG_GPG_KEY fi fi echo echo "* attempting to install corporate public CA cert" if [ $USING_SSL -eq 1 ] ; then if [ $ORG_CA_CERT_IS_RPM_YN -eq 1 ] ; then rpm -Uvh ${HTTP_PUB_DIRECTORY}/${ORG_CA_CERT} else rm -f ${ORG_CA_CERT} $FETCH ${HTTP_PUB_DIRECTORY}/${ORG_CA_CERT} mv ${ORG_CA_CERT} /usr/share/rhn/ fi fi echo echo "REGISTRATION" echo "------------" # Should have created an activation key or keys on the RHN Server's # website and edited the value of ACTIVATION_KEYS above. # # If you require use of several different activation keys, copy this file and # change the string as needed. # if [ -z "$ACTIVATION_KEYS" ] ; then echo "*** ERROR: in order to bootstrap RHN clients, an activation key or keys" echo " must be created in the RHN web user interface, and the" echo " corresponding key or keys string (XKEY,YKEY,...) must be mapped to" echo " the ACTIVATION_KEYS variable of this script." exit 1 fi if [ $REGISTER_THIS_BOX -eq 1 ] ; then echo "* registering" /usr/sbin/rhnreg_ks --force --activationkey "$ACTIVATION_KEYS" echo echo "*** this system should now be registered, please verify ***" echo else echo "* explicitely not registering" fi echo echo "OTHER ACTIONS" echo "------------------------------------------------------" if [ $FULLY_UPDATE_THIS_BOX -eq 1 ] ; then echo "up2date up2date; up2date -p; up2date -uf (conditional)" else echo "up2date up2date; up2date -p" fi echo "but any post configuration action can be added here. " echo "------------------------------------------------------" if [ $FULLY_UPDATE_THIS_BOX -eq 1 ] ; then echo "* completely updating the box" else echo "* ensuring up2date itself is updated" fi /usr/sbin/up2date up2date /usr/sbin/up2date -p if [ $FULLY_UPDATE_THIS_BOX -eq 1 ] ; then /usr/sbin/up2date -uf fi echo "-bootstrap complete-"
附錄 B. 修訂歷史
修訂記錄 | |||
---|---|---|---|
修訂 1-2.400 | 2013-10-31 | Rüdiger Landmann | |
| |||
修訂 1-2 | 2012-07-18 | Anthony Towns | |
| |||
修訂 1-7 | Fri Feb 27 2009 | ||
|
索引
符號
- --configure
- 使用, up2date --configure 選項
- 啟用金鑰
- 客戶端應用程式
- 客戶端配置
- Red Hat Update Agent , up2date --configure 選項
- 配置
- 伺服器容錯移轉, 實施伺服器容錯移轉
- 完整編寫, 手動式編寫配置
- 指南, 手動式地更新配置檔案
B
- bootstrap.sh
- 準備和使用, 使用 RHN Bootstrap
- 範例檔案, 範例 Bootstrap Script
G
- GPG 金鑰
- 匯入, 匯入自訂的 GPG 金鑰
K
- kickstart
- 使用, 實作 Kickstart
R
- Red Hat Network Alert Notification Tool
- 衛星伺服器配置, 以衛星伺服器來配置 Red Hat Network Alert Notification Tool
- Red Hat Update Agent
- 進行配置以使用 RHN Proxy Server 或 RHN Satellite Server, 手動式地更新配置檔案
- RHN Bootstrap
- 使用, 使用 RHN Bootstrap
- 使用 script, 使用 Script
- 指令列選項, RHN Bootstrap 選項
- 準備, 準備
- 產生 script, 產生
- RHN SSL Maintenance Tool
- rhn-ssl-tool , RHN SSL Maintenance Tool
- 產生 CA, 產生憑證機構 SSL 金鑰配對
- 產生伺服器憑證, 產生網站伺服器 SSL 金鑰組
- 產生說明, SSL 產生上的解說
- 選項, RHN SSL Maintenance Tool 選項
- rhn-ssl-tool
- RHN SSL Maintenance Tool , RHN SSL Maintenance Tool
- 產生 CA, 產生憑證機構 SSL 金鑰配對
- 產生伺服器憑證, 產生網站伺服器 SSL 金鑰組
- 產生說明, SSL 產生上的解說
- 選項, RHN SSL Maintenance Tool 選項
S
- SSL 憑證
- 安裝, 將 CA SSL 公用認證建置至客戶端
- 產生, RHN SSL Maintenance Tool
- 配置, 配置客戶端系統
- SSL(Secure Sockets Layer)
- 簡介, SSL 的詳細介紹
法律聲明
Copyright © 2010 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.