有關firewalld和iptables詳細使用的文章
=====================================華麗的分割線=====================================
1. 認識防火牆
從邏輯上講防火牆可以分為主機防火牆和網絡防護牆。
主機防火牆:針對個別主機對出站入站的數據包進行過濾。(操作對象為個體)
網絡防火牆:處於網絡邊緣,針對網絡入口進行防護。(操作對象為整體)
從物理上講防火牆可以分為硬件防火牆和軟件防火牆。
硬件防火牆:通過硬件層面實現防火牆的功能,性能高,成本高。
軟件防火牆:通過應用軟件實現防火牆的功能,性能低,成本低。
2. 系統防火牆發展過程
防火牆的發展史就是從牆到鏈再到表,也是從簡單到復雜的過程。
防火牆工具變化如下:
ipfirewall--->ipchains--->iptables-->nftables(正在推廣)
Linux 2.0版內核中:包過濾機制為ipfw,管理工具是ipfwadm。
Linux 2.2版內核中:包過濾機制為ipchain,管理工具是ipchains。
Linux 2.4,2.6,3.0+版內核中:包過濾機制為netfilter,管理工具是iptables。
Linux 3.1(3.13+)版內核中:包過濾機制為netfilter,中間采取daemon動態管理防火牆,管理工具是firewalld。
# 目前低版本的firewalld通過調用iptables(command),它可以支持老的iptables規則(在firewalld里面叫做直接規則),
# 同時firewalld兼顧了iptables,ebtables,ip6tables的功能。
3. iptables和nftables
nftables
nftables誕生於2008年,2013年底合並到Linux內核,從 Linux 3.13起開始作為iptables的替代品提供給用戶。
它是新的數據包分類框架,新的linux防火牆管理程序,旨在替代現存的 {ip,ip6,arp,eb}_tables,它的用戶空間管理工具是nft。
由於iptables的一些缺陷,目前正在慢慢過渡用nftables替換iptables,同時由於這個新的框架的兼容性,
所以nftables也支持在這個框架上運行直接iptables這個用戶空間的管理工具。
nftables實現了一組被稱為表達式的指令,可通過在寄存器中儲存和加載來交換數據。
也就是說,nftables的核心可視為一個虛擬機,nftables的前端工具nft可以利用內核提供的表達式去模擬舊的iptables匹配,
維持兼容性的同時獲得更大的靈活性。
而未來最新的firewalld(0.8.0)默認使用將使用nftables。詳情可以看www.firewalld.org
iptables、nftables和firewalld之間的區別與聯系
firewalld同時支持iptables和nftables,未來最新版本(0.8.0)默認將使用nftables。
簡單的說firewalld是基於nftfilter防火牆的用戶界面工具。而iptables和nftables是命令行工具。
firewalld引入區域的概念,可以動態配置,讓防火牆配置及使用變得簡便。
准確的說:iptables(command)的最底層是netfilter,它的用戶空間管理工具是iptables
nftables(command)是iptables(command) 的一個替代品並兼容iptables(command),最底層依然是netfilter,它的用戶空間管理工具是nft,
同時未來firewalld最新版(0.8.0)也將默認支持nftables(command)。https://firewalld.org/
iptables會把配置好的防火牆策略交給內核層的netfilter網絡過濾器來處理
firewalld會把配置好的防火牆策略交給內核層的nftables包過濾框架來處理
下圖為iptables、firewalld、nftables之間的關系圖:
4. centos6.X到centos7.X
centos6.X:防火牆由netfilter和iptables構成。其中iptables用於制定規則,又被稱為防火牆的用戶態;
而netfilter實現防火牆的具體功能,又被稱為內核態。簡單地講,iptables制定規則,而netfilter執行規則。
centos7.X:防火牆在6.X防火牆的基礎之上提出了新的防火牆管理工具,提出了區域的概念,通過區域定義網絡鏈接以及安全等級。
5.怎樣學好防火牆的配置?
1)OSI7層模型以及不同層對應哪些協議必須很熟悉 # 基礎必備
2)TCP/IP三次握手,四次斷開的過程,TCP HEADER,狀態轉換 # 基礎必備
3)常用的服務端口要非常清楚了解。 # 基礎必備
4)常用服務協議的原理,特別是http協議,icmp協議。 # 基礎必備
5)能夠熟練的利用tcpdump和wireshark進行抓包並分析,這樣會更好 # 拓展
6)對計算機網絡有研究,至少基本路由交換要很熟悉 # 拓展
6、企業中安全配置原則
盡可能不給服務器配置外網IP,可以通過代理轉發或者通過防火牆映射。
並發不是特別大情況有外網IP,可以開啟防火牆服務。
大並發的情況,不能開iptables,影響性能,利用硬件防火牆提升架構安全。