版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、圖書(shū)分類(lèi)號(hào):密 級(jí):畢業(yè)設(shè)計(jì)(論文)linux下的防火墻網(wǎng)頁(yè)程序研發(fā)linux iptables web applications under development學(xué)生學(xué)號(hào)學(xué)生姓名學(xué)院名稱(chēng)信電工程學(xué)院專(zhuān)業(yè)名稱(chēng)計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師2011年6月8日 徐州工程學(xué)院學(xué)位論文原創(chuàng)性聲明本人鄭重聲明: 所呈交的學(xué)位論文,是本人在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。除文中已經(jīng)注明引用或參考的內(nèi)容外,本論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)過(guò)的作品或成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)注。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。論文作者簽名: 日期: 年 月
2、日徐州工程學(xué)院學(xué)位論文版權(quán)協(xié)議書(shū)本人完全了解徐州工程學(xué)院關(guān)于收集、保存、使用學(xué)位論文的規(guī)定,即:本校學(xué)生在學(xué)習(xí)期間所完成的學(xué)位論文的知識(shí)產(chǎn)權(quán)歸徐州工程學(xué)院所擁有。徐州工程學(xué)院有權(quán)保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交學(xué)位論文的紙本復(fù)印件和電子文檔拷貝,允許論文被查閱和借閱。徐州工程學(xué)院可以公布學(xué)位論文的全部或部分內(nèi)容,可以將本學(xué)位論文的全部或部分內(nèi)容提交至各類(lèi)數(shù)據(jù)庫(kù)進(jìn)行發(fā)布和檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。論文作者簽名: 導(dǎo)師簽名: 日期: 年 月 日 日期: 年 月 日摘要隨著internet的迅猛發(fā)展,安全問(wèn)題成為了網(wǎng)絡(luò)信息傳輸?shù)念^等大事,針對(duì)安全問(wèn)題,我們引入了防火
3、墻的概念。本系統(tǒng)基于linux系統(tǒng),核心是linux下的強(qiáng)大的netfilter/iptables工具,由于linux下的操作為命令行模式,對(duì)普通用戶(hù)的使用造成了極大的不便,本系統(tǒng)使用b/s模式,將防火墻設(shè)置簡(jiǎn)潔直觀的用網(wǎng)頁(yè)的方式顯示出來(lái),以java+mysq+tomcat為平臺(tái),使用eclipse工具編寫(xiě)。本系統(tǒng)將實(shí)現(xiàn)數(shù)據(jù)包過(guò)濾、端口映射等防火墻必備功能。關(guān)鍵詞 internet;linux;eclipse;mysql;java;tomcat;防火墻;安全;abstractwith the rapid development of internet, safety problems beca
4、me the priority of network information transmission, according to security issues, we introduce the concept of the firewall.this system is based on linux, the core is the powerful tool of netfilter/iptables under linux, because the under linux operation is command-line mode, for the operation of the
5、 use of ordinary users, caused a great inconvenience, this system uses b/s model, the firewall settings concise intuitive way with web pages, in order to show java+mysq+tomcat mysq , eclipse tool used to writte platform. this system will achieve the packet filtering, port mapping etc. function neces
6、sary firewall.keywords internet linux eclipse mysql java tomcat firewall safe目 錄1系統(tǒng)概述11.1研究背景及意義11.2論文總體結(jié)構(gòu)12系統(tǒng)關(guān)鍵技術(shù)及介紹22.1防火墻技術(shù)簡(jiǎn)介22.1.1 linux下的防火墻22.1.2 iptables簡(jiǎn)介22.1.3 iptables結(jié)構(gòu)22.2 b/s模式和開(kāi)發(fā)平臺(tái)42.2.1 b/s模式42.2.2開(kāi)發(fā)工具與開(kāi)發(fā)環(huán)境的介紹43系統(tǒng)設(shè)計(jì)63.1防火墻結(jié)構(gòu)設(shè)計(jì)63.1.1防火墻設(shè)計(jì)構(gòu)圖63.1.2防火墻設(shè)計(jì)思想63.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)73.2.1 er圖73.2.2數(shù)據(jù)表設(shè)計(jì)9
7、3.3前臺(tái)代碼設(shè)計(jì)123.4后臺(tái)代碼設(shè)計(jì)134系統(tǒng)實(shí)現(xiàn)144.1防火墻管理154.1.1防火墻規(guī)則列表154.1.2防火墻規(guī)則添加/編輯174.1.3防火墻規(guī)則的刪移動(dòng)184.2端口映射管理194.2.1dnat管理194.2.2snat管理214.3常用參數(shù)設(shè)置ipip-mac服務(wù)224.3.1ip管理224.3.2 ip mac綁定234.3.3服務(wù)管理24結(jié)論29致謝30參考文獻(xiàn)31附錄32附錄132附錄2351系統(tǒng)概述1.1研究背景及意義隨著internet的迅猛發(fā)展,安全問(wèn)題成為了網(wǎng)絡(luò)信息傳輸?shù)念^等大事,針對(duì)安全問(wèn)題,我們引入了防火墻的概念,。防火墻指的是一個(gè)由軟件和硬件設(shè)備組合而成
8、、在內(nèi)部網(wǎng)和外部網(wǎng)之間、專(zhuān)用網(wǎng)與公共網(wǎng)之間的界面上構(gòu)造的保護(hù)屏障.是一種獲取安全性方法的形象說(shuō)法,它是一種計(jì)算機(jī)硬件和軟件的結(jié)合,使internet與intranet之間建立起一個(gè)安全網(wǎng)關(guān),防火墻能夠有效的限制外部網(wǎng)絡(luò)對(duì)內(nèi)部網(wǎng)絡(luò)的訪問(wèn),并且對(duì)內(nèi)部網(wǎng)絡(luò)提供的服務(wù)進(jìn)行映射,從而有效的保護(hù)內(nèi)部網(wǎng)絡(luò)。對(duì)于internet上的系統(tǒng),不管是什么情況都要明確一點(diǎn):網(wǎng)絡(luò)是不安全的。因此,雖然創(chuàng)建一個(gè)防火墻并不能保證系統(tǒng)100安全,但卻是絕對(duì)必要的。1.2論文總體結(jié)構(gòu)論文的總體結(jié)構(gòu)如下:第二章是系統(tǒng)關(guān)鍵技術(shù)介紹。主要介紹了防火墻原理、數(shù)據(jù)包結(jié)構(gòu)、b/s模式和開(kāi)發(fā)平臺(tái);第三章是系統(tǒng)設(shè)計(jì)。本章主要介紹了系統(tǒng)的總體設(shè)
9、計(jì),包括防火墻規(guī)則設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì),前臺(tái)代碼設(shè)計(jì)以及后臺(tái)代碼設(shè)計(jì);第四章是系統(tǒng)實(shí)現(xiàn)。本章主要展示系統(tǒng)的實(shí)現(xiàn)過(guò)程,通過(guò)系統(tǒng)截圖和關(guān)鍵代碼說(shuō)明;最后,對(duì)論文進(jìn)行總結(jié)。2系統(tǒng)關(guān)鍵技術(shù)及介紹2.1防火墻技術(shù)簡(jiǎn)介2.1.1 linux下的防火墻linux提供了一個(gè)非常優(yōu)秀的防火墻工具netfilter/iptabels。它完全免費(fèi)、功能強(qiáng)大、使用靈活、可以對(duì)流入和流出的信息進(jìn)行細(xì)化控制,且可以在一臺(tái)低配置機(jī)器上很好地運(yùn)行。2.1.2 iptables簡(jiǎn)介netfilter/iptabels應(yīng)用程序,被認(rèn)為是linux中實(shí)現(xiàn)包過(guò)濾功能的第四代應(yīng)用程序。netfilter/iptables包含在2.4以后的
10、內(nèi)核中,它可以實(shí)現(xiàn)防火墻、nat(地址轉(zhuǎn)換)和數(shù)據(jù)包的分割等功能。由兩個(gè)組件netfilter 和 iptables 組成: netfilter 組件也稱(chēng)為內(nèi)核空間(kernelspace),是內(nèi)核的一部分,由一些信息包過(guò)濾表組成,這些表包含內(nèi)核用來(lái)控制信息包過(guò)濾處理的規(guī)則集。 iptables 組件是一種工具,也稱(chēng)為用戶(hù)空間(userspace),它使插入、修改和除去信息包過(guò)濾表中的規(guī)則變得容易。由兩個(gè)組件netfilter 和 iptables 組成。 netfilter/iptables從ipchains和ipwadfm(ip防火墻管理)演化而來(lái),功能更加強(qiáng)大。習(xí)慣上把netfilter
11、/iptabels簡(jiǎn)稱(chēng)為iptables。2.1.3 iptables結(jié)構(gòu)iptables包含三個(gè)表:filter表、nat表、mangle表。filter表包含以下三個(gè)鏈: input:主要與封包想要進(jìn)入我們 linux 本機(jī)有關(guān) output:主要與我們 linux 本機(jī)所要送出的封包有關(guān) forward:封包轉(zhuǎn)遞到后端的計(jì)算機(jī)中nat表包含以下三個(gè)鏈: prerouting:在進(jìn)行路由判斷之前所要進(jìn)行的規(guī)則 postrouting:在進(jìn)行路由判斷之后所要進(jìn)行的規(guī)則 output:與發(fā)送出去的封包有關(guān)以下為iptables示意圖:圖2-1 iptables示意圖圖2-2為數(shù)據(jù)包的結(jié)構(gòu)圖:圖
12、2-2 數(shù)據(jù)包結(jié)構(gòu)圖2.2 b/s模式和開(kāi)發(fā)平臺(tái)2.2.1 b/s模式 b/s模式的概念b/s(browser/server,瀏覽器/服務(wù)器)模式又稱(chēng)b/s結(jié)構(gòu)。它是隨著internet技術(shù)的興起,對(duì)c/s模式應(yīng)用的擴(kuò)展。在這種結(jié)構(gòu)下,用戶(hù)工作界面是通過(guò)ie瀏覽器來(lái)實(shí)現(xiàn)的。b/s模式最大的好處是運(yùn)行維護(hù)比較簡(jiǎn)便,能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如lan, wan, internet/intranet等)訪問(wèn)和操作共同的數(shù)據(jù)。 b/s與c/s的對(duì)比及優(yōu)勢(shì)1投入成本比較。b/s結(jié)構(gòu)軟件一般只有初期一次性投入成本。對(duì)于集團(tuán)來(lái)講,有利于軟件項(xiàng)目控制和避免it黑洞,而c/s結(jié)構(gòu)的軟件
13、則不同,隨著應(yīng)用范圍的擴(kuò)大,投資會(huì)連綿不絕。 2硬件投資保護(hù)比較。在對(duì)已有硬件投資的保護(hù)方面,兩種結(jié)構(gòu)也是完全不同的。當(dāng)應(yīng)用范圍擴(kuò)大,系統(tǒng)負(fù)載上升時(shí),c/s結(jié)構(gòu)軟件的一般解決方案是購(gòu)買(mǎi)更高級(jí)的中央服務(wù)器,原服務(wù)器放棄不用,這是由于c/s軟件的兩層結(jié)構(gòu)造成的,這類(lèi)軟件的服務(wù)器程序必須部署在一臺(tái)計(jì)算機(jī)上;而b/s結(jié)構(gòu)則不同,隨著服務(wù)器負(fù)載的增加,可以平滑地增加服務(wù)器的個(gè)數(shù)并建立集群服務(wù)器系統(tǒng),然后在各個(gè)服務(wù)器之間做負(fù)載均衡。有效地保護(hù)了原有硬件投資。 3企業(yè)快速擴(kuò)張支持上的比較。對(duì)于成長(zhǎng)中的企業(yè),快速擴(kuò)張是它的顯著特點(diǎn)。對(duì)于c/s結(jié)構(gòu)的軟件來(lái)講,由于必須同時(shí)安裝服務(wù)器和客戶(hù)端、建設(shè)機(jī)房、招聘專(zhuān)業(yè)管
14、理人員等,所以無(wú)法適應(yīng)企業(yè)快速擴(kuò)張的特點(diǎn)。而b/s結(jié)構(gòu)軟件,只需一次安裝,以后只需設(shè)立賬號(hào)、培訓(xùn)即可。2.2.2開(kāi)發(fā)工具與開(kāi)發(fā)環(huán)境的介紹 java語(yǔ)言的特點(diǎn)及優(yōu)勢(shì)java是一種簡(jiǎn)單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線(xiàn)程的動(dòng)態(tài)語(yǔ)言。java語(yǔ)言的優(yōu)良特性使得java應(yīng)用具有無(wú)比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。java對(duì)對(duì)象技術(shù)的全面支持和java平臺(tái)內(nèi)嵌的api能縮短應(yīng)用系統(tǒng)的開(kāi)發(fā)時(shí)間并降低成本。java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開(kāi)放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。 mysql的介紹mysql是
15、一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),目前mysql被廣泛地應(yīng)用在internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了mysql作為網(wǎng)站數(shù)據(jù)庫(kù)。 eclipse和tomcat的介紹eclipse 是一個(gè)開(kāi)放源代碼的、基于 java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 java 開(kāi)發(fā)工具(java development tools,jdt)。tomcat 是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,由于運(yùn)行時(shí)占用的系統(tǒng)資源小,
16、擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等優(yōu)點(diǎn),在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶(hù)不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試jsp 程序的首選。3系統(tǒng)設(shè)計(jì)3.1防火墻結(jié)構(gòu)設(shè)計(jì)3.1.1防火墻設(shè)計(jì)構(gòu)圖防火墻設(shè)置主要包括防火墻管理和端口映射管理,ip管理、ip mac管理、服務(wù)管理為防火墻管理和端口映射管理提供參數(shù)圖3-1 系統(tǒng)結(jié)構(gòu)防火墻設(shè)置防火墻管理新建規(guī)則編輯規(guī)則刪除規(guī)則規(guī)則位置移動(dòng)服務(wù)管理新建編輯刪除ip管理新建編輯刪除ip mac管理新建編輯刪除端口映射管理dnat snat新建規(guī)則編輯規(guī)則刪除規(guī)則規(guī)則位置移動(dòng)3.1.2防火墻設(shè)計(jì)思想作為一個(gè)防火墻,對(duì)于數(shù)據(jù)包的過(guò)濾是必須的。由圖1-1可以看出,數(shù)據(jù)包的經(jīng)過(guò)
17、防火墻的流程為:1.從nat表的prerouting鏈進(jìn)入防火墻;2.進(jìn)行路由判斷,路由分析數(shù)據(jù)包判斷目的地址為防火墻本機(jī)還是防火墻后面的主機(jī);3.目的地址為防火墻本機(jī),數(shù)據(jù)包會(huì)依次經(jīng)過(guò)filter表的input鏈,本地進(jìn)程處理,filter表的output鏈,nat表的postrouting鏈,然后送出防火墻。目的地址如果不是本機(jī),則經(jīng)過(guò)filter表的forward鏈,nat表的postrouting鏈送入后面的主機(jī);經(jīng)過(guò)以上分析,不難看出,filter的input forward兩個(gè)鏈和nat表的prerouting是數(shù)據(jù)包的必經(jīng)之路,由于prerouting不便于數(shù)據(jù)包分別控制,那么防
18、火墻的過(guò)濾功能由input forward實(shí)現(xiàn),這兩個(gè)鏈默認(rèn)為drop,即不接受所有的數(shù)據(jù)包,除了防火墻程序本身必須的端口以外所有的端口都將由界面添加,input鏈用于保護(hù)防火墻,forward用于保護(hù)防火墻后面的主機(jī)。防火墻的另外一個(gè)重要功能就是端口映射,端口映射可以將防火墻后面的主機(jī)的地址、端口映射到防火墻主機(jī)的任意未使用的端口上面,以此來(lái)實(shí)現(xiàn)保護(hù)后面主機(jī)的功能。實(shí)現(xiàn)端口映射功能主要是通過(guò)nat表的prerouting鏈和postrouting鏈來(lái)實(shí)現(xiàn),prerouting鏈實(shí)現(xiàn)目的地址轉(zhuǎn)換,即dnat;postrouting鏈實(shí)現(xiàn)源地址轉(zhuǎn)換,即snat。通過(guò)dnat、snat的合理設(shè)置就
19、可以實(shí)現(xiàn)端口映射功能和代理上網(wǎng)功能。3.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)采用mysql數(shù)據(jù)庫(kù)。在mysql數(shù)據(jù)庫(kù)中創(chuàng)建enlink數(shù)據(jù)庫(kù),建立6張數(shù)據(jù)表:firewall、fwdnat、fwsnat、fwip、fwipmac、fwservice本數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)本著相互關(guān)聯(lián)的設(shè)計(jì)思想設(shè)計(jì)的,各個(gè)表之間通過(guò)id進(jìn)行關(guān)聯(lián)。3.2.1 er圖(1)firewall防火墻規(guī)則表er圖如圖3-2所示圖3-2 防火墻規(guī)則表er圖firewallidnamesourceipsourceip2destipdestipmaskserviceapplicationwebfilterenableethinethoutnumsou
20、rcemask2destmask2selectsourceipselectdestipdestip2timeflagtimestarttimestopdays(2)fwdnat dnat表er圖如圖3-3所示action圖3-3 防火墻規(guī)則表er圖fwdnatidnamesourceipsourceip2destipdestipmasksourceservicesourceinterfacewebfilterenableethinethoutnumsourcemask2destmask2selectsourceipselectdestipdestip2timeflagtimestarttime
21、stopdays(3)fwsnat snat表er圖如圖3-4所示action圖3-4 防火墻規(guī)則表er圖fwsnatidnamesourceipsourceip2destipdestipmasksourceservicesourceinterfacewebfilterenableethinethoutnumsourcemask2destmask2selectsourceipselectdestipdestip2timeflagtimestarttimestopdays(4)fwip ip表er圖如圖3-5所示id圖3-5 防火墻規(guī)則表er圖fwipnamemaskvirtualipethnu
22、m(5)fwipmac ipmac綁定表er圖如圖3-6所示fwipmacidipmac圖3-6 防火墻規(guī)則表er圖(6)fwservice 服務(wù)表er圖如圖3-7所示fwserviceicmptypes圖3-7 防火墻規(guī)則表er圖idnameprotocolports3.2.2數(shù)據(jù)表設(shè)計(jì)(1)firewall表設(shè)計(jì):表3-1 firewall字段名中文類(lèi)型&長(zhǎng)度&是否為空&主鍵id序號(hào)bigint(20) not null 主鍵name名稱(chēng)char(20) nullsourceip源地址1char(20) nullsourceip2源地址2char(20) nulldestip目的地址1ch
23、ar(20) nulldestmask目的地址2char(20) nullservice服務(wù)char(40) nullapplication應(yīng)用char(20) nullwebfilter過(guò)濾表char(1) nullaction動(dòng)作char(10) nullenable是否啟用char(1) nullethin數(shù)據(jù)進(jìn)口char(5) nullnum編號(hào)int(10) nullethout數(shù)據(jù)出口char(5) nullsourcemask2源地址子網(wǎng)掩碼2char(20) nulldestmask2目的地址子網(wǎng)掩碼2char(20) nullselectsourceip選擇的源地址char(
24、1) nullselectdestip選擇的目的地址char(1) nulldestip2目的地址2char(20) nulltimeflag是否啟用時(shí)間char(1) nulltimestart開(kāi)始時(shí)間char(1) nulltimestop結(jié)束時(shí)間char(1) nulldays星期xchar(1) null(2)fwdnat表設(shè)計(jì):表3-2 fwdnat字段中文類(lèi)型&長(zhǎng)度&是否為空&主鍵id序號(hào)bigint(20) null 主鍵name名稱(chēng)char(20) nullsourceinterface源接口char(20) nullwire接口char(20) nullsourceip源地址
25、char(20) nullinnerinterface數(shù)據(jù)進(jìn)口char(20) nulldestip目的地址char(20) nullsourceservice源服務(wù)char(20) nulldestservice目的服務(wù)char(20) nullstate狀態(tài)char(1) nullnum編號(hào)int(10) nullsourceip2源地址2char(20) nullsourcemask2源地址子網(wǎng)掩碼2char(20) nulldestip2目的地址2char(20) nulldestmask2目的地址子網(wǎng)掩碼2char(20) nullselectsourceip選擇的源地址char(1
26、) nullselectdestip選擇的目的地址char(1) nullipmac是否啟用ipmac綁定char(1) nullipmacidsipmac綁定char(10) nulltimeflag是否啟用時(shí)間char(10) nulltimestart開(kāi)始時(shí)間char(10) nulltimestop結(jié)束時(shí)間char(10) nulldays星期xchar(10) nullaction動(dòng)作char(10) nullethin數(shù)據(jù)進(jìn)口char(10) nullethout數(shù)據(jù)出口char(10) null(3)fwsnat表設(shè)計(jì):表3-3 fwsnat字段中文類(lèi)型&長(zhǎng)度&是否為空&主鍵id
27、序號(hào)bigint(20) null 主鍵name名稱(chēng)char(20) nullsourceinterface源接口char(20) nullwire接口char(20) nullsourceip源地址char(20) nullinnerinterface數(shù)據(jù)進(jìn)口char(20) nulldestip目的地址char(20) nullsourceservice源服務(wù)char(20) nulldestservice目的服務(wù)char(20) nullstate狀態(tài)char(1) nullnum編號(hào)int(10) nullsourceip2源地址2char(20) nullsourcemask2源地址
28、子網(wǎng)掩碼2char(20) nulldestip2目的地址2char(20) nulldestmask2目的地址子網(wǎng)掩碼2char(20) nullselectsourceip選擇的源地址char(1) nullselectdestip選擇的目的地址char(1) nullipmac是否啟用ipmac綁定char(1) nullipmacidsipmac綁定char(10) nulltimeflag是否啟用時(shí)間char(10) nulltimestart開(kāi)始時(shí)間char(10) nulltimestop結(jié)束時(shí)間char(10) nulldays星期xchar(10) nullaction動(dòng)作c
29、har(10) nullethin數(shù)據(jù)進(jìn)口char(10) nullethout數(shù)據(jù)出口char(10) null(4)fwip表設(shè)計(jì):表3-4 fwip字段中文類(lèi)型&長(zhǎng)度&是否為空&主鍵id序號(hào)bigint(20) unsigned not nullname名稱(chēng)char(20) nullipip地址char(20) nullmask子網(wǎng)掩碼char(20) nullvirtualip虛擬ip地址int(2) nullethnum網(wǎng)卡編號(hào)int(10) null(5)fwipmac表設(shè)計(jì):表3-5 fwipmac字段中文類(lèi)型&長(zhǎng)度&是否為空&主鍵id序號(hào)bigint(20) null 主鍵ip
30、ip地址char(20) nullmacmac地址char(20) null(6)fwservice表設(shè)計(jì):表3-6 fwservice字段中文類(lèi)型&長(zhǎng)度&是否為空&主鍵id序號(hào)bigint(20) null 主鍵name名稱(chēng)char(20) nullprotocol協(xié)議char(40) nullports端口char(20) nullicmptypeicmp數(shù)據(jù)包類(lèi)型char(1) null3.3前臺(tái)代碼設(shè)計(jì)本系統(tǒng)界面使用jsp文件實(shí)現(xiàn),主要結(jié)構(gòu)如下:服務(wù)管理,ip管理,ipmac管理用于設(shè)置常用的參數(shù);防火墻管理、端口映射管理用于防火墻設(shè)置,其中端口映射管理包含dnat和snat兩部分,可
31、以分別設(shè)置源地址轉(zhuǎn)換和目的地址轉(zhuǎn)換??梢葬槍?duì)端口、地址、接口分別對(duì)數(shù)據(jù)包進(jìn)行限制。前臺(tái)文件如下: firewareadd.jsp防火墻規(guī)則添加界面firewarelist.jsp 防火墻規(guī)則列表界面fwdnatadd.jsp 目的地址轉(zhuǎn)換添加界面fwdnatlist.jsp 目的地址轉(zhuǎn)換列表界面fwsnatadd.jsp 源地址轉(zhuǎn)換添加界面fwsnatlist.jsp 源地址轉(zhuǎn)換列表界面fwipadd.jsp 預(yù)定義ip地址添加界面fwiplist.jsp 預(yù)定義ip地址列表界面fwipmacadd.jsp ip-mac 綁定添加界面fwipmaclist.jspip-mac 列表界面fwip
32、vadd.jsp 虛擬ip地址添加界面fwipvlist.jsp 虛擬ip地址列表界面fwserviceadd.jsp服務(wù)添加界面fwservicelist.jsp服務(wù)列表界面以上文件實(shí)現(xiàn)了網(wǎng)頁(yè)防火墻的設(shè)置界面??傮w上來(lái)說(shuō),*add.jsp文件為規(guī)則添加界面,*list.jsp文件為規(guī)則列表界面。前臺(tái)代碼設(shè)計(jì)如圖3-8所示:圖3-8 前臺(tái)設(shè)計(jì)圖 防火墻設(shè)置端口映射管理防火墻管理snatdnat參數(shù)ip管理ipmac管理服務(wù)管理3.4后臺(tái)代碼設(shè)計(jì)后臺(tái)java代碼基于strtus框架,從前臺(tái)接收到參數(shù)以后通過(guò)strtus-config文件執(zhí)行相關(guān)操作,首先將參數(shù)保存到數(shù)據(jù)庫(kù)當(dāng)中,然后根據(jù)參數(shù)生成相
33、應(yīng)規(guī)則寫(xiě)入文件,并保存到linux下的配置目錄中并執(zhí)行。后臺(tái)代碼主要由action和form組成:*action.java文件中主要包含業(yè)務(wù)邏輯實(shí)現(xiàn)代,*form.java文件為實(shí)體類(lèi),主要用于保存前臺(tái)傳來(lái)的參數(shù)。后臺(tái)設(shè)計(jì)文件如下:firewareaddaction.java 防火墻規(guī)則添加功能firewarelistaction.java 防火墻規(guī)則列表顯示、管理功能fwdnataddaction.java 目的地址轉(zhuǎn)換規(guī)則添加功能fwdnatlistaction.java 目的地址轉(zhuǎn)換列表顯示、管理功能fwipaddaction.java 預(yù)定義ip地址添加功能fwiplistaction
34、.java 預(yù)定義ip地址列表顯示、管理功能fwipmacaddaction.java ipmac綁定添加功能fwipmaclistaction.java ipmac綁定列表顯示、管理功能fwipvaddaction.java 虛擬ip地址添加功能fwipvlistaction.java 虛擬ip地址列表顯示、管理功能fwserviceaddaction.java 服務(wù)添加功能fwservicelistaction.java 服務(wù)列表顯示、管理功能fwsnataddaction.java 源地址轉(zhuǎn)換規(guī)則添加功能fwsnatlistaction.java 源地址轉(zhuǎn)換規(guī)則列表顯示、管理功能后臺(tái)代碼
35、設(shè)計(jì)如圖3-9所示:前臺(tái)strtus-config后臺(tái)數(shù)據(jù)庫(kù)腳本文件查詢(xún)action寫(xiě)入數(shù)據(jù)庫(kù)寫(xiě)入并執(zhí)行文件查詢(xún)數(shù)據(jù)庫(kù)圖3-9 后臺(tái)設(shè)計(jì)圖 4系統(tǒng)實(shí)現(xiàn)4.1防火墻管理在防火墻管理中您可以通過(guò)設(shè)定具體的規(guī)則,從而對(duì)網(wǎng)絡(luò)訪問(wèn)進(jìn)行過(guò)濾,可以設(shè)置需要過(guò)濾的ip地址、接口、服務(wù),以及滿(mǎn)足規(guī)則是所執(zhí)行的動(dòng)作。4.1.1防火墻規(guī)則列表圖4-1 防火墻規(guī)則列表 如圖4-1所示,在本界面上可以實(shí)現(xiàn)對(duì)防火墻規(guī)則的添加,編輯、刪除、移動(dòng)功能,點(diǎn)擊名稱(chēng)或者選中要編輯的規(guī)則以后點(diǎn)擊編輯按鈕可以進(jìn)入規(guī)則編輯界面;選中任意一條規(guī)則點(diǎn)擊向上移或者向下移可以改變規(guī)則在系統(tǒng)中的位置以達(dá)到不同的目的。在頁(yè)面上列出數(shù)據(jù)庫(kù)中保存的規(guī)則
36、需要檢索數(shù)據(jù)庫(kù)并且放入一個(gè)list里面并傳到前臺(tái),實(shí)現(xiàn)代碼如下:string sql = select a.id id,a.name name,a.action action,a.enable enable,a.num num,a.sourceip2 sourceip2,a.sourcemask2 sourcemask2, +b.name service,c.name destip from fireware a,fwservice b,fwip c +where a.service=b.id and a.destip=c.id and num=?;pjpreparedstatement ps
37、 = new pjpreparedstatement(myform.getconn(),sql);ps.setstring(1, rs1.getstring(num);rs = ps.executequery();while (rs.next() string sourceip = rs.getstring(sourceip2)+/+rs.getstring(sourcemask2);i = i + 1;if (i (integer.parseint(myform.getcurrentpage() - 1)* pagecount& i = integer.parseint(myform.get
38、currentpage()* pagecount) arraylist mylist = new arraylist();mylist.add(rs.getstring(id);mylist.add(rs.getstring(name);mylist.add(sourceip);mylist.add(rs.getstring(destip);mylist.add(rs.getstring(service);mylist.add(rs.getstring(action);mylist.add(rs.getstring(enable);mylist.add(rs.getstring(num);li
39、st.add(mylist);/上移 private void dodownward(fwdnatlistform myform) throws sqlexception, ioexception, exshowonpagetop, interruptedexception / todo auto-generated method stub int num; string sql = ; pjpreparedstatement ps = null; sql = select num from fwdnat where id = ?; ps = new pjpreparedstatement(m
40、yform.getconn(), sql); ps.setstring(1, myform.getuseridlist()0); resultset rs = ps.executequery(); if(rs.next() num = integer.parseint(rs.getstring(num); string sql1 = select max(num) from fwdnat; pjpreparedstatement ps1 = new pjpreparedstatement(myform.getconn(), sql1); resultset rs1 = ps1.executeq
41、uery(); if(rs1.next() int num1 = integer.parseint(rs1.getstring(max(num); if(num num1) string sql2 = select id from fwdnat where num = ?; pjpreparedstatement ps2 = new pjpreparedstatement(myform.getconn(), sql2); ps2.setstring(1, integer.tostring(num+1); resultset rs2 = ps2.executequery(); if(rs2.ne
42、xt() string userid = rs2.getstring(id);string sql3 = update fwdnat set num = ? where id = ?;pjpreparedstatement ps3 = new pjpreparedstatement(myform.getconn(), sql3); ps3.setstring(1, integer.tostring(num); ps3.setstring(2, userid); ps3.executeupdate(); sql = update fwdnat set num = ? where id = ?;
43、pjpreparedstatement ps4 = new pjpreparedstatement(myform.getconn(), sql3); ps4.setstring(1, integer.tostring(num+1); ps4.setstring(2, myform.getuseridlist()0); ps4.executeupdate(); else return; 4.1.2防火墻規(guī)則添加/編輯圖4-2 防火墻規(guī)則添加、編輯1)名稱(chēng):為新建的防火墻管理輸入一個(gè)名稱(chēng);2)序號(hào):輸入一個(gè)序號(hào),注意不能超過(guò)已有序號(hào)的最大值+1,但可以和已有序號(hào)相同。3)預(yù)定義源地址:選擇一個(gè)預(yù)先
44、定義好的源地址。4)自定義源地址:輸入ip地址及子網(wǎng)掩碼。5)預(yù)定義目的地址:選擇一個(gè)預(yù)先定義好的目的地址。6)自定義目的地址:輸入ip地址及子網(wǎng)掩碼。7)外進(jìn)接口:選擇一個(gè)接口。8)外出接口:選擇一個(gè)接口。9)服務(wù):選擇一個(gè)服務(wù)。10)規(guī)則生效時(shí)間:啟用后可以選擇該規(guī)則在什么時(shí)間啟用11)動(dòng)作:選擇當(dāng)滿(mǎn)足以上定義的規(guī)則時(shí)將執(zhí)行的動(dòng)作。11)是否啟用:勾選該選項(xiàng),將立即啟用該規(guī)則。12)點(diǎn)擊“保存”按鈕保存以上信息。規(guī)則添加、編輯頁(yè)面實(shí)際上一樣的,只不過(guò)編輯界面的時(shí)候可以直接顯示以前已經(jīng)填過(guò)的信息實(shí)現(xiàn)這個(gè)功能的示例代碼如下:/這是如何在一個(gè)文本框中顯示數(shù)據(jù)庫(kù)中已存在的數(shù)據(jù)input type=
45、text name=sourceip2 value= size=15 maxlength=60 disabled /input type=text name=sourcemask2 value= size=15 maxlength=60 disabled /在這個(gè)界面的上序號(hào)是自動(dòng)生成的,可以不填寫(xiě);如果輸入小于自動(dòng)生成的序號(hào)的數(shù)字則插入該條規(guī)則,如果輸入的序號(hào)大于生成的序號(hào)則提示出錯(cuò)。4.1.3防火墻規(guī)則的刪移動(dòng)無(wú)論刪除還是移動(dòng),原理都是先根據(jù)操作更新數(shù)據(jù)庫(kù)然后重寫(xiě)文件,重寫(xiě)文件的實(shí)現(xiàn)代碼如下:/打開(kāi)文件filewriter fw = new filewriter(new file(/usr
46、/local/enlink/bin/iptables_policy_rule);string netip1 = select column_name from information_schema.columns where column_name like %netip% and table_name=systemtemp;pjpreparedstatement psnetip = new pjpreparedstatement(myform.getconn(),netip1);resultset rsnetip = psnetip.executequery();arraylist alne
47、tip = new arraylist();fw.write(content);fw.close();/執(zhí)行腳本execcommand.exec(/usr/local/enlink/bin/iptables.sh);4.2端口映射管理nat常用于私有地址域與公用地址域的轉(zhuǎn)換以解決ip地址匱乏問(wèn)題。在防火墻上實(shí)現(xiàn)nat后,可以隱藏受保護(hù)網(wǎng)絡(luò)的內(nèi)部拓?fù)浣Y(jié)構(gòu),在一定程度上提高網(wǎng)絡(luò)的安全性。nat還可以提供動(dòng)態(tài)網(wǎng)絡(luò)地址及端口轉(zhuǎn)換功能,實(shí)現(xiàn)負(fù)載均衡等功能。4.2.1dnat管理dnat規(guī)則列表:圖4-3 dnat列表 如圖4-3所示,在dnat界面上可以對(duì)已經(jīng)存在的dnat規(guī)則進(jìn)行編輯、刪除、移動(dòng)等操作
48、實(shí)現(xiàn)相應(yīng)的功能。dnat規(guī)則添加界面:1)名稱(chēng)。為您即將定義的端口映射命名;2)序號(hào):輸入一個(gè)序號(hào),注意不能超過(guò)已有序號(hào)的最大值+1,但可以和已有序號(hào)相同。3)預(yù)定義映射目的ip:選擇一個(gè)預(yù)定義的目的ip。4)自定義映射目的ip:填寫(xiě)映射目的ip地址及相應(yīng)的子網(wǎng)掩碼。5)預(yù)定義源ip:選擇一個(gè)預(yù)定義的源映射ip。6)自定義源ip:填寫(xiě)源映射ip地址及相應(yīng)的子網(wǎng)掩碼。7)源服務(wù):選擇一個(gè)源映射服務(wù),即防火墻會(huì)把該服務(wù)映射到目標(biāo)機(jī)器服務(wù)上。8)映射目的服務(wù):選擇一個(gè)映射目的服務(wù),即目標(biāo)機(jī)器實(shí)際運(yùn)行的服務(wù)。9)ipmac綁定:若啟用該選項(xiàng),則只有ipmac列表中選定的地址才進(jìn)行映射,其他地址將不能訪
49、問(wèn)映射資源。10)規(guī)則生效時(shí)間:啟用后可以選擇該規(guī)則在什么時(shí)間啟用11)狀態(tài):選擇該選項(xiàng)可以立即啟用該映射。12)單擊“保存”,保存以上配置。如圖4-4所示,在dnat新增界面上可以進(jìn)行詳細(xì)的設(shè)置,綁定ip mac、設(shè)置啟用時(shí)間等功能動(dòng)態(tài)顯示,以達(dá)到簡(jiǎn)潔的效果。圖4-4 dnat添加/編輯界面 4.2.2snat管理snat列表:圖4-5 snat列表 新建snat添加界面如圖4-6所示,1)名稱(chēng)。為您即將定義的端口映射命名;2)序號(hào):輸入一個(gè)序號(hào),注意不能超過(guò)已有序號(hào)的最大值+1,但可以和已有序號(hào)相同。3)預(yù)定義映射目的ip:選擇一個(gè)預(yù)定義的目的ip。4)自定義映射目的ip:填寫(xiě)映射目的ip地址及相應(yīng)的子網(wǎng)掩碼。5)預(yù)定義源ip:選擇一個(gè)預(yù)定義的源映射ip。6)自定義源ip:填寫(xiě)源映射ip地址及相應(yīng)的子網(wǎng)掩碼。7)源服務(wù):選擇一個(gè)源映射服務(wù),即防火墻會(huì)把該服務(wù)映射到目標(biāo)機(jī)器服務(wù)上。8)映射目的服務(wù):選擇一個(gè)映射目的服務(wù),即目標(biāo)機(jī)器實(shí)際運(yùn)行的服務(wù)。9)規(guī)則生效時(shí)間:啟用后可以選擇該規(guī)則在什么時(shí)間啟用10)狀態(tài):選擇該選項(xiàng)可以立即啟用該映射。11)單擊“保存”,保存以上配置。snat與dnat的區(qū)別在于在ipta
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版商業(yè)建筑外墻改造與拆除一體化服務(wù)合同3篇
- 2025版土地承包經(jīng)營(yíng)權(quán)轉(zhuǎn)包合同(含農(nóng)業(yè)保險(xiǎn))2篇
- 二零二五版物流運(yùn)輸保證合同印花稅繳納規(guī)定2篇
- 2025年度木材產(chǎn)業(yè)鏈上下游合作發(fā)展合同4篇
- 2025年寬帶網(wǎng)絡(luò)安全協(xié)約
- 2025年壓瘡預(yù)防護(hù)理服務(wù)合同
- 2025年委托招標(biāo)合同
- 2025年卵巢囊腫手術(shù)協(xié)議
- 2025年度木材加工行業(yè)安全監(jiān)管合作協(xié)議3篇
- 2025年加盟運(yùn)營(yíng)推廣合作協(xié)議
- 眼的解剖結(jié)構(gòu)與生理功能課件
- 小學(xué)網(wǎng)管的工作總結(jié)
- 2024年銀行考試-興業(yè)銀行筆試參考題庫(kù)含答案
- 泵站運(yùn)行管理現(xiàn)狀改善措施
- 2024屆武漢市部分學(xué)校中考一模數(shù)學(xué)試題含解析
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術(shù)標(biāo)準(zhǔn)》
- 浙教版七年級(jí)下冊(cè)科學(xué)全冊(cè)課件
- 弧度制及弧度制與角度制的換算
- 瓦楞紙箱計(jì)算公式測(cè)量方法
- DB32-T 4004-2021水質(zhì) 17種全氟化合物的測(cè)定 高效液相色譜串聯(lián)質(zhì)譜法-(高清現(xiàn)行)
- DB15T 2724-2022 羊糞污收集處理技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論