日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]讓關(guān)閉的Linux操作系統(tǒng)實現(xiàn)防火墻功能

一次在網(wǎng)上閑逛,突然看到論壇有一條消息說有一種方法,可以讓已經(jīng)關(guān)閉的Linux機器繼續(xù)運行ipchains,并且讓這臺機器繼續(xù)實現(xiàn)防火墻的功能。當(dāng)時我的第一反映是不屑一顧,難道一個防火墻還可以在關(guān)機的狀態(tài)下工作?依照論壇中所指的鏈接,我找到了一個帖子,上面說在2.0.x內(nèi)核中,使用Shutdown ?h(關(guān)機)命令可以使防火墻仍處于激活狀態(tài),而此時沒有掛載驅(qū)動器,也沒有進程在運行。也就是說防火墻將在Level 0下運行,但仍然可以進行包過濾。不過,貼子說該功能在2.2.x系統(tǒng)的內(nèi)核中已經(jīng)不具備了。

看到這兒,我有些坐不住了,我決定在內(nèi)核為2.2.x的機器上也實現(xiàn)類似的功能,并且我希望不在內(nèi)核中增加任何補丁。事實證明,我做到了。

安全的防火墻

我認為安全意味著這樣一種可能性,也就是假設(shè)防火墻已經(jīng)被完全關(guān)閉,并且已經(jīng)清除了所有進程空間和文件系統(tǒng),這樣就不會有任何黑客可以對該系統(tǒng)進行訪問。因為該機器上已經(jīng)完全沒有了進程空間,也沒有掛載驅(qū)動器。因此,黑客就無法在系統(tǒng)外使代碼運行在內(nèi)核空間中。因為這需要寫解釋代碼來產(chǎn)生所需要的結(jié)果,而這是一項非常艱苦的工作。

不過需要提請注意的是,該防火墻并不能避免“拒絕服務(wù)式”的攻擊。事實上,對于“拒絕服務(wù)式”攻擊以及其它的專門耗盡資源的攻擊,該防火墻并不比任何其它的防火墻有效。當(dāng)然,現(xiàn)實中,一般來說系統(tǒng)并不容易受到這種攻擊。

因為這種方法可以確保沒有一個用戶可以控制該機器,因此可以使安全性大大的提高。這正好應(yīng)了IT業(yè)安全領(lǐng)域常說的一句話,要想讓一臺機器絕對安全,就應(yīng)該把它關(guān)機,然后將其鎖在一間屋子里。

開始實施

我用于測試的是一臺基于x86的Red Hat 6.2機器,它安裝有兩個網(wǎng)卡。整個過程無需特殊的系統(tǒng)或者對內(nèi)核進行增改。開始,我嘗試著在控制運行的腳本中搜索,希望能找到一點相關(guān)的線索。最后,我把焦點定格在rc0(該腳本在機器關(guān)閉時運行)腳本上。事實證明,這正是我要找的地方。于是我開始從中刪除一些腳本,并且進行了一系列測試。

經(jīng)過一段相對較短的時間,我得出結(jié)論,對于Red Hat Linux 6.2,刪除以下腳本就可以實現(xiàn)上述的功能:

/etc/rc.d/rc0.d/S00killall

/etc/rc.d/rc0.d/K90network

/etc/rc.d/rc0.d/K92ipchains

刪除這三個腳本以后,我們就可以使網(wǎng)絡(luò)仍然可以工作,并且使ipchains仍然運行。切記,一定要把killall腳本刪除,因為它的任務(wù)是尋找/etc/rc.d/rc0.d/中所有的目錄,并且運行所有以K為開頭的腳本。也就是說該腳本會運行K90網(wǎng)絡(luò)和K92ipchains腳本,而這兩個腳本會刪除網(wǎng)絡(luò)和ipchains。

一些解釋

實際上,我們是把Linux設(shè)置成了一個內(nèi)核子集。當(dāng)機器暫停時,甚至是機器運行了Shutdown以后,這一部分內(nèi)核仍駐留在內(nèi)存中。這種方法可以避免在關(guān)機的過程中,機器會中止所有的進程,關(guān)閉所有網(wǎng)卡以及卸載所有的文件系統(tǒng)。此外,這種方法使得機器在關(guān)閉以后,不能再執(zhí)行任何內(nèi)部的任務(wù)。然而,內(nèi)核仍然在運行,內(nèi)存管理器也還在運行。

由于內(nèi)核仍然在運行,所以在關(guān)機以后,所有我們運行的,基于內(nèi)核的任務(wù)都可以被運行。當(dāng)然,由于大部分的任務(wù)都需要進行一些I/O操作(正如本例一樣)。因此,我們必須讓機器關(guān)閉以后,仍然使這些端口存在。這是通過K90network來實現(xiàn)。它使得網(wǎng)卡在關(guān)機以后也不會停止工作。

此外,任何需要使用到的基于內(nèi)核的服務(wù)都必須要處于運行狀態(tài)(比如ipchains)。在缺省情況下,當(dāng)系統(tǒng)關(guān)閉時,會把所有的ipchains規(guī)則都中止。如果這樣的話,在本例中,防火墻將無法工作,所以必須要把清除ipchains規(guī)則的腳本刪除。在本例中即要刪除K92ipchains腳本。

局限性

在關(guān)閉系統(tǒng)以后,只讓部分程序運行,這顯然會有一些局限性。在本例中,最明顯的局限性就是如果客戶端的IP地址是通過后臺程序(比如PPP、DHCP)等獲得的,那么就將無法實現(xiàn)該功能。這就限制了那些使用動態(tài)連接用戶的使用。此外,由于在關(guān)系系統(tǒng)過程中,所有的用戶代理空間(比如Socks5)都將被關(guān)閉,因此在本例的設(shè)置中,只能實現(xiàn)包過慮和NAT功能。

此外要考慮的一點是,由于所有的驅(qū)動器都被卸載了,所有的交換空間都從機器上被刪除,所以如果機器的內(nèi)存足夠大的話,那么在處理的信息量很大時也不會有問題。但是如果使用的是一臺性能比較差的老機器,那么在傳輸?shù)男畔⒘窟^大時就會出現(xiàn)一些問題。

總結(jié)

作為一個Linux愛好者,我覺得這一小發(fā)現(xiàn)很有意思。此外,在我們完成特定的安全任務(wù)時,這也給了我們一種特定的解決模式。目前,我最想知道的,是否其它的自由Unix(比如OpenBSD)也可以做成功類似的實驗。此外,雖然我是在家中做的實驗,但是如果將其用于中小型公司的話,我想可以為公司提供安全極高的數(shù)據(jù)包過濾功能。此外,也可以為一些大的商業(yè)任務(wù)提供一個非常安全的、高帶寬的防火墻或者路由器


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在Zynq MPSoC開發(fā)中,實現(xiàn)PS端Linux與PL端自定義IP核的AXI互聯(lián)是構(gòu)建高性能異構(gòu)系統(tǒng)的關(guān)鍵環(huán)節(jié)。這種互聯(lián)方式充分發(fā)揮了ARM處理器的軟件優(yōu)勢與FPGA的硬件加速能力,為復(fù)雜應(yīng)用提供了強大的計算平臺。

關(guān)鍵字: Zynq MPSoC Linux

在物聯(lián)網(wǎng)與智能設(shè)備飛速普及的當(dāng)下,嵌入式系統(tǒng)的安全性與穩(wěn)定性愈發(fā)關(guān)鍵。實時操作系統(tǒng)(RTOS)憑借其高確定性、低延遲的特性,成為工業(yè)控制、醫(yī)療設(shè)備、航空電子等安全敏感領(lǐng)域的核心支撐。而內(nèi)存保護單元(MPU)作為硬件級安全...

關(guān)鍵字: Linux Windows

3月10日消息,2026年開年,一個名為OpenClaw的開源項目以閃電般的速度席卷了GitHub。它在短短一天內(nèi)就斬獲了9000顆星

關(guān)鍵字: OpenClaw Linux

3月6日消息,在摩根士丹利會議上,NVIDIA CEO黃仁勛分享了關(guān)于Agentic AI(代理式人工智能)轉(zhuǎn)折點的見解,并將開源軟件OpenClaw評價為“當(dāng)代最重磅的軟件發(fā)布”。

關(guān)鍵字: OpenClaw Linux

Linux內(nèi)存管理是操作系統(tǒng)的核心機制之一,通過虛擬內(nèi)存與物理內(nèi)存的分離設(shè)計,實現(xiàn)了多進程內(nèi)存隔離、高效資源利用和系統(tǒng)穩(wěn)定性保障。

關(guān)鍵字: Linux 內(nèi)存

在Linux系統(tǒng)中,進程管理是內(nèi)核的核心功能之一,其核心目標(biāo)是通過高效的調(diào)度機制和進程切換技術(shù),實現(xiàn)多任務(wù)并發(fā)執(zhí)行。

關(guān)鍵字: Linux CPU

內(nèi)核是操作系統(tǒng)的核心,它作為應(yīng)用程序與硬件設(shè)備之間的"中間人",負責(zé)進程調(diào)度、內(nèi)存管理、硬件通信和系統(tǒng)調(diào)用等關(guān)鍵功能。Linux和Windows作為全球使用最廣泛的兩大操作系統(tǒng),其內(nèi)核設(shè)計理念、架構(gòu)和運行機制存在本質(zhì)差異...

關(guān)鍵字: Linux Windows

在Linux系統(tǒng)中,當(dāng)開發(fā)者使用mmap()系統(tǒng)調(diào)用將磁盤文件映射到進程的虛擬地址空間時,一個看似簡單的指針操作背后,隱藏著操作系統(tǒng)內(nèi)核與硬件協(xié)同工作的復(fù)雜機制。這種機制不僅突破了傳統(tǒng)文件IO的效率瓶頸,更重新定義了內(nèi)存...

關(guān)鍵字: Linux 文件IO 內(nèi)存映射

在Linux驅(qū)動開發(fā)領(lǐng)域,持續(xù)集成與持續(xù)部署(CI/CD)流水線通過自動化流程將代碼變更快速轉(zhuǎn)化為可靠部署,而KernelCI與LTP測試套件的深度集成則成為保障驅(qū)動穩(wěn)定性的關(guān)鍵技術(shù)組合。本文將從原理分析、應(yīng)用場景及實現(xiàn)...

關(guān)鍵字: CICD流水線 Linux

在Linux系統(tǒng)中,動態(tài)庫(共享庫)是程序運行的重要組成部分。當(dāng)程序需要調(diào)用動態(tài)庫時,系統(tǒng)必須能夠找到這些庫文件的位置。

關(guān)鍵字: 動態(tài)庫 Linux
關(guān)閉