新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 拿起手術(shù)刀 深入剖解路由器的“心臟”技術(shù)

拿起手術(shù)刀 深入剖解路由器的“心臟”技術(shù)

作者: 時間:2018-09-06 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/201809/388544.htm

ifconfig eth0 192.168.0.101 up

boa-c/home/

修改后重新編譯內(nèi)核,再下載到硬件板運行.運行uclinux后,不需要配置就可以直接通過IE來訪問http://192.168.0.101,看到你的網(wǎng)頁了。

⑵uclinux下實現(xiàn)動態(tài)Web頁面的CGI技術(shù)

到目前為止,實現(xiàn)動態(tài)Web頁面有4種技術(shù)可供選擇:CGI(Common Gateway Interface), ASP(ActiveXServerPage),PHP(PersonalHomePage)和JSP(JavaServerPage).在uclinux下如果要實現(xiàn)動態(tài)網(wǎng)頁,只能采用CGI,因此目前uclinux還不支持ASP, PHP等動態(tài)Web頁面技術(shù)。CGI(通用網(wǎng)關(guān)接口)提供Web服務(wù)器一個執(zhí)行外部程序的通道,這種服務(wù)端技術(shù)使得瀏覽器和服務(wù)器之間具有交互性。CGI程序?qū)儆谝粋€外部程序,需要編譯成可執(zhí)行文件,以便在服務(wù)端運行。瀏覽器將用戶輸入的數(shù)據(jù)送到Web服務(wù)器,Web服務(wù)器將數(shù)據(jù)使用STDIN送給CGI程序,在執(zhí)行CGI程序后,可能會訪問存儲數(shù)據(jù)的一些文檔,最后使用STDOUT輸出HTML形式的結(jié)構(gòu)文件,經(jīng)Web服務(wù)器送回瀏覽器顯示給用戶。CGI程序可以用任何程序設(shè)計語言編寫,如Shell腳本語言、Perl,F(xiàn)ortran, Pascal, C語言等。但目前uclinux不支持Pert, Fortran等語言,而且C語言在平臺無關(guān)性上表示不錯,所以我們選擇用C來編寫CGI程序。另外,uClinux也不支持?jǐn)?shù)據(jù)庫,所以需要保存的數(shù)據(jù)只能保存到文件中,CGI查詢數(shù)據(jù)時也是查詢這些文件,而不是訪問數(shù)據(jù)庫。

⑶uClinux下動態(tài)Web頁面的實現(xiàn)

下面通過一個例子來說明如何實現(xiàn)uClinux下的動態(tài)Web頁面技術(shù)。此例子的目的是使用戶能夠通過Web頁面內(nèi)嵌表單提交數(shù)據(jù),并能把用戶提交的數(shù)據(jù)通過Web瀏覽器正確地返回給用戶。實現(xiàn)動態(tài)Web頁面的第一步是用HTML語言編寫Web頁及內(nèi)建表單。編寫Web頁面時,要由ACTION屬性來指定相關(guān)的CGI程序,如ACTION=cgi-bin/demo;由MOTHOD屬性來指明所用的提交數(shù)據(jù)的方法,即MOTHOD=POST(GET)。

實現(xiàn)動態(tài) Web頁面的第二步是用C編寫CGI程序,CGI程序分為以下幾部分:①根據(jù)POST方法或GET方法從提交的表單中接收數(shù)據(jù);②URL編碼的解碼;③用printf() 函數(shù)來產(chǎn)生HTML源代碼,并將經(jīng)過解碼后的數(shù)據(jù)正確地返回給瀏覽器。包括demo.c, cgivars.h和cgivars.c三個文件。將編寫好的CGI程序編譯成二進(jìn)制文件放在cgi-bin/目錄下,CGI程序能被正確地執(zhí)行,最終CGI程序就可以對上述表單數(shù)據(jù)的進(jìn)行處理了。

下面對程序稍加說明。若以GET方法提交數(shù)據(jù),表單中的數(shù)據(jù)被保存在QUERY_STRING環(huán)境變量中,通過調(diào)用函數(shù)getenv(QUERY_STRING)來讀取數(shù)據(jù);若以POST方法提交數(shù)據(jù),則程序先從CONTENT LENGTH環(huán)境量得到數(shù)據(jù)的字長,然后從標(biāo)準(zhǔn)輸入中讀取相應(yīng)長度的字符串即可得到提交的數(shù)據(jù)。數(shù)組postinput[i] 中保存的就是從表單中提取的數(shù)據(jù)。

URL編碼的解碼過程較為復(fù)雜,URL編碼的規(guī)則下:①變量之間用“”分開;② 變量與其對應(yīng)值之間用“=”連接;③空格符用“+”代替;④特殊意義的字符用%接相應(yīng)的十六進(jìn)制ASCI碼代替。解碼即為編碼的逆過程。在程序中,對于從表單中提取過來的postinput[i]中的數(shù)據(jù),當(dāng)發(fā)現(xiàn)字符為“+”時,將它轉(zhuǎn)換成空格;當(dāng)發(fā)現(xiàn)字符為“”時,意味著個名字2值對的結(jié)束,在此處將字符中切成幾個字符串;當(dāng)再現(xiàn)字符為“=”時,意味著一個名字/值對的名字部分的結(jié)束,在此再將名字/值對分開。最后通過調(diào)用unescape_url(char *url)子函數(shù)將十六進(jìn)制ASCII碼值表示的特殊字符轉(zhuǎn)換成相應(yīng)的ASCII字符。

3、PPPOE撥號實現(xiàn)

PPPOE主要針對ADSL寬帶接入方式,實現(xiàn)用戶的的認(rèn)證上網(wǎng)方式就是采用這種方式接入。

⑴PPPOE簡介

1998年后期問世的以太網(wǎng)上點對點協(xié)議(PPP over Ethernet)技術(shù)是由Redback網(wǎng)絡(luò)公司、客戶端軟件開發(fā)商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETF RFC制的基礎(chǔ)上聯(lián)合開發(fā)的。通過把最經(jīng)濟(jì)的局域網(wǎng)技術(shù)以太網(wǎng)和點對點協(xié)議的可擴(kuò)展性及管理控制功能結(jié)合在一起,網(wǎng)絡(luò)服務(wù)提供商和電信運營商便可利用可靠和熟悉的技術(shù)來加速部署高速互聯(lián)網(wǎng)業(yè)務(wù)。它使服務(wù)提供商在通過數(shù)字用戶線、電纜調(diào)制解調(diào)器或無線連接等方式,提供支持多用戶的寬帶接入服務(wù)時更加簡便易行.同時該技術(shù)亦簡化了最終用戶在動態(tài)地選擇這些服務(wù)時的操作.

⑵PPPOE實現(xiàn)

實現(xiàn)步驟 :

pppoe的實現(xiàn)有兩種方式,一種是作為一個用戶態(tài)的應(yīng)用程序運行,就是rp-pppoe這個程序;另一種是選擇在kernel ppp里支持pppoe功能,這同時也需要pppd支持pppoe。

具體的細(xì)節(jié)實現(xiàn)步驟本文不做詳述,有興趣的讀者可以查閱相關(guān)的Linux資料進(jìn)行更深一步的學(xué)習(xí)研究。

4、基于IPTable過濾式防火墻

網(wǎng)絡(luò)防火墻用來保護(hù)一個網(wǎng)絡(luò)不受來自另一個網(wǎng)絡(luò)的攻擊,是網(wǎng)絡(luò)安全環(huán)節(jié)中進(jìn)行的一個防御步驟。在路由器中配置IPTable過濾式防火墻,可以對IP數(shù)據(jù)封包進(jìn)行規(guī)則檢查和過濾,保證內(nèi)網(wǎng)安全。

⑴防火墻概述

防火墻是一套能夠在兩個或兩個以上的網(wǎng)絡(luò)之間,明顯區(qū)隔出實體線路聯(lián)機(jī)的軟硬件設(shè)備組合。被區(qū)隔開來的網(wǎng)絡(luò),可以透過封包轉(zhuǎn)送技術(shù)來相互通訊,透過防火墻的安全管理機(jī)制,可以決定哪些數(shù)據(jù)可以流通,哪些資料無法流通,藉此達(dá)到網(wǎng)絡(luò)安全保護(hù)的目的。

防火墻產(chǎn)品可以概略歸類為硬件式防火墻和軟件式防火墻,但實際上無論是硬件式或軟件式防火墻,它們都需要使用硬件來作為聯(lián)機(jī)介接,也需要使用軟件來設(shè)定安全政策,嚴(yán)格說兩者間的差別并不太大。我們只能從使用的硬件與操作系統(tǒng)來加以區(qū)分,硬件式防火墻是使用專有的硬件,而軟件式防火墻則使用一般的計算機(jī)硬件,硬件式防火墻使用專有的操作系統(tǒng),而軟件式防火墻則使用一般的操作系統(tǒng)。

防火墻依照其運作方式來分類,可以區(qū)分為封包過濾式防火墻(Packet Filter)、應(yīng)用層網(wǎng)關(guān)式防火墻(Application-Level Gateway,也有人把它稱為Proxy防火墻)、電路層網(wǎng)關(guān)式防火墻(Circuit-Level Gateway).其中被廣為采用的是封包過濾式防火墻,本文要介紹的iptables防火墻就是屬于這一種。

封包過濾是最早被實作出來的防火墻技術(shù),它是在TCP/IP四層架構(gòu)下的IP層中運作.封包過濾器的功能主要是檢查通過的每一個IP數(shù)據(jù)封包,如果其標(biāo)頭中所含的數(shù)據(jù)內(nèi)容符合過濾條件的設(shè)定就進(jìn)行進(jìn)一步的處理,主要的處理方式包含:放行(accept)、丟棄(drop)或拒絕(reject)。要進(jìn)行封包過濾,防火墻必須要能分析通過封包的來源IP與目的地IP,,還必須能檢查封包類型、來源端口號與目的端口號、封包流向、封包進(jìn)入防火墻的網(wǎng)卡接口、TCP的聯(lián)機(jī)狀態(tài)等數(shù)據(jù)。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉