什么是
防火墻?真的是不怕火的墻嗎?
一、
防火墻的概念
防火墻(Firewall),也稱防護(hù)墻,是由Check Point 創(chuàng)立者Gil Shwed于1993 年創(chuàng)造并引進(jìn)國際互聯(lián)網(wǎng)(US5606668(A)1993-12-15)。
它是一種坐落內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)之間的網(wǎng)絡(luò)安全系統(tǒng)。是一項信息安全的防護(hù)系統(tǒng),按照特定的規(guī)矩,答應(yīng)或是約束傳輸?shù)臄?shù)據(jù)通過。
在網(wǎng)絡(luò)的國際里,要由防火墻過濾的便是承載通信數(shù)據(jù)的通信包。
在網(wǎng)絡(luò)中,所謂“防火墻”,是指一種將內(nèi)部網(wǎng)和大眾訪問網(wǎng)(如Internet)分隔的辦法,它實踐上是一種阻隔技能。防火墻是在兩個網(wǎng)絡(luò)通訊時執(zhí)行的一種訪問操控尺度,它能答應(yīng)你“同意”的人和數(shù)據(jù)進(jìn)入你的網(wǎng)絡(luò),一起將你“不同意”的人和數(shù)據(jù)拒之門外,最大極限地阻撓網(wǎng)絡(luò)中的黑客來訪問你的網(wǎng)絡(luò)。換句話說,假如不通過防火墻,公司內(nèi)部的人就無法訪問Internet,Internet上的人也無法和公司內(nèi)部的人進(jìn)行通信。
二、防火墻的發(fā)展進(jìn)程
防火墻從誕生開端,已閱歷了四個發(fā)展階段:
依據(jù)路由器的防火墻
用戶化的防火墻東西套
樹立在通用操作系統(tǒng)上的防火墻
具有安全操作系統(tǒng)的防火墻
現(xiàn)階段常見的防火墻歸于具有安全操作系統(tǒng)的防火墻,例如NETEYE、NETSCREEN、TALENTIT等。
三、
防火墻的根本類型
網(wǎng)絡(luò)層防火墻
網(wǎng)絡(luò)層防火墻可視為一種 IP 封包過濾器,運(yùn)作在底層的TCP/IP協(xié)議倉庫上。能夠以枚舉的方式只答應(yīng)符合特定規(guī)矩的封包通過,其他的一概制止穿越防火墻(病毒除外,防火墻不能避免病毒侵入)。這些規(guī)矩一般能夠經(jīng)由辦理員界說或修正,不過某些防火墻設(shè)備或許只能套用內(nèi)置的規(guī)矩。
使用層防火墻
使用層防火墻是在 TCP/IP 倉庫的“使用層”上運(yùn)作,您運(yùn)用瀏覽器時所發(fā)生的數(shù)據(jù)流或是運(yùn)用 FTP 時的數(shù)據(jù)流都是歸于這一層。使用層防火墻能夠阻攔進(jìn)出某使用程序的一切封包,并且封鎖其他的封包(一般是直接將封包丟掉)。理論上,這一類的防火墻能夠完全阻絕外部的數(shù)據(jù)流進(jìn)到受維護(hù)的機(jī)器里。
數(shù)據(jù)庫
防火墻
數(shù)據(jù)庫防火墻是一款依據(jù)數(shù)據(jù)庫協(xié)議剖析與操控技能的數(shù)據(jù)庫安全防護(hù)系統(tǒng)。依據(jù)自動防護(hù)機(jī)制,完成數(shù)據(jù)庫的訪問行為操控、風(fēng)險操作阻斷、可疑行為審計。數(shù)據(jù)庫防火墻通過SQL協(xié)議剖析,依據(jù)預(yù)界說的制止和答應(yīng)戰(zhàn)略讓合法的SQL操作通過,阻斷不合法違規(guī)操作,構(gòu)成數(shù)據(jù)庫的外圍防護(hù)圈,完成SQL風(fēng)險操作的自動防備、實時審計。數(shù)據(jù)庫防火墻面臨來自于外部的入侵行為,供給SQL注入制止和數(shù)據(jù)庫虛擬補(bǔ)丁包功用。
四、Linux 防火墻
Linux 防火墻在企業(yè)使用中十分有用,舉例如下:
中小企業(yè)與網(wǎng)吧里有iptables 作為企業(yè)的NAT路由器,能夠用來替代傳統(tǒng)路由器,而節(jié)省本錢。
IDC機(jī)房一般沒有硬件防火墻,IDC機(jī)房的服務(wù)器能夠用Linux 防火墻替代硬件防火墻。
iptables 能夠結(jié)合squid 作為企業(yè)內(nèi)部上網(wǎng)的通明署理。傳統(tǒng)署理需要在瀏覽器里裝備署理服務(wù)器信息,而iptables+squid 的通明署理則能夠把客戶端的懇求重定向到署理服務(wù)器的端口??蛻舳瞬灰魅魏卧O(shè)置,而感覺不到署理的存在。
將iptables 作為企業(yè)NAT 路由器時,能夠運(yùn)用iptables 的擴(kuò)展模塊屏蔽P2P 流量,還能夠制止不合法網(wǎng)頁。
iptables 能夠用于外網(wǎng)IP 向內(nèi)網(wǎng)IP 映射。
iptables 能夠輕松避免輕量級DOS 進(jìn)犯,比如ping 進(jìn)犯及SYN 洪水進(jìn)犯。
總述,Iptables 有兩種使用模式:主機(jī)防火墻,NAT路由器。
五、防火墻的根本原理
對應(yīng)下圖的字節(jié)傳輸流程,能夠分為以下幾層:
包過濾(Packet filtering):作業(yè)在網(wǎng)絡(luò)層,僅依據(jù)數(shù)據(jù)包頭中的IP地址、端口號、協(xié)議類型等標(biāo)志確認(rèn)是否答應(yīng)數(shù)據(jù)包通過。
使用署理(Application Proxy):作業(yè)在使用層,通過編寫不同的使用署理程序,完成對使用層數(shù)據(jù)的檢測和剖析。
狀況檢測(Stateful Inspection):作業(yè)在2~4層,訪問操控方式與1同,但處理的對象不是單個數(shù)據(jù)包,而是整個銜接,通過規(guī)矩表和銜接狀況表,歸納判別是否答應(yīng)數(shù)據(jù)包通過。
完全內(nèi)容檢測(Compelete Content Inspection):作業(yè)在2~7層,不只剖析數(shù)據(jù)包頭信息、狀況信息,而且對使用層協(xié)議進(jìn)行復(fù)原和內(nèi)容剖析,有效防備混合型安全威脅。
六、Netfilter 與 iptables
Netfilter是由Rusty Russell提出的Linux 2.4內(nèi)核防火墻結(jié)構(gòu),該結(jié)構(gòu)既簡練又靈敏,可完成安全戰(zhàn)略使用中的許多功用,如數(shù)據(jù)包過濾、數(shù)據(jù)包處理、地址假裝、通明署理、動態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT),以及依據(jù)用戶及媒體訪問操控(Media Access Control,MAC)地址的過濾和依據(jù)狀況的過濾、包速率約束等。Iptables/Netfilter的這些規(guī)矩能夠通過靈敏組合,構(gòu)成十分多的功用、包括各個方面,這一切都得益于它的優(yōu)秀設(shè)計思維。Netfilter/Iptables 數(shù)據(jù)包過濾系統(tǒng)能夠當(dāng)成一個整體,netfilter是內(nèi)核的模塊完成,iptables是對上層操作東西。
假如不嚴(yán)格的區(qū)別則在Linux中 netfilter 和 iptables 都能夠認(rèn)為是指Linux防火墻。
實踐 Iptables 是一個辦理內(nèi)核包過濾的東西,能夠用來裝備核心包過濾表格中的規(guī)矩。運(yùn)行于用戶空間。
區(qū)別在于:netfilter 是 Linux的2.4版內(nèi)核引進(jìn)了一種全新的包過濾引擎,稱為Netfilter。指的是Linux內(nèi)核中完成包過濾防火墻的內(nèi)部結(jié)構(gòu),不以程序或文件的方式存在,歸于“內(nèi)核態(tài)”的防火墻功用系統(tǒng)。iptables指的是用來辦理Linux防火墻的指令程序,一般坐落/sbin/iptables,歸于“用戶態(tài)”的防火墻辦理系統(tǒng)。iptables是操控Netfilter的東西,是Linux 2.2版內(nèi)核中比較老的指令ipchains的兄弟。
Netfilter 所設(shè)置的規(guī)矩是存放在內(nèi)核內(nèi)存中的,而 iptables 是一個使用層的使用程序,它通過 Netfilter 放出的接口來對存放在內(nèi)核內(nèi)存中的 XXtables(Netfilter的裝備表)進(jìn)行修正。這個XXtables由表tables、鏈chains、規(guī)矩rules組成,iptables在使用層擔(dān)任修正這個規(guī)矩文件。類似的使用程序還有 firewalld 。
iptables 和 netfilter 的聯(lián)絡(luò)?
許多人一提到防火墻立馬就想到了是iptables,其實iptables并不是防火墻,他僅僅一個軟件或許說是一個東西,這個軟件能夠編寫某些規(guī)矩,將寫好的規(guī)矩保存到netfilter的規(guī)矩數(shù)據(jù)庫中。因此,真實起到"防火"的功用是netfilter,并不是iptables。(歡迎重視大眾號:網(wǎng)絡(luò)工程師阿龍)netfilter是內(nèi)核中的一個結(jié)構(gòu),這個結(jié)構(gòu)里邊包含了4個表和5個鏈,這些鏈又包含了許多的規(guī)矩。而數(shù)據(jù)包要比對的規(guī)矩便是這個鏈中所界說的規(guī)矩。
在下述的內(nèi)容中我們就以iptables來稱號Linux防火墻了。
七、防火墻的性能
吞吐量:該指標(biāo)直接影響網(wǎng)絡(luò)的性能,吞吐量 時延:入口處輸入幀最后1個比特抵達(dá)至出口處輸出幀的第1個比特輸出所用的時間距離 丟包率:在穩(wěn)態(tài)負(fù)載下,應(yīng)由網(wǎng)絡(luò)設(shè)備傳輸,但由于資源缺少而被丟掉的幀的百分比 背靠背:(歡迎重視大眾號:網(wǎng)絡(luò)工程師阿龍)從空閑狀況開端,以到達(dá)傳輸介質(zhì)最小合法距離極限的傳輸速率發(fā)送適當(dāng)數(shù)量的固定長度的幀,當(dāng)出現(xiàn)第一個幀丟失時,發(fā)送的幀數(shù)并發(fā)連結(jié)數(shù):并發(fā)銜接數(shù)是指穿越防火墻的主機(jī)之間或主機(jī)與防火墻之間能一起樹立的最大銜接數(shù)
八、防火墻的局限性
防火墻雖然是維護(hù)網(wǎng)絡(luò)安全的基礎(chǔ)性設(shè)備,但是它還存在著一些不易防備的安全威脅:首要防火墻不能防備未通過防火墻或繞過防火墻的進(jìn)犯。例如,假如答應(yīng)從受維護(hù)的網(wǎng)絡(luò)內(nèi)部向外撥號,一些用戶就或許構(gòu)成與Internet 的直接銜接。防火墻依據(jù)數(shù)據(jù)包包頭信息的檢測阻斷方式,主要對主機(jī)供給或懇求的服務(wù)進(jìn)行訪問操控,無法阻斷通過開放端口流入的有害流量,并不是對蠕蟲或許黑客進(jìn)犯的解決方案。另外,防火墻很難防備來自于網(wǎng)絡(luò)內(nèi)部的進(jìn)犯或亂用。