之前在沒學網絡的時候,認為防火牆真的是可以防火的牆。10多年前還有不少人問,防火牆多少錢一個平方。
但現在大家都知道,防火牆是用來防黑客的,是内部網絡和外部網絡的分界,是用來保護内部伺服器和網絡的,是一種資訊安全防護系統。
防火牆有幾個最重要的特征:
1. 部署在内部網絡和外部網絡之間。這個和建築上的防火牆真的很類似,也是叫firewall的原因。
2. 提供基于狀态的安全防護。這個描述很專業,也最恰當的描述了防火牆的本質。最開始的防火牆是基于路由器的通路控制清單acl實作的包過濾防火牆,之後逐漸發展和演進為基于狀态的防火牆。所謂的狀态淺顯的講就是說防火牆會維護一個源ip,目的ip,源端口,目的端口,協定的五元組的連接配接狀态,隻有在防火牆上建立起來連接配接會話狀态的封包才會會放行,否則一律丢棄。這是一種很強的防禦能力。
防火牆一般情況下是一個安全加強的産品,沒有防火牆業務也可以跑起來。就像是小區沒有門禁和保安其實也不影響小區的正常使用,但也意味着壞人可以随意的進出,安全風險很大。是以一般上一些規模的使用者都會考慮部署防火牆。
在vpc網絡中,有一個企業級的産品叫nat網關,這個nat網關中有兩個重要的功能一個是snat,一個是dnat。snat其實就是一個基于狀态的安全防護功能,可以當一個簡易的防火牆使用。
當部署完nat網關後,外部裝置3如果想主動通路内部伺服器1的話,在nat網關上會把外部裝置3的通路請求拒絕掉,把封包丢棄。因為外部裝置3的公網ip 3.3.3.3在nat網關的snat狀态表中不存在。
但内部伺服器1可以主動通路外部裝置2,當内部伺服器1對外通路的第一個封包到達nat網關時,nat網關會記錄下會話狀态。假設内部伺服器1通過80端口通路外部伺服器2的80端口,此時nat會把五元組資訊記錄下來并保持狀态資訊。之後如果外部伺服器2以80端口,通路内部伺服器1的80端口,此時nat網關會接受通路請求,并将封包轉發到内部伺服器。但如果外部伺服器2以8080端口通路内部伺服器1的80端口時,此時這個通路請求也會被丢棄,因為在snat狀态表中沒有對應五元組的狀态連接配接資訊。
上面的描述就是典型的基于狀态的安全防護功能,不允許外部的使用者或裝置主動通路内部的伺服器。隻允許内部伺服器主動通路外部伺服器後并建立起連接配接狀态後,外部伺服器才能和内部伺服器通信。
是以nat網關在使用中是可以當一個功能簡單的防火牆使用的,可以把後端的伺服器隐藏到nat網關後面,不會被黑客掃描到,也不會輕易的被黑客攻擊。
舉個最佳實踐的例子,很多部署在雲上的線上支付系統都會調用支付寶的支付接口。而線上支付系統的安全性一般要求是特别高的,不能輕易的被黑客掃描到,不能輕易的被黑客攻擊。在這種場景下,使用者會選擇在vpc網絡中部署nat網關。目前線上支付系統有調用支付寶支付接口的需求時,會通過nat網關出公網。此時nat網關會記錄調用請求的狀态資訊。nat會檢查收到的ip封包,隻有ip封包的源ip,源端口号,目的ip,目的端口号,協定類型這五元組資訊和snat狀态表中的連接配接資訊相比對時。nat網關才會将封包轉發到内部支付系統,否則接收到的封包一律丢棄。