器安裝與生產(chǎn)環(huán)境部署全流程詳解)
1. 項(xiàng)目概述為什么今天還要折騰CentOS 7.5如果你點(diǎn)開這篇文章心里可能正犯嘀咕這都什么年代了CentOS 8都停止維護(hù)了CentOS Stream也成了新方向怎么還有人寫CentOS 7.5的安裝教程這不是在教人用“過時(shí)”的系統(tǒng)嗎作為一個(gè)在運(yùn)維和基礎(chǔ)架構(gòu)領(lǐng)域摸爬滾打十多年的老手我必須告訴你這個(gè)想法既對(duì)也不對(duì)。對(duì)的是從技術(shù)前沿看CentOS 7.5確實(shí)不是新潮選擇不對(duì)的是在實(shí)際的生產(chǎn)環(huán)境、企業(yè)級(jí)應(yīng)用、遺留系統(tǒng)遷移以及特定的學(xué)習(xí)場(chǎng)景中CentOS 7.5的安裝與部署依然是一個(gè)高頻、剛需且充滿細(xì)節(jié)的技術(shù)活。我寫這篇詳解絕不是為了炒冷飯。恰恰相反正是因?yàn)镃entOS 7系列尤其是7.5-7.9這些版本擁有極其廣泛和穩(wěn)定的存量部署。許多核心業(yè)務(wù)系統(tǒng)、金融交易后臺(tái)、工業(yè)控制軟件其運(yùn)行環(huán)境就鎖定在CentOS 7.x上因?yàn)榻?jīng)過了長(zhǎng)期驗(yàn)證穩(wěn)定壓倒一切。對(duì)于新手而言從CentOS 7入手學(xué)習(xí)Linux其資料之豐富、社區(qū)之成熟、與RHEL的兼容性依然是無可替代的優(yōu)質(zhì)起點(diǎn)。因此掌握一套清晰、完整、避坑的CentOS 7.5安裝流程不僅是一項(xiàng)實(shí)用的運(yùn)維技能更是理解Linux系統(tǒng)部署、分區(qū)規(guī)劃、網(wǎng)絡(luò)配置、安全基線等核心概念的絕佳實(shí)踐。本文將帶你從零開始手把手完成一次“教科書級(jí)”的CentOS 7.5安裝并深入每個(gè)步驟背后的原理與抉擇分享那些只有踩過坑才知道的經(jīng)驗(yàn)技巧。2. 安裝前的核心準(zhǔn)備與規(guī)劃安裝操作系統(tǒng)從來不是簡(jiǎn)單地點(diǎn)擊“下一步”尤其是對(duì)于服務(wù)器系統(tǒng)。前期的規(guī)劃直接決定了后期運(yùn)維的效率和系統(tǒng)的穩(wěn)定性。這一部分我們將徹底厘清安裝CentOS 7.5前你必須做的幾件事。2.1 介質(zhì)獲取與驗(yàn)證源頭必須干凈首先你需要獲取CentOS 7.5的安裝鏡像。雖然官方鏡像庫如 vault.centos.org仍然保留著歷史版本但直接尋找特定子版本如7.5.1804需要一點(diǎn)技巧。更可靠的方式是從可信的鏡像站獲取。一個(gè)關(guān)鍵步驟是驗(yàn)證鏡像完整性。下載的ISO文件可能因網(wǎng)絡(luò)問題損壞用損壞的鏡像安裝會(huì)導(dǎo)致各種詭異錯(cuò)誤。下載完成后務(wù)必使用SHA256校驗(yàn)和進(jìn)行驗(yàn)證。# 假設(shè)下載的鏡像名為 CentOS-7-x86_64-DVD-1804.iso # 首先從鏡像站或官方頁面找到該鏡像對(duì)應(yīng)的SHA256校驗(yàn)文件通常以 .sha256 結(jié)尾 # 下載校驗(yàn)文件或直接查看公布的校驗(yàn)和字符串。 # 計(jì)算你本地文件的SHA256值 sha256sum CentOS-7-x86_64-DVD-1804.iso # 將輸出的字符串與官方提供的校驗(yàn)和進(jìn)行比對(duì)必須完全一致。注意校驗(yàn)和不匹配絕對(duì)不要使用該鏡像進(jìn)行安裝。這是保證系統(tǒng)底層文件正確的第一道防線跳過此步后續(xù)所有安裝都可能建立在不可靠的基礎(chǔ)上。2.2 啟動(dòng)介質(zhì)制作U盤還是外置光驅(qū)有了干凈的ISO下一步是制作啟動(dòng)介質(zhì)。主流方式有兩種U盤和虛擬光驅(qū)用于虛擬機(jī)。對(duì)于物理服務(wù)器U盤是首選。制作U盤啟動(dòng)盤推薦使用dd命令Linux/macOS或 Rufus 工具Windows。這里以dd命令為例其過程簡(jiǎn)單粗暴但有效# 警告此操作將清空目標(biāo)設(shè)備/dev/sdX上的所有數(shù)據(jù)請(qǐng)務(wù)必確認(rèn)設(shè)備標(biāo)識(shí)符。 # 使用 lsblk 或 fdisk -l 命令確認(rèn)你的U盤設(shè)備例如是 /dev/sdb sudo dd if./CentOS-7-x86_64-DVD-1804.iso of/dev/sdb bs4M statusprogress oflagsync參數(shù)解析與經(jīng)驗(yàn)bs4M設(shè)置塊大小影響讀寫效率。4M是一個(gè)經(jīng)驗(yàn)值在大多數(shù)USB 3.0設(shè)備上能取得不錯(cuò)的速度。oflagsync確保數(shù)據(jù)完全同步寫入避免緩存導(dǎo)致寫入不完整制作出的啟動(dòng)盤更可靠。致命坑點(diǎn)of/dev/sdb指向的是整個(gè)磁盤設(shè)備而不是某個(gè)分區(qū)如/dev/sdb1。指向分區(qū)會(huì)導(dǎo)致制作失敗。這是新手最常犯的錯(cuò)誤之一。對(duì)于Windows用戶Rufus工具提供了圖形化界面記得在“鏡像寫入方式”選擇“DD模式”以確保與服務(wù)器BIOS/UEFI的兼容性。2.3 服務(wù)器啟動(dòng)引導(dǎo)與安裝模式選擇將制作好的U盤插入服務(wù)器開機(jī)進(jìn)入BIOS/UEFI設(shè)置界面。這里有幾個(gè)關(guān)鍵設(shè)置啟動(dòng)順序?qū)盤或外部設(shè)備設(shè)為第一啟動(dòng)項(xiàng)。引導(dǎo)模式確認(rèn)是Legacy BIOS還是UEFI。這會(huì)影響后續(xù)分區(qū)方案MBR vs GPT。現(xiàn)代服務(wù)器2015年后大多支持UEFI建議優(yōu)先使用UEFI模式它支持更大的磁盤和更安全的啟動(dòng)流程。虛擬化支持如果后續(xù)可能在此服務(wù)器上運(yùn)行KVM等虛擬化技術(shù)確保在CPU設(shè)置中開啟Intel VT-x或AMD-V功能。安全啟動(dòng)Secure Boot對(duì)于CentOS 7建議在安裝階段暫時(shí)關(guān)閉Secure Boot避免因驅(qū)動(dòng)簽名問題導(dǎo)致安裝失敗。安裝完成并確認(rèn)所有硬件驅(qū)動(dòng)正常后可以再嘗試開啟。從U盤啟動(dòng)后你會(huì)看到CentOS安裝引導(dǎo)菜單。直接按回車進(jìn)入圖形化安裝界面是最簡(jiǎn)單的。但如果你的服務(wù)器沒有圖形界面如僅通過IPMI管理或者網(wǎng)絡(luò)安裝需要指定特殊參數(shù)就需要理解“安裝引導(dǎo)選項(xiàng)”的用法。在引導(dǎo)菜單界面按Tab鍵UEFI下按e鍵可以編輯引導(dǎo)參數(shù)。一個(gè)常見的場(chǎng)景是服務(wù)器顯示器分辨率過低導(dǎo)致安裝界面顯示不全。此時(shí)你可以在vmlinuz啟動(dòng)參數(shù)末尾添加vgaask然后按回車系統(tǒng)會(huì)列出可用的分辨率模式選擇適合你顯示器的即可例如vga791代表1024x768分辨率。3. 安裝過程中的關(guān)鍵決策與配置詳解進(jìn)入圖形化安裝界面后CentOS安裝程序Anaconda會(huì)引導(dǎo)你完成一系列配置。這些配置將永久影響你的系統(tǒng)因此每一步都值得深思。3.1 語言、時(shí)區(qū)與鍵盤布局首先選擇安裝過程語言和系統(tǒng)默認(rèn)語言。這里有一個(gè)重要建議即使你英文很好對(duì)于生產(chǎn)服務(wù)器我強(qiáng)烈建議將“系統(tǒng)默認(rèn)語言”設(shè)置為“English (United States)”。這可以避免后續(xù)很多軟件在中文環(huán)境下可能出現(xiàn)的編碼問題、日志亂碼或路徑錯(cuò)誤。安裝過程的界面語言可以選中文以便操作但系統(tǒng)語言選英文是業(yè)界最佳實(shí)踐。時(shí)區(qū)設(shè)置選擇“Asia/Shanghai”并務(wù)必取消勾選“系統(tǒng)時(shí)鐘使用UTC時(shí)間”。對(duì)于在中國(guó)使用的服務(wù)器這是正確的做法。Linux系統(tǒng)內(nèi)部使用UTC時(shí)間但顯示時(shí)會(huì)根據(jù)時(shí)區(qū)轉(zhuǎn)換。這樣設(shè)置可以保證date命令顯示的時(shí)間與你的本地時(shí)間一致避免時(shí)間混亂。3.2 磁盤分區(qū)方案系統(tǒng)穩(wěn)定性的基石這是整個(gè)安裝過程中最核心、最需要規(guī)劃的部分。CentOS 7提供了幾種分區(qū)方案自動(dòng)配置、手動(dòng)配置等。對(duì)于任何嚴(yán)肅的用途請(qǐng)永遠(yuǎn)選擇“我要配置分區(qū)”。一個(gè)經(jīng)典、穩(wěn)健的服務(wù)器分區(qū)方案如下假設(shè)磁盤為/dev/sda容量1TB掛載點(diǎn)建議大小文件系統(tǒng)類型說明與理由/boot1GBxfs (或 ext4)存放內(nèi)核和引導(dǎo)文件。1GB足夠獨(dú)立分區(qū)可避免內(nèi)核更新填滿根分區(qū)導(dǎo)致無法啟動(dòng)。UEFI系統(tǒng)則需要額外的/boot/efi(200-500MB, vfat)。/50-100GBxfs根目錄。存放系統(tǒng)核心文件和程序。50GB是安全起步值為系統(tǒng)更新和安裝基礎(chǔ)軟件留足空間。/home100-200GBxfs用戶家目錄。如果服務(wù)器有多個(gè)用戶或需要存放用戶數(shù)據(jù)建議獨(dú)立分區(qū)便于管理和備份。/var50-100GBxfs存放可變數(shù)據(jù)如日志、緩存、數(shù)據(jù)庫文件。日志和緩存增長(zhǎng)很快獨(dú)立分區(qū)可防止它們占滿根分區(qū)。/tmp10-20GBxfs臨時(shí)文件。獨(dú)立分區(qū)并可在fstab中設(shè)置noexec,nodev,nosuid選項(xiàng)以增強(qiáng)安全。/opt視情況xfs用于安裝第三方大型應(yīng)用如Oracle DB。如果不用可不獨(dú)立。swap物理內(nèi)存的1-2倍swap交換分區(qū)。在內(nèi)存不足時(shí)提供緩沖。對(duì)于內(nèi)存大于8GB的服務(wù)器swap大小等于物理內(nèi)存或略少即可。如果計(jì)劃啟用休眠swap需大于等于內(nèi)存。為什么選擇XFS而不是Ext4CentOS 7的默認(rèn)文件系統(tǒng)是XFS。它對(duì)于大文件處理性能更好支持更大的單個(gè)文件系統(tǒng)和文件可達(dá)8EB在線調(diào)整大小僅可擴(kuò)大也很方便。Ext4更成熟但XFS是Red Hat系未來的方向在CentOS 7上選XFS是更順應(yīng)趨勢(shì)的選擇。分區(qū)實(shí)操技巧在手動(dòng)分區(qū)界面選擇標(biāo)準(zhǔn)分區(qū)Standard Partition即可。先創(chuàng)建/boot再創(chuàng)建swap最后按順序創(chuàng)建其他分區(qū)。對(duì)于根/分區(qū)建議在“卷標(biāo)”處填寫root方便日后識(shí)別。創(chuàng)建每個(gè)分區(qū)時(shí)點(diǎn)擊“修改”按鈕除了設(shè)置大小和文件系統(tǒng)強(qiáng)烈建議勾選‘加密’選項(xiàng)特別是對(duì)于/home、/var可能含數(shù)據(jù)庫等存有敏感數(shù)據(jù)的分區(qū)。雖然這會(huì)帶來每次啟動(dòng)需要輸入密碼的麻煩但對(duì)于安全要求高的環(huán)境是值得的。3.3 網(wǎng)絡(luò)與主機(jī)名配置安裝程序內(nèi)配置網(wǎng)絡(luò)可以讓你在系統(tǒng)裝好后立即聯(lián)網(wǎng)。點(diǎn)擊“網(wǎng)絡(luò)和主機(jī)名”你會(huì)看到檢測(cè)到的網(wǎng)卡如ens192或eth0。打開網(wǎng)卡開關(guān)在右側(cè)列表中選擇網(wǎng)卡將頂部的開關(guān)從“OFF”撥到“ON”。這樣系統(tǒng)會(huì)通過DHCP自動(dòng)獲取IP地址。配置靜態(tài)IP推薦用于服務(wù)器點(diǎn)擊右下角的“配置”按鈕。在“IPv4設(shè)置”選項(xiàng)卡中方法選擇“手動(dòng)”。點(diǎn)擊“添加”按鈕依次填寫地址你規(guī)劃的靜態(tài)IP如192.168.1.100子網(wǎng)掩碼通常為255.255.255.0對(duì)應(yīng)CIDR/24網(wǎng)關(guān)你的路由器或核心交換機(jī)IP如192.168.1.1DNS服務(wù)器可以填寫公共DNS如223.5.5.5和223.6.6.6或你內(nèi)網(wǎng)的DNS服務(wù)器。重要?jiǎng)?wù)必勾選“需要IPv4地址完成這個(gè)連接”否則配置不生效。設(shè)置主機(jī)名在“主機(jī)名”輸入框里為你的服務(wù)器設(shè)置一個(gè)FQDN完全限定域名例如server01.lab.local。同時(shí)建議勾選下方的“在網(wǎng)絡(luò)中自動(dòng)設(shè)置主機(jī)名”。實(shí)操心得很多人在安裝時(shí)忽略網(wǎng)絡(luò)配置裝完系統(tǒng)發(fā)現(xiàn)連不上網(wǎng)又得去接顯示器鍵盤。在安裝界面就配好靜態(tài)IP尤其是記下IP地址之后就可以直接通過SSH遠(yuǎn)程連接效率高得多。3.4 軟件包選擇最小化安裝是黃金準(zhǔn)則在“軟件選擇”環(huán)節(jié)默認(rèn)選中的是“最小安裝”。對(duì)于服務(wù)器請(qǐng)堅(jiān)持這個(gè)選擇?!白钚“惭b”只包含最核心的系統(tǒng)組件沒有圖形界面沒有多余的服務(wù)器程序。這帶來了多重好處安全性暴露的攻擊面最小。沒安裝的服務(wù)就不存在對(duì)應(yīng)的漏洞。性能系統(tǒng)資源內(nèi)存、CPU消耗最低全部可用于運(yùn)行你的業(yè)務(wù)應(yīng)用。穩(wěn)定性組件越少潛在的軟件沖突和依賴問題也越少??删S護(hù)性你清楚地知道系統(tǒng)上每一個(gè)軟件包都是你自己后來安裝的管理起來清晰明了。千萬不要因?yàn)椤翱赡芤谩本凸催x“帶GUI的服務(wù)器”或其他環(huán)境。如果需要圖形界面絕大多數(shù)服務(wù)器不需要可以在系統(tǒng)安裝后通過yum groupinstall Server with GUI來按需安裝。同樣Web服務(wù)器、數(shù)據(jù)庫等都應(yīng)在系統(tǒng)安裝后根據(jù)實(shí)際需求使用yum命令單獨(dú)安裝和配置。3.5 root密碼與用戶創(chuàng)建這是系統(tǒng)安全的第一道門戶。設(shè)置root密碼點(diǎn)擊“ROOT密碼”進(jìn)行設(shè)置。請(qǐng)?jiān)O(shè)置一個(gè)強(qiáng)密碼長(zhǎng)度大于12位包含大小寫字母、數(shù)字、特殊字符。安裝程序會(huì)提示密碼強(qiáng)度。即使密碼是“弱”只要你確認(rèn)足夠復(fù)雜也可以強(qiáng)制設(shè)置。務(wù)必牢記此密碼。創(chuàng)建管理員用戶點(diǎn)擊“創(chuàng)建用戶”。這是一個(gè)極其重要的安全習(xí)慣。不要直接用root用戶進(jìn)行日常操作。填寫用戶名如admin、全名。設(shè)置一個(gè)同樣強(qiáng)壯的密碼。最關(guān)鍵的一步勾選“將此用戶設(shè)為管理員”。這會(huì)在sudoers文件中賦予該用戶sudo權(quán)限允許他通過sudo命令執(zhí)行管理員操作。建議同時(shí)勾選“需要密碼來使用sudo”增加一層安全校驗(yàn)。完成以上所有配置后點(diǎn)擊“開始安裝”。安裝程序會(huì)格式化磁盤、安裝軟件包。此時(shí)你可以回到“用戶設(shè)置”界面點(diǎn)擊“ROOT密碼”或“用戶創(chuàng)建”再次確認(rèn)信息。安裝過程大約需要10-30分鐘取決于硬件速度和選擇的軟件包數(shù)量。4. 首次啟動(dòng)后的必備初始化操作安裝完成重啟并首次登錄系統(tǒng)后工作才剛剛開始。一個(gè)直接投入生產(chǎn)的系統(tǒng)必須經(jīng)過一系列“淬火”工序。4.1 系統(tǒng)更新與基礎(chǔ)工具安裝首先更新整個(gè)系統(tǒng)以獲取最新的安全補(bǔ)丁和錯(cuò)誤修復(fù)。# 切換到root用戶或用sudo執(zhí)行 sudo su - # 更新yum緩存并升級(jí)所有包 yum makecache yum update -y-y參數(shù)表示自動(dòng)確認(rèn)適合腳本執(zhí)行。如果是手動(dòng)操作建議先yum check-update查看有哪些更新再?zèng)Q定是否全部升級(jí)。更新后安裝一些不可或缺的工具yum install -y vim wget curl net-tools bash-completion lsof htopvim比vi更強(qiáng)大的文本編輯器。wget/curl網(wǎng)絡(luò)下載工具。net-tools包含ifconfig,netstat等傳統(tǒng)網(wǎng)絡(luò)診斷工具盡管推薦用ip命令但很多腳本依賴它們。bash-completion為bash命令提供自動(dòng)補(bǔ)全提升效率。lsof列出打開的文件用于診斷端口占用等問題。htop交互式進(jìn)程查看器比top更直觀。4.2 配置SSH服務(wù)增強(qiáng)安全默認(rèn)的SSH配置不夠安全需要加固。vim /etc/ssh/sshd_config找到并修改以下幾項(xiàng)Port 22 # 可以改為一個(gè)非標(biāo)準(zhǔn)端口如 2222減少自動(dòng)化攻擊掃描但非必需安全主要靠密鑰和防火墻 PermitRootLogin no # 禁止root用戶直接SSH登錄必須通過普通用戶sudo PasswordAuthentication no # 禁用密碼登錄強(qiáng)制使用密鑰對(duì)這是最重要的安全設(shè)置 PubkeyAuthentication yes # 啟用公鑰認(rèn)證修改端口后要更新SELinux和防火墻規(guī)則# 如果改了端口比如改為2222 semanage port -a -t ssh_port_t -p tcp 2222 firewall-cmd --permanent --add-port2222/tcp firewall-cmd --reload密鑰對(duì)配置在本地機(jī)器生成密鑰對(duì)ssh-keygen -t rsa -b 4096將公鑰~/.ssh/id_rsa.pub內(nèi)容復(fù)制到服務(wù)器的~/.ssh/authorized_keys文件中并設(shè)置正確的權(quán)限chmod 600 ~/.ssh/authorized_keys。完成配置后重啟SSH服務(wù)systemctl restart sshd。務(wù)必在重啟前在另一個(gè)終端窗口測(cè)試用密鑰登錄是否成功否則可能把自己鎖在服務(wù)器外4.3 防火墻與SELinux策略調(diào)優(yōu)CentOS 7使用firewalld作為防火墻前端。# 查看默認(rèn)區(qū)域和活動(dòng)區(qū)域 firewall-cmd --get-default-zone firewall-cmd --get-active-zones # 永久開放一項(xiàng)服務(wù)如http firewall-cmd --permanent --add-servicehttp # 或永久開放一個(gè)端口 firewall-cmd --permanent --add-port8080/tcp # 重新加載配置使其生效 firewall-cmd --reload # 列出所有永久規(guī)則 firewall-cmd --list-all --permanent關(guān)于SELinux除非你有明確理由否則不要禁用它。SELinux是強(qiáng)大的強(qiáng)制訪問控制安全模塊。遇到權(quán)限問題時(shí)首先應(yīng)檢查SELinux日志/var/log/audit/audit.log并使用audit2why、audit2allow工具分析并生成策略模塊或者使用chcon、semanage fcontext修改文件安全上下文而不是簡(jiǎn)單地setenforce 0。4.4 配置國(guó)內(nèi)yum源加速默認(rèn)的CentOS官方源在國(guó)內(nèi)訪問可能較慢。替換為阿里云、清華大學(xué)的鏡像源可以極大提升軟件安裝速度。# 備份原repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 下載阿里云Base源以阿里云為例 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清理并重建緩存 yum clean all yum makecache對(duì)于EPELExtra Packages for Enterprise Linux源它提供了大量官方倉庫沒有的軟件同樣可以替換為國(guó)內(nèi)鏡像。5. 深度配置與性能優(yōu)化系統(tǒng)可用了但要讓它跑得又快又穩(wěn)還需要一些深度優(yōu)化。5.1 內(nèi)核參數(shù)調(diào)優(yōu)根據(jù)服務(wù)器角色Web、DB、文件服務(wù)器需要調(diào)整/etc/sysctl.conf中的內(nèi)核參數(shù)。例如對(duì)于一個(gè)高并發(fā)的Web服務(wù)器可以在文件末尾添加# 避免TIME_WAIT狀態(tài)過多提高端口復(fù)用能力 net.ipv4.tcp_tw_reuse 1 net.ipv4.tcp_tw_recycle 1 # 在NAT環(huán)境下慎用此參數(shù)可能引起問題CentOS 7內(nèi)核中已廢棄建議用下面的快速回收替代 net.ipv4.tcp_fin_timeout 30 # 擴(kuò)大端口范圍 net.ipv4.ip_local_port_range 1024 65535 # 增大最大打開文件數(shù)連接數(shù)的系統(tǒng)級(jí)限制 fs.file-max 655350 # 增加TCP緩沖區(qū)大小 net.core.rmem_max 16777216 net.core.wmem_max 16777216 net.ipv4.tcp_rmem 4096 87380 16777216 net.ipv4.tcp_wmem 4096 65536 16777216 # 應(yīng)對(duì)SYN Flood攻擊 net.ipv4.tcp_syncookies 1 net.ipv4.tcp_max_syn_backlog 8192 # 允許核心轉(zhuǎn)儲(chǔ) kernel.core_pattern /var/core/core-%e-%p-%t修改后執(zhí)行sysctl -p使配置立即生效。注意參數(shù)調(diào)優(yōu)需謹(jǐn)慎最好在測(cè)試環(huán)境驗(yàn)證后再上生產(chǎn)。5.2 文件系統(tǒng)與磁盤I/O優(yōu)化對(duì)于XFS文件系統(tǒng)可以在掛載選項(xiàng)上做文章。編輯/etc/fstab找到對(duì)應(yīng)的分區(qū)在defaults后面添加一些選項(xiàng)例如UUIDxxxx /data xfs defaults,noatime,nodiratime,inode64 0 0noatime,nodiratime禁止記錄文件的訪問時(shí)間可以減少大量不必要的磁盤寫操作提升I/O性能對(duì)Web服務(wù)器、數(shù)據(jù)庫服務(wù)器尤其有效。inode64允許inode號(hào)在文件系統(tǒng)的任意位置創(chuàng)建對(duì)于超大分區(qū)1TB是必要的。對(duì)于SSD磁盤還可以考慮添加discard選項(xiàng)以啟用TRIM功能但建議使用fstrim定期手動(dòng)執(zhí)行而非在線實(shí)時(shí)TRIM以避免性能波動(dòng)。5.3 系統(tǒng)服務(wù)精簡(jiǎn)與自啟動(dòng)管理最小化安裝后仍然有一些默認(rèn)啟動(dòng)的服務(wù)可能不需要。使用systemctl命令管理# 查看所有開機(jī)自啟動(dòng)的服務(wù) systemctl list-unit-files --typeservice | grep enabled # 禁用不必要的服務(wù)例如如果不用郵件服務(wù) systemctl disable postfix.service # 停止當(dāng)前運(yùn)行的服務(wù) systemctl stop postfix.service需要仔細(xì)評(píng)估每個(gè)服務(wù)的作用。常見的可考慮禁用的服務(wù)有postfix郵件服務(wù)、avahi-daemon零配置網(wǎng)絡(luò)發(fā)現(xiàn)、cups打印服務(wù)等。原則是用不到的就關(guān)掉。6. 常見問題與故障排查實(shí)錄即使按照最詳細(xì)的指南操作也難免會(huì)遇到問題。這里記錄了幾個(gè)最典型的“坑”及其解決方案。6.1 安裝引導(dǎo)階段常見錯(cuò)誤問題一啟動(dòng)時(shí)卡在dracut-initqueue timeout或找不到啟動(dòng)設(shè)備。這通常是因?yàn)榘惭b程序找不到你的硬盤或U盤。在引導(dǎo)菜單編輯啟動(dòng)參數(shù)嘗試添加硬盤控制器驅(qū)動(dòng)模塊。例如對(duì)于舊的IDE模式或某些RAID卡可能需要添加nodmraid或inst.dd來加載驅(qū)動(dòng)。更通用的方法是檢查U盤是否被正確識(shí)別為/dev/sdb有時(shí)會(huì)變成/dev/sdc需要在BIOS中調(diào)整USB啟動(dòng)順序或換一個(gè)USB接口。問題二圖形安裝界面無法啟動(dòng)提示無法初始化顯示。這是服務(wù)器沒有顯卡或顯卡驅(qū)動(dòng)不支持所致。在引導(dǎo)菜單按Tab在行尾添加inst.text或inst.consoletty0強(qiáng)制進(jìn)入文本安裝模式。文本模式同樣可以完成所有安裝步驟。6.2 首次啟動(dòng)后網(wǎng)絡(luò)不通癥狀ping不通網(wǎng)關(guān)ip addr顯示網(wǎng)卡沒有獲取到IP或根本沒有啟動(dòng)。檢查1systemctl status network或systemctl status NetworkManager查看網(wǎng)絡(luò)服務(wù)狀態(tài)。CentOS 7默認(rèn)使用NetworkManager但有時(shí)與傳統(tǒng)的network服務(wù)沖突??梢試L試systemctl stop NetworkManager; systemctl disable NetworkManager; systemctl start network。檢查2網(wǎng)卡命名規(guī)則。CentOS 7使用一致性網(wǎng)絡(luò)設(shè)備命名如ens192可能與舊腳本中使用的eth0不匹配。編輯/etc/sysconfig/network-scripts/ifcfg-ens192設(shè)備名以實(shí)際為準(zhǔn)配置文件確保ONBOOTyes。檢查3防火墻。如果配置了靜態(tài)IP但能ping通自己不能ping通外網(wǎng)可能是防火墻未放行??梢韵扰R時(shí)關(guān)閉防火墻測(cè)試systemctl stop firewalld。如果通了說明需要配置防火墻規(guī)則。6.3 磁盤空間不足或分區(qū)規(guī)劃失誤這是后期最頭疼的問題之一。查看空間使用df -h命令。擴(kuò)容邏輯卷如果使用了LVM這是CentOS默認(rèn)分區(qū)方案的優(yōu)勢(shì)??梢詣?dòng)態(tài)擴(kuò)展。例如為/home邏輯卷增加10Glvextend -L 10G /dev/mapper/centos-home然后調(diào)整文件系統(tǒng)xfs_growfs /home對(duì)于XFS或resize2fs /dev/mapper/centos-home對(duì)于ext4。非LVM標(biāo)準(zhǔn)分區(qū)已滿這就比較麻煩??赡苄枰獟燧d新硬盤遷移數(shù)據(jù)修改/etc/fstab。因此前期合理的分區(qū)規(guī)劃至關(guān)重要。6.4 軟件安裝失敗或依賴沖突錯(cuò)誤Error: Package: xxx requires yyy 3.0, but zzz will be installed解決這通常是倉庫優(yōu)先級(jí)或版本鎖定的問題??梢試L試yum clean all yum makecache刷新緩存。使用yum provides */xxx查找哪個(gè)倉庫提供所需包。使用yum install --skip-broken暫時(shí)跳過有問題的包。最根本的檢查是否混用了多個(gè)不同版本或沖突的第三方倉庫如EPEL、Remi等在/etc/yum.repos.d/下管理好.repo文件必要時(shí)可以暫時(shí)禁用某些倉庫。6.5 SSH連接超時(shí)或拒絕配置了密鑰登錄并禁用密碼后突然連不上了。本地檢查ssh -v userserver_ip查看詳細(xì)輸出通常在最后幾行會(huì)有關(guān)鍵錯(cuò)誤信息。服務(wù)器檢查systemctl status sshd確保服務(wù)在運(yùn)行。netstat -tlnp | grep :22確保sshd在監(jiān)聽22端口或你修改的端口。檢查/var/log/secure日志這里記錄了SSH認(rèn)證的詳細(xì)信息會(huì)明確告訴你是因?yàn)槊荑€格式錯(cuò)誤、權(quán)限問題還是被拒絕。權(quán)限問題確保服務(wù)器上~/.ssh目錄權(quán)限為700 (drwx------)authorized_keys文件權(quán)限為600 (-rw-------)。權(quán)限過寬SSH出于安全考慮會(huì)拒絕使用密鑰。7. 從安裝到生產(chǎn)后續(xù)安全加固 checklist安裝并完成基本配置后在將服務(wù)器接入生產(chǎn)網(wǎng)絡(luò)前建議對(duì)照以下清單進(jìn)行最后的安全加固核查用戶與權(quán)限[ ] 是否已創(chuàng)建具有sudo權(quán)限的普通用戶[ ] 是否已禁用root的SSH直接登錄PermitRootLogin no[ ] 是否已禁用密碼認(rèn)證強(qiáng)制使用密鑰對(duì)PasswordAuthentication no[ ] 是否檢查了/etc/sudoers文件權(quán)限是否正確440服務(wù)與端口[ ] 是否已使用ss -tlnp或netstat -tlnp檢查所有監(jiān)聽端口[ ] 是否已關(guān)閉所有非必需的服務(wù)systemctl list-unit-files --typeservice[ ] 防火墻firewalld/iptables是否已配置僅開放必要的端口和服務(wù)系統(tǒng)更新與監(jiān)控[ ] 是否已執(zhí)行yum update安裝所有安全更新[ ] 是否配置了自動(dòng)安全更新yum-cron或制定了手動(dòng)更新計(jì)劃[ ] 是否安裝了監(jiān)控代理如Zabbix agent, Prometheus node_exporter日志與審計(jì)[ ] 是否確認(rèn)系統(tǒng)日志/var/log/messages,secure,audit/audit.log正常輪轉(zhuǎn)[ ] 是否配置了遠(yuǎn)程日志服務(wù)器如rsyslog將關(guān)鍵日志外發(fā)[ ] 是否了解并使用last,lastb,who等命令查看登錄記錄備份與恢復(fù)[ ] 是否制定了系統(tǒng)配置和數(shù)據(jù)的備份策略[ ] 是否測(cè)試過從備份中恢復(fù)單個(gè)文件或整個(gè)系統(tǒng)完成以上所有步驟你的CentOS 7.5服務(wù)器才算是從一個(gè)“剛裝好的系統(tǒng)”轉(zhuǎn)變?yōu)橐粋€(gè)初步具備安全性、可維護(hù)性和穩(wěn)定性的“生產(chǎn)就緒”環(huán)境。記住系統(tǒng)運(yùn)維是一個(gè)持續(xù)的過程安裝只是第一步。保持學(xué)習(xí)定期審查日志更新軟件根據(jù)業(yè)務(wù)需求調(diào)整配置才能讓這臺(tái)服務(wù)器長(zhǎng)久、可靠地為你服務(wù)。