昨天我們針對事件發生後資安人員會做什麼處理有了簡單的介紹,但我們都知道我們不可能 always 手動去分析去抓可疑的行為,因此一定需要自動化、完善的防護措施,所以我們介紹了什麽是防火牆(Firewall)、它的種類以及我們為何需要它。而今天我們就要接續這個主題,跟大家說明防火牆的功能、帶入生活小例子,以及使用的技術等等。廢話不多說,GOGOGO!
昨天介紹完防火牆的各式種類,以及為什麼我們需要防火牆後,現在就來簡單介紹它的主要功能吧~ 😎
這就是 Rate Limiting(速率限制) 的應用,為了防止惡意攻擊(如DDoS攻擊、爬蟲、暴力破解)而有的防禦機制。
Firewall 像大樓的門禁一樣,只有住戶和被允許的人才可以進入。網站的防火牆也會依照規則決定哪些流量可以進來,哪些要擋下。如果你在短時間內大量連線網站,防火牆就可能會把你當成可疑對象,暫時封鎖你的連線,這就像警衛會攔下短時間內多次嘗試進入大樓、或者行蹤可疑的陌生人一樣!👻
講完生活實例後,我要接著分享一下防火牆是如何設定規則,去決定到底誰可以進誰不行拉,而講到規則就要先說一下什麼是 ACL(Access Control List,存取控制清單)啦!
簡單來說,ACL 就是用來「定義誰(來源)、可以/不能對什麼(目的地)做什麼(動作)」的一個規則表!它會去比對封包的 packet header 和 ACL entries 以判斷是否可以通過。而通常 ACL 會被分為「Standard ACL 標準式」跟「Extended ACL 進階式」兩種,彼此在設定上的寫法以及針對的限制類型也會有些微的不同。
不同的產品與型號,設定的方式都略有差異,但大多大同小異,邏輯基本設定的方式都差不多。
標準型 ACL 會將「 IP 封包的來源位址」與「ACL 中設定的位址」進行比較,以便控制流量
💻 範例程式:
access-list 1 deny host 192.168.10.1
access-list 1 permit any
→ 拒絕來自 192.168.10.1/32 的所有封包通過(可能是 R1 的乙太網路),但允許所有其他封包通過。
進階型 ACL 會將「 IP 封包的來源和目的地位址」與「ACL 中設定的位址」進行比較,也可以額外根據來源與目的 IP、協定(如 TCP、UDP、ICMP)、埠號等多條件過濾。
💻 範例程式:
access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 80
access-list 100 deny ip any any
→ 允許 192.168.1.0/24 去任意目的地的 TCP 80 埠(http),再來拒絕所有其他封包流量。
我們從 Log 到現在防火牆已經講到一個段落了,大家應該對其都有一定的基礎認識了!但還是要再小小叨擾一下,防火牆(Firewall)、Log 分別在資安中擔任的角色,讓大家更明確各自的定位:
防火牆規則不是永遠完美,因此 Log 是補強和完善防禦的重要工具。有了 Log,資安人員才能不斷調整防火牆策略,或在事件發生後追查根本原因;而兩者合併,才能做到「預防為主、事後補強」的完整防護措施!!!
參考資料: