各種網(wǎng)絡(luò)安全設(shè)備巡檢報告匯總_第1頁
各種網(wǎng)絡(luò)安全設(shè)備巡檢報告匯總_第2頁
各種網(wǎng)絡(luò)安全設(shè)備巡檢報告匯總_第3頁
各種網(wǎng)絡(luò)安全設(shè)備巡檢報告匯總_第4頁
各種網(wǎng)絡(luò)安全設(shè)備巡檢報告匯總_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、附錄1:防火墻巡檢表編號生產(chǎn)廠商外部IP地址內(nèi)部IP地址網(wǎng)關(guān)IP責(zé)任人物理位置所在網(wǎng)絡(luò)檢查日期檢查人編號檢查內(nèi)容結(jié)果檢查記錄自身安全性1防火墻是否具有專門的配制管理終端。是 否2是否及時修改防火墻超級管理員的默認口令。是 否3是否開放了不必要的端口和服務(wù)是 否4是否劃分了不同級別的用戶,賦予其不同的權(quán)限,至少應(yīng)包括系統(tǒng)管理員、審計管理員等用戶角色。是 否5管理員口令是否具有嚴格的保管措施。是 否運行維護6是否具備兩個以上的用戶身份,對系統(tǒng)策略和日志進行維護和管理。是 否7防火墻在網(wǎng)絡(luò)拓撲圖中是否有明顯的標(biāo)示。是 否8防火墻安全區(qū)域的劃分是否明確合理。是 否9防火墻是否明確以何種方式接入網(wǎng)絡(luò),包

2、括透明模式、混合模式和路由模式。是 否10防火墻是否具有詳細的訪問控制列表。是 否12防火墻是否標(biāo)注了源地址和目的地址。是 否13防火墻是否標(biāo)注了允許和拒絕的動作。是 否14防火墻訪問控制策略中是否出現(xiàn)重復(fù)或沖突。是 否15防火墻接口IP是否有明確的標(biāo)注。是 否16是否對不安全的遠程登錄進行控制。是 否17防火墻是否標(biāo)注NAT地址轉(zhuǎn)換和MAP等。是 否18是否將防火墻配置及時保存并導(dǎo)出。是 否19是否每天有專人查看和分析防火墻日志,并對高危事件進行記錄。是 否20是否具有完備的日志導(dǎo)出和報表功能,原則上應(yīng)每周生成統(tǒng)計報告。是 否21是否有專門的防火墻監(jiān)測報告。是 否22防火墻是否具備雙機熱備功

3、能。是 否23管理人員是否為雙備份。是 否24是否具有防火墻應(yīng)急恢復(fù)方案。是 否25是否對防火墻的CPU、內(nèi)存和硬盤使用情況進行監(jiān)測。是 否運行狀況26是否具有防火墻應(yīng)用情況報告。是 否27是否具有防火墻安全管理狀況報告。是 否28是否具有防火墻系統(tǒng)運行監(jiān)測報告。是 否29售后服務(wù)和技術(shù)支持手段是否完備。是 否附錄2:IDS巡檢表編號生產(chǎn)廠商物理位置所在網(wǎng)絡(luò)檢查日期檢查人責(zé)任人編號檢查內(nèi)容結(jié)果檢查記錄網(wǎng)絡(luò)部署1拓撲圖中是否有明確的表示。是 否2是否以旁路方式接入網(wǎng)絡(luò)。是 否3是否與交換機的鏡向端口相連接。是 否探測引擎的安全性4是否有專門的管理端對其配置管理。是 否5管理員口令是否由專人管理。

4、是 否6IDS網(wǎng)絡(luò)引擎與管理端的通信是否安全。是 否7通信是否采用的加密傳輸方式。是 否8網(wǎng)絡(luò)引擎自身是否安全,有沒有開放多余端口。是 否日志管理9是否對攻擊事件生成記錄。是 否10是否對攻擊事件的危險等級進行定義。是 否11是否對攻擊事件進行歸類。是 否12是否能夠?qū)θ罩緦崟r導(dǎo)出。是 否13是否具有日志備份與恢復(fù)機制。是 否14是否能夠?qū)θ罩具M行審計查詢。是 否15是否能夠?qū)θ罩具M行智能分析。是 否16是否具有日志定期分析制度。是 否17是否對安全事件進行排序,即TOP1-TOP10。是 否18是否對安全時間發(fā)生的頻率進行統(tǒng)計。是 否運行維護19IDS是否具備雙機熱備功能。是 否20是否具有

5、IDS應(yīng)急恢復(fù)方案。是 否21IDS是否與防火墻建立聯(lián)動機制。是 否22是否具有IDS應(yīng)用情況報告。是 否23是否具有IDS安全管理狀況報告。是 否24售后服務(wù)和技術(shù)支持手段是否完備。是 否附錄3:防病毒系統(tǒng)巡檢表編號生產(chǎn)廠商物理位置所在網(wǎng)絡(luò)檢查日期檢查人單機病毒庫服務(wù)器責(zé)任人檢查細目編號檢查項目檢查內(nèi)容結(jié)果檢查記錄1符合性要求是否通過了國家相關(guān)的認證2部署合理性網(wǎng)絡(luò)中是否部署了防病毒系統(tǒng)3是否部署了網(wǎng)絡(luò)版的防病毒軟件4是否部署了病毒庫服務(wù)器5病毒庫服務(wù)器的命名是否一致6防病毒軟件的品牌和版本是否統(tǒng)一7病毒庫升級是否制定了多級病毒庫升級策略8是否禁止客戶端主動連接病毒庫服務(wù)器9是否定制了病毒庫

6、代碼更新策略10病毒查殺是否定制了病毒查殺策略11是否定期對網(wǎng)絡(luò)中的主機進行病毒掃描12是否定期檢測防病毒系統(tǒng)的查殺能力13日志記錄防病毒系統(tǒng)對病毒的入侵是否有完整的記錄14告警機制是否對病毒入侵完備的告警機制15是否能夠及時隔離被感染主機或區(qū)域16應(yīng)急恢復(fù)是否具有應(yīng)急恢復(fù)手段附錄4:審計系統(tǒng)巡檢表編號物理位置所在網(wǎng)絡(luò)外部IP地址內(nèi)部IP地址網(wǎng)關(guān)IP域名服務(wù)器IP操作系統(tǒng)版本號CPU內(nèi)存檢查日期檢查人責(zé)任人檢查細目編號檢查項目檢查內(nèi)容結(jié)果檢查記錄1審計數(shù)據(jù)產(chǎn)生審計數(shù)據(jù)是否包括事件發(fā)生的時間、類型、主客體身份和事件結(jié)果等2是否可以擴充和修改可審計的事件3可審計的事件是否可以追溯到用戶的身份和級別

7、4審計記錄的查閱是否只有授權(quán)用戶才能查閱審計記錄5是否能夠?qū)徲嫷臄?shù)據(jù)進行篩選6審計事件存儲是否有審計數(shù)據(jù)備份與恢復(fù)機制7是否有防止審計數(shù)據(jù)丟失的手段8審計系統(tǒng)自防護審計系統(tǒng)發(fā)出告警后是否可以自動報告安全事件9系統(tǒng)發(fā)生異常后審計是否可以恢復(fù)審計到系統(tǒng)終止前的狀態(tài)附錄5:服務(wù)器巡檢表服務(wù)器檢查列表(AIX)編號生產(chǎn)廠商物理位置所在網(wǎng)絡(luò)外部IP地址內(nèi)部IP地址網(wǎng)關(guān)IP域名服務(wù)器IP操作系統(tǒng)版本號CPU內(nèi)存檢查日期檢查人責(zé)任人編號檢查內(nèi)容結(jié)果檢查記錄安裝和配置1系統(tǒng)已經(jīng)安裝了可信計算庫是 否2系統(tǒng)的版本大于等于4.3是 否3系統(tǒng)已經(jīng)安裝了最新的安全補丁是 否登錄控制4設(shè)置了登錄失敗,鎖定帳戶的次數(shù)是

8、 否5設(shè)置了無效登錄的終端鎖定時間是 否6設(shè)置了終端被禁用后,重新啟用的時間是 否7重新設(shè)置了登錄歡迎信息是 否8系統(tǒng)禁用X-Window系統(tǒng)是 否用戶策略9系統(tǒng)禁止root用戶遠程登錄是 否10root的$PATH環(huán)境變量中沒有當(dāng)前目錄.是 否11系統(tǒng)中已經(jīng)刪除了不必要的系統(tǒng)用戶是 否12系統(tǒng)中已經(jīng)刪除了不必要的系統(tǒng)用戶組是 否13強制密碼不能是字典中的單詞是 否14密碼可以重復(fù)使用的時間大于等于26周是 否15密碼重復(fù)使用的次數(shù)小于等于20次是 否16密碼的生命期最大為周是 否17密碼過期鎖定時間小于等于周是 否18密碼中可重復(fù)字符的最大數(shù)目小于等于是 否19密碼可以被立即修改是 否20密

9、碼至少應(yīng)該包含個字母是 否21密碼中至少包括個唯一字符是 否22密碼的最小長度是6位是 否23root用戶的密碼最小長度是位是 否24密碼包含的非字母字符數(shù)目至少是2是 否服務(wù)安全25bootps已被禁用是 否26系統(tǒng)的小服務(wù)已被禁用是 否27cmsd服務(wù)已被禁用是 否28comsat服務(wù)已被禁用是 否29dtspc服務(wù)已被禁用是 否30exec服務(wù)已被禁用是 否31finger服務(wù)已被禁用是 否32ftp服務(wù)已被禁用是 否33imap2服務(wù)已被禁用是 否34klogin服務(wù)已被禁用是 否35kshell服務(wù)已被禁用是 否36login服務(wù)已被禁用是 否37netstat服務(wù)已被禁用是 否38

10、ntalk和talk服務(wù)已被禁用是 否39pcnfsd服務(wù)已被禁用是 否40pop3服務(wù)已被禁用是 否41rexd服務(wù)已被禁用是 否42quotad服務(wù)已被禁用是 否43rstatd服務(wù)已被禁用是 否44rusersd服務(wù)已被禁用是 否45rwalld服務(wù)已被禁用是 否46shell服務(wù)已被禁用是 否47spayd服務(wù)已被禁用是 否48systat服務(wù)已被禁用是 否49tftp服務(wù)已被禁用是 否50time服務(wù)已被禁用是 否51ttdbserver服務(wù)已被禁用是 否52uucp服務(wù)已被禁用是 否53CDE桌面環(huán)境已被禁用是 否54lpd服務(wù)已被禁用是 否55nfs服務(wù)已被禁用是 否56port

11、map服務(wù)已被禁用是 否57sendmail服務(wù)已被禁用是 否其他安全設(shè)置58系統(tǒng)中已經(jīng)安裝了OpenSSH代替telnet是 否服務(wù)器檢查列表(Windows)編號生產(chǎn)廠商物理位置所在網(wǎng)絡(luò)外部IP地址內(nèi)部IP地址網(wǎng)關(guān)IP域名服務(wù)器IP操作系統(tǒng)版本號CPU內(nèi)存檢查日期檢查人責(zé)任人編號檢查內(nèi)容結(jié)果檢查記錄補丁安裝情況1操作系統(tǒng)是否已經(jīng)安裝相關(guān)的補丁,Windows 2000為SP4,Windows XP 為SP2。是 否2操作系統(tǒng)是否已經(jīng)安裝了全部的HOTFIX。是 否3應(yīng)用程序是否及時進行補丁的更新,包括Office和IE等。是 否賬戶策略4密碼是否符合復(fù)雜性要求。是 否5密碼長度是否符合要求

12、。是 否6是否設(shè)置了密碼最長使用期限。是 否7是否設(shè)置了帳戶鎖定閥值。是 否8是否設(shè)定了帳戶鎖定時間。是 否9是否設(shè)置了復(fù)位帳戶鎖定計數(shù)器。是 否10是否將審核策略更改為成功和失敗。是 否11是否將審核登錄事件更改為成功和失敗。是 否12是否將審核對象訪問設(shè)置為失敗。是 否安全設(shè)置13當(dāng)?shù)卿洉r間用完時自動注銷用戶(啟用)。是 否14在掛起會話之前所需的空閑時間(小于等于30分鐘)。是 否15發(fā)送未加密的密碼到第三方SMB服務(wù)器:(禁用)。是 否16允許對所有驅(qū)動器和文件夾進行軟盤復(fù)制和訪問(禁用)。是 否17故障恢復(fù)控制臺:允許自動系統(tǒng)管理級登錄(禁用)。是 否18清除虛擬內(nèi)存頁面文件(啟用)

13、。是 否19允許系統(tǒng)在未登錄前關(guān)機(禁用)。是 否20交互式登錄:不顯示上次的用戶名(啟用)。是 否注冊表安全21抑制Dr. Watson Crash Dump: HKLMSoftwareMicrosoftDrWatson CreateCrashDump (REG_DWORD) 0是 否22禁止在任何驅(qū)動器上自動運行任何程序: HKLMSoftware MicrosoftWindowsCurrentVersionPoliciesExplorerNoDriveTypeAutoRun (REG_DWORD) 255是 否23用星號掩藏任何的口令輸入; HKLMSoftwareMicrosoft W

14、indowsCurrentVersionPoliciesNetworkHideSharePwds (REG_DWORD) 1是 否24禁止自動執(zhí)行系統(tǒng)調(diào)試器: HKLMSoftware MicrosoftWindows NTCurrentVersionAeDebugAuto (REG_DWORD) 0是 否25禁止自動登錄: HKLMSoftwareMicrosoftWindows NT CurrentVersionWinlogonAutoAdminLogon (REG_DWORD) 0是 否26禁止在藍屏后自動啟動機器: HKLMSystem CurrentControlSetControl

15、CrashControlAutoReboot (REG_DWORD) 0是 否27禁止CD自動運行: HKLMSystemCurrentControlSetServicesCDrom Autorun (REG_DWORD) 0是 否28刪除服務(wù)器上的管理員共享: HKLMSystemCurrentControlSet ServicesLanmanServerParametersAutoShareServer (REG_DWORD) 0是 否29源路由欺騙保護: HKLMSystemCurrentControlSet ServicesTcpipParametersDisableIPSourceR

16、outing (REG_DWORD) 2是 否30幫助防止碎片包攻擊: HKLMSystemCurrentControlSet ServicesTcpipParametersEnablePMTUDiscovery (REG_DWORD) 1是 否31管理keep-alive時間: HKLMSystemCurrentControlSetServicesTcpip ParametersKeepAliveTime (REG_DWORD) 300000是 否32防止SYN Flood攻擊: HKLMSystemCurrentControlSet ServicesTcpipParametersSynAt

17、tackProtect (REG_DWORD) 2是 否33SYN攻擊保護-管理TCP半開sockets的最大數(shù)目: HKLMSystemCurrentControlSetServicesTcpipParameters TcpMaxHalfOpen (REG_DWORD) 100 或 500是 否關(guān)閉的服務(wù)34Alerter 禁止是 否35Clipbook 禁止是 否36Computer Browser 禁止是 否37Internet Connection Sharing 禁止是 否38Messenger 禁止39Remote Registry Service 禁止是 否40Routing a

18、nd Remote Access 禁止是 否41Simple Mail Trasfer Protocol(SMTP) 禁止是 否42Simple Network Management Protocol(SNMP) Service 禁止是 否43Simple Network Management Protocol(SNMP) Trap 禁止是 否44Telnet 禁止是 否45World Wide Web Publishing Service 禁止是 否其他安全設(shè)置46所有的磁盤卷使用NTFS文件系統(tǒng)。是 否47已經(jīng)安裝第三方個人版防火墻。是 否48已經(jīng)安裝防病毒軟件。是 否49防病毒軟件的特征

19、碼和檢查引擎已經(jīng)更新到最新。是 否50防病毒軟件已設(shè)置自動更新。是 否附錄6:數(shù)據(jù)庫巡檢表編號數(shù)據(jù)庫類型物理位置所在網(wǎng)絡(luò)外部IP地址內(nèi)部IP地址網(wǎng)關(guān)IP域名服務(wù)器IP操作系統(tǒng)版本號CPU內(nèi)存檢查日期檢查人責(zé)任人編號檢查內(nèi)容結(jié)果檢查記錄數(shù)據(jù)庫版本升級1是否存在版本過舊,廠商停止技術(shù)支持和發(fā)布升級補丁程序。是 否安全設(shè)置2Oracle是否以root權(quán)限運行。是 否3Oracle運行帳戶unask設(shè)置不合理。是 否4數(shù)據(jù)庫帳戶密碼以明文方式存儲。是 否5Oracle Listener和Oracle Intelligent進程以root帳戶運行。是 否6是否設(shè)置連接超時參數(shù),否則連接的客戶端會一直等待

20、驗證。是 否7是否設(shè)置連接過期參數(shù)。是 否8是否對數(shù)據(jù)庫遠程管理情況下啟用Intelligent Agent。是 否安全使用外部存儲過程和PL/SQL包。9是否安全使用外部存儲過程,外部存儲過程使用不當(dāng)會造成諸多安全問題。是 否10是否限制訪問PL/SQL包,UTL_FILE, UTL_SMTP, UTL_TCP, UTL_HTTP, and DBMS_RANDOM PL/SQL包可能給數(shù)據(jù)庫和主機系統(tǒng)帶來安全隱患,對這些包的訪問應(yīng)當(dāng)嚴格限制。是 否帳戶和密碼安全設(shè)置11Oracle DBA組是否存在未授權(quán)的帳戶。是 否12DBA角色中是否刪除缺省帳戶。是 否13數(shù)據(jù)庫密碼文件安全屬性設(shè)置是否

21、合理。是 否14數(shù)據(jù)庫中是否存在未授權(quán)的帳戶。是 否15是否設(shè)置密碼過期時間。是 否16是否啟用密碼復(fù)雜性驗證功能。是 否17是否啟用登錄失敗鎖定帳戶功能。 是 否18應(yīng)用程序帳戶是否被授予PUBLIC角色。是 否19是否刪除數(shù)據(jù)庫服務(wù)器上的演示帳戶。是 否20非系統(tǒng)對象是否存在SYSTEM表空間,會影響個數(shù)據(jù)庫服務(wù)器。安全配置審計功能21是否啟用審計功能,Oracle能夠把審計日志記錄到數(shù)據(jù)庫中或者OS系統(tǒng)文件中。是 否22Oracle Net配置和日志文件安全屬性設(shè)置是否合理是 否23審計表的所有者是否合理,應(yīng)當(dāng)設(shè)置審計表不能被普通用戶訪問。保護關(guān)鍵文件24Oracle控制文件是否存放在其

22、他的硬盤或者作RAID備份。是 否25是否具有保護Init.ora/spfile.ora文件的措施,該文件被破壞會造成數(shù)據(jù)庫不能正常啟動。是 否附錄7:網(wǎng)絡(luò)設(shè)備檢查列表編號生產(chǎn)廠商/型號物理位置所在網(wǎng)絡(luò)外部IP地址內(nèi)部IP地址操作系統(tǒng)版本號檢查日期檢查人責(zé)任人檢查細目編號檢查項目檢查內(nèi)容結(jié)果檢查記錄1系統(tǒng)安全是否定期更新操作系統(tǒng)的版本2口令管理是否修改網(wǎng)絡(luò)設(shè)備的默認口令3是否設(shè)置口令強度和有效期4是否使用enable secret5是否使用service password-encryption6服務(wù)安全是否關(guān)閉IP直接廣播7是否關(guān)閉HTTP設(shè)置8是否封鎖ICMP PING請求9是否控制Teln

23、et訪問10是否禁止CDP11是否關(guān)閉IP源路由12是否禁用了不必要的服務(wù)13是否限制遠程終端會話14策略安全是否建立準(zhǔn)入、準(zhǔn)出地址過濾策略15是否制定數(shù)據(jù)包過濾策略16是否配置了強加密和密碼加密17是否應(yīng)用Control-plane police預(yù)防DDOS攻擊18是否有完整的系統(tǒng)日志記錄功能,包括AAA、SNMP Trap Syslog、本地日志緩存19是否實施了配置管理,必要時可將路由配置恢復(fù)到原先狀態(tài)20OSPF協(xié)議使用LOOPBACK是否做ROUTE-ID的標(biāo)識21接入層和匯聚層之間是否采用靜態(tài)路由22是否存在黑洞路由即孤立的路由附錄資料:不需要的可以自行刪除 busybox詳解制作

24、根文件系統(tǒng)詳解制作根文件系統(tǒng) 一、FHS(Filesystem Hierarchy Standard)標(biāo)準(zhǔn)介紹當(dāng)我們在linux下輸入ls / 的時候,見到的目錄結(jié)構(gòu)以及這些目錄下的內(nèi)容都大同小異,這是因為所有的linux發(fā)行版在對根文件系統(tǒng)布局上都遵循FHS標(biāo)準(zhǔn)的建議規(guī)定。該標(biāo)準(zhǔn)規(guī)定了根目錄下各個子目錄的名稱及其存放的內(nèi)容:目錄名存放的內(nèi)容/bin必備的用戶命令,例如ls、cp等/sbin必備的系統(tǒng)管理員命令,例如ifconfig、reboot等/dev設(shè)備文件,例如mtdblock0、tty1等/etc系統(tǒng)配置文件,包括啟動文件,例如inittab等/lib必要的鏈接庫,例如C鏈接庫、內(nèi)核

25、模塊/home普通用戶主目錄/rootroot用戶主目錄/usr/bin非必備的用戶程序,例如find、du等/usr/sbin非必備的管理員程序,例如chroot、inetd等/usr/lib庫文件/var守護程序和工具程序所存放的可變,例如日志文件/proc用來提供內(nèi)核與進程信息的虛擬文件系統(tǒng),由內(nèi)核自動生成目錄下的內(nèi)容/sys用來提供內(nèi)核與設(shè)備信息的虛擬文件系統(tǒng),由內(nèi)核自動生成目錄下的內(nèi)容/mnt文件系統(tǒng)掛接點,用于臨時安裝文件系統(tǒng)/tmp臨時性的文件,重啟后將自動清除制作根文件系統(tǒng)就是要建立以上的目錄,并在其中建立完整目錄內(nèi)容。其過程大體包括:編譯安裝busybox,生成/bin、/s

26、bin、/usr/bin、/usr/sbin目錄 利用交叉編譯工具鏈,構(gòu)建/lib目錄 手工構(gòu)建/etc目錄 手工構(gòu)建最簡化的/dev目錄 創(chuàng)建其它空目錄 配置系統(tǒng)自動生成/proc目錄 利用udev構(gòu)建完整的/dev目錄 制作根文件系統(tǒng)的jffs2映像文件 下面就來詳細介紹這個過程。二、編譯安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄這些目錄下存儲的主要是常用命令的二進制文件。如果要自己編寫這幾百個常用命令的源程序,my god, 這簡直是一個噩夢!好在我們有嵌入式Linux系統(tǒng)的瑞士軍刀busybox,事情就簡單很多。1、從 HYPERLINK /

27、 / 下載busybox-1.7.0.tar.bz22、tar xjvf busybox-1.7.0.tar.bz2解包3、修改Makefile文件175 ARCH ?= arm176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busyboxbusybox配置主要分兩部分。第一部分是Busybox Settings,主要編譯和安裝busybox的一些選項。這里主要需要配置:1)、Build Options - Build BusyBox as a static binary (no shared libs),表示編譯busybox時,是否靜態(tài)

28、鏈接C庫。我們選擇動態(tài)鏈接C庫。2)、Installation Options - Applets links (as soft-links) - (X) as soft-links,表示安裝busybox時,將各個命令安裝為指向busybox的軟鏈接還是硬鏈接。我們選擇軟鏈接。3)、Installation Options - (/work/nfs_root/fs_mini3) BusyBox installation prefix,表示busybox的安裝位置。我們選擇/work/nfs_root/fs_mini34)Busybox Library Tuning。保留Command lin

29、e editing以支持命令行編輯;保留History size以支持記憶歷史命令;選中Tab completion和Username completion以支持命令自動補全 第二部分是Applets,他將busybox的支持的幾百個命令分門別類。我們只要在各個門類下選擇想要的命令即可。這里我們基本保持默認設(shè)置。1)選中Networking Utilities - httpd下的Enable -u option,以啟用http服務(wù)器的功能allows the server to run as a specific user5、編譯busyboxmake6、安裝busyboxmake insta

30、ll安裝完成后,可以看到在/work/nfs_root/fs_mini3目錄下生成了binsbinusr/binusr/sbin目錄,其下包含了我們常用的命令,這些命令都是指向bin/busybox的軟鏈接,而busybox本身的大小不到800K:dennisdennis-desktop:/work/nfs_root/fs_mini3$ lsbin linuxrc sbin usrdennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l bintotal 740lrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:5

31、7 addgroup - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 adduser - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 ash - busybox-rwxr-xr-x 1 dennis dennis 749632 2010-04-03 23:57 busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 cat busybox 而普通PC機上的ls命令就有差不多80K的大?。?dennisdennis-desk

32、top:/work/nfs_root/fs_mini3$ ls -l /bin/ls-rwxr-xr-x 1 root root 78004 2007-09-29 20:51 /bin/ls busybox以它嬌小的身軀容納了數(shù)以百計的命令代碼,實在是讓人佩服不已,其不愧嵌入式系統(tǒng)瑞士軍刀之美譽。據(jù)說,busybox的作者身患絕癥,這更讓人欽佩GNU開源軟件的作者們。 三、利用交叉編譯工具鏈,構(gòu)建/lib目錄 光有應(yīng)用程序(命令)是不夠的,因為應(yīng)用程序本身需要使用C庫的庫函數(shù),因此還必需制作for ARM的C庫,并將其放置于/lib目錄。my god,要自己寫C庫的源代碼嗎?不用!還記得交叉編

33、譯工具鏈的3個組成部分嗎?交叉編譯器、for ARM的C庫和二進制工具。哈哈,for ARM的C庫是現(xiàn)成的,我們只需要拷貝過來就可以了。遺憾的是:整個C庫目錄下的文件總大小有26M。而我們根文件系統(tǒng)所在分區(qū)不過區(qū)區(qū)16M而已,根本放不下。怎么辦呢? dennisdennis-desktop:/work/nfs_root/fs_mini3$ du -s -si /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib26M /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib 需要C庫目錄下所有的文件嗎?no,abs

34、olutely no! 讓我們來分析一下glibc庫目錄下內(nèi)容的組成。該目錄下的子目錄和文件共分8類: 目標(biāo)文件,如crtn.o,用于gcc鏈接可執(zhí)行文件 libtool庫文件(.la),在鏈接庫文件時這些文件會被用到,比如他們列出了當(dāng)前庫文件所依賴的其它庫文件,程序運行時無需這些文件 gconv目錄,里面是各種鏈接腳本,在編譯應(yīng)用程序時,他們用于指定程序的運行地址,各段的位置等 靜態(tài)庫文件(.a),例如libm.a,libc.a 動態(tài)庫文件 (.so、.so.0-9*) 動態(tài)鏈接庫加載器ld-2.3.6.so、ld-linux.so.2 其它目錄及文件很顯然,第1、2、3、4、7類文件和目錄

35、是不需要拷貝的。由于動態(tài)鏈接的應(yīng)用程序本身并不含有它所調(diào)用的C庫函數(shù)的代碼,因此執(zhí)行時需要動態(tài)鏈接庫加載器來為它加載相應(yīng)的C庫文件,所以第6類文件是需要拷貝的。除此之外,第5類文件當(dāng)然要拷貝。但第5類文件的大小也相當(dāng)大。dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ du -c -si *.so* 7.2M total 需要全部拷貝嗎?非也,非也!其實,需要哪些庫完全取決于要運行的應(yīng)用程序使用了哪些庫函數(shù)。如果我們只制作最簡單的系統(tǒng),那么我們只需要運行busybox這一個應(yīng)用程序即可。通過執(zhí)行 denn

36、isdennis-desktop:/work/nfs_root/fs_mini3$ arm-linux-readelf -a bin/busybox | grep Shared0 x00000001 (NEEDED) Shared library: libcrypt.so.10 x00000001 (NEEDED) Shared library: libm.so.60 x00000001 (NEEDED) Shared library: libc.so.6 可知:busybox只用到了3個庫:通用C庫(libc)、數(shù)學(xué)庫(libm)、加密庫(libcrypt),因此我們只需要拷貝這3個庫的庫文

37、件即可。但是每個庫都有4個文件,4個文件都要拷貝嗎?當(dāng)然不是。 dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libcrypt.-*-rwxr-xr-x 1 dennis dennis 30700 2008-01-22 05:32 libcrypt-2.3.6.so-rw-r-r- 1 dennis dennis 23118 2008-01-22 05:32 libcrypt.alrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libcrypt.

38、so - libcrypt.so.1lrwxrwxrwx 1 dennis dennis 17 2008-12-22 15:38 libcrypt.so.1 - libcrypt-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libm.-*-rwxr-xr-x 1 dennis dennis 779096 2008-01-22 05:31 libm-2.3.6.so-rw-r-r- 1 dennis dennis 1134282 2008-01-22 05:32 libm.

39、alrwxrwxrwx 1 dennis dennis 9 2008-12-22 15:38 libm.so - libm.so.6lrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libm.so.6 - libm-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libc.-*-rwxr-xr-x 1 dennis dennis 1435660 2008-01-22 05:48 libc-2.3.6.so-rw-r-r- 1 den

40、nis dennis 2768280 2008-01-22 05:31 libc.a-rw-r-r- 1 dennis dennis 195 2008-01-22 05:34 libc.solrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libc.so.6 - libc-2.3.6.so 4個文件中的.a文件是靜態(tài)庫文件,是不需要拷貝的。另外3個文件是: 實際的共享鏈接庫:libLIBRARY_NAME-GLIBC_VERSION.so。當(dāng)然需要拷貝。 主修訂版本的符號鏈接,指向?qū)嶋H的共享鏈接庫:libLIBRARY_NAME.so.MAJOR_R

41、EVISION_VERSION,程序一旦鏈接了特定的鏈接庫,將會參用該符號鏈接。程序啟動時,加載器在加載程序前,會檢索該文件。所以需要拷貝。 與版本無關(guān)的符號鏈接,指向主修訂版本的符號連接(libc.so是唯一的例外,他是一個鏈接命令行:libLIBRARY_NAME.so,是為編譯程序時提供一個通用條目)。這些文件在程序被編譯時會被用到,但在程序運行時不會被用到,所以不必拷貝它。關(guān)于共享庫的2個符號鏈接的作用的特別說明:當(dāng)我們使用gcc hello.c -o hello -lm編譯程序時,gcc會根據(jù)-lm的指示,加頭(lib)添尾(.so)得到libm.so,從而沿著與版本無關(guān)的符號鏈接(

42、libm.so - libm.so.6)找到libm.so.6并記錄在案(hello的ELF頭中),表示hello需要使用libm.so.6這個庫文件所代表的數(shù)學(xué)庫中的庫函數(shù)。而當(dāng)hello被執(zhí)行的時候,動態(tài)鏈接庫加載器會從hello的ELF頭中找到libm.so.6這個記錄,然后沿著主修訂版本的符號鏈接(libm.so.6 - libm-2.3.6.so)找到實際的共享鏈接庫libm-2.3.6.so,從而將其與hello作動態(tài)鏈接??梢?,與版本無關(guān)的符號鏈接是供編譯器使用的,主修訂版本的符號鏈接是供動態(tài)鏈接庫加載器使用的,而實際的共享鏈接庫則是供應(yīng)用程序使用的。通過以上分析,我們只需要拷貝

43、3個庫(每個庫各1個主修訂版本的符號鏈接和1個實際的共享鏈接庫)以及動態(tài)鏈接庫加載器(1個符號鏈接和1個實體文件)。步驟如下:dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ mkdir /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libcrypt-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/

44、work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libcrypt.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libm-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libm.so.* /work/nfs_ro

45、ot/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libc-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libc.so.* /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

46、/lib$ cp -l ld-* /work/nfs_root/fs_mini3/lib 四、手工構(gòu)建/etc目錄 /etc目錄存放的是系統(tǒng)程序的主配置文件,因此需要哪些配置文件取決于要運行哪些系統(tǒng)程序。即使最小的系統(tǒng)也一定會運行1號用戶進程init,所以我們至少要手工編寫init的主配置文件inittab。busybox的inittab文件的語法、語義與傳統(tǒng)的SYSV的inittab有所不同。 inittab文件中每個條目用來定義一個需要init啟動的子進程,并確定它的啟動方式,格式為:。例如:ttySAC0:askfirst:-/bin/sh 表示子進程要使用的控制臺,若省略則使用與ini

47、t進程一樣的控制臺 表示運行級別,busybox init程序這個字段沒有意義 表示init進程如何控制這個子進程 sysinit:系統(tǒng)啟動后最先執(zhí)行,只執(zhí)行一次,init進程等待它結(jié)束后才繼續(xù)執(zhí)行其它動作 wait:系統(tǒng)執(zhí)行完sysinit條目后執(zhí)行,只執(zhí)行一次,init進程等待它結(jié)束后才繼續(xù)執(zhí)行其它動作 once:系統(tǒng)執(zhí)行完wait條目后執(zhí)行,只執(zhí)行一次,init進程不等待它結(jié)束 respawn:啟動完once進程后,init進程監(jiān)測發(fā)現(xiàn)子進程退出時,重新啟動它 askfirst:啟動完respawn進程后,與respawn類似,不過init進程先輸出” Please press Ente

48、r to activate this console“,等用戶輸入回車后才啟動子進程 shutdown:當(dāng)系統(tǒng)關(guān)機時 restart:Busybox中配置了CONFIG_FEATURE_USE_INITAB,并且init進程接收到SIGUP信號時執(zhí)行,先重新讀取、解析/etc/inittab文件,再執(zhí)行restart程序 ctrlaltdel:按下ctrl+alt+del鍵時執(zhí)行,不過在串口控制臺中無法輸入它 表示進程對應(yīng)的二進制文件。如果前面有-號,表示該程序是“可以與用戶進行交互的”我們制作最簡單的/etc/inittab文件,其內(nèi)容如下::sysinit:/etc/init.d/rcS:

49、askfirst:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a r 制作最簡單的腳本程序文件/etc/init.d/rcS,其內(nèi)容如下: #!/bin/shifconfig eth0 7修改shell腳本文件/etc/init.d/rcS的權(quán)限,以使其可被執(zhí)行:# chmod a+x /etc/init.d/rcS五、手工構(gòu)建最簡化的/dev目錄 在linux機器上,執(zhí)行l(wèi)s /dev可看到幾百個設(shè)備文件,我需要手工創(chuàng)建它們嗎?maybe,我只需要手工創(chuàng)建幾個設(shè)備文件!我怎么知道我應(yīng)該創(chuàng)建哪幾個設(shè)備文件呢?管它呢,先看看開發(fā)板

50、上可愛的linux的反應(yīng)再說。 啟動Linux操作系統(tǒng),顯示: VFS: Mounted root (nfs filesystem).Freeing init memory: 112KWarning: unable to open an initial console. 這說明,內(nèi)核已經(jīng)成功掛載根文件系統(tǒng),但卻未能成功啟動第1個用戶進程init。通過錯誤消息“unable to open an initial console”搜索內(nèi)核源代碼,找到init/main.c文件。748 static int noinline init_post(void)749 750 free_initmem()

51、;751 unlock_kernel();752 mark_rodata_ro();753 system_state = SYSTEM_RUNNING;754 numa_default_policy();755 756 if (sys_open(const char _user *) /dev/console, O_RDWR, 0) 0)757 printk(KERN_WARNING Warning: unable to open an initial console.n);758 759 (void) sys_dup(0);760 (void) sys_dup(0);761 762 if (

52、ramdisk_execute_command) 763 run_init_process(ramdisk_execute_command);764 printk(KERN_WARNING Failed to execute %sn,765 ramdisk_execute_command);766 767 768 /*769 * We try each of these until one succeeds.770 *771 * The Bourne shell can be used instead of init if we are772 * trying to recover a rea

53、lly broken machine.773 */774 if (execute_command) 775 run_init_process(execute_command);776 printk(KERN_WARNING Failed to execute %s. Attempting 777 defaults.n, execute_command);778 779 run_init_process(/sbin/init);780 run_init_process(/etc/init);781 run_init_process(/bin/init);782 run_init_process(

54、/bin/sh);783 784 panic(No init found. Try passing init= option to kernel.);785 顯然,內(nèi)核錯誤是由175行不能打開/dev/console所致。通過查看已經(jīng)安裝好的linux機器的/dev/console設(shè)備文件,可知其是字符設(shè)備文件,主設(shè)備號為5,次設(shè)備號為1: dennisdennis-desktop:/work/nfs_root/fs_mini3/etc$ ls -l /dev/consolecrw- 1 root root 5, 1 2010-04-08 08:40 /dev/console 因此,我們使用下

55、面的命令創(chuàng)建它: HYPERLINK mailto:dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod console c 5 1 還需要創(chuàng)建其它設(shè)備文件嗎?只有天知道!再看看linux的反應(yīng)。 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit: cant open /dev/null: No such file or directory 這次我們

56、有經(jīng)驗了,如法炮制,創(chuàng)建/dev/null設(shè)備文件:dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod null c 1 3 再次重啟開發(fā)板上的linux,顯示 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please press Enter to activate

57、 this console.starting pid 231, tty : /bin/sh# 哈哈,我們成功了,終于可以K歌去了。六、創(chuàng)建其它空目錄K完歌回來,繼續(xù)戰(zhàn)斗。dennisdennis-desktop:/work/nfs_root/fs_mini3$ mkdir home root proc sys tmp mnt var再次重啟動開發(fā)板上的linux。咦,似乎有些問題。VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please pre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論