小課堂)
一、防火墻基礎(chǔ)防火墻概念防火墻工作在主機(jī)/網(wǎng)絡(luò)邊緣對進(jìn)出數(shù)據(jù)包做規(guī)則校驗(yàn)執(zhí)行放行或丟棄默認(rèn)一般拒絕所有流量僅開放允許策略。防火墻分類分類維度類型說明按保護(hù)范圍主機(jī)防火墻保護(hù)單臺主機(jī)網(wǎng)絡(luò)防火墻保護(hù)整個局域網(wǎng)按實(shí)現(xiàn)方式硬件防火墻華為、華三、天融信等硬件設(shè)備軟件防火墻iptables、firewalld運(yùn)行于普通服務(wù)器按 OSI 模型層級網(wǎng)絡(luò)層包過濾防火墻四層依據(jù)源目 IP、端口、協(xié)議過濾速度快不能識別應(yīng)用層內(nèi)容應(yīng)用層防火墻 WAF七層防護(hù) Web 攻擊輸入校驗(yàn)、漏洞防護(hù)、防暴力破解缺點(diǎn)處理速度慢Linux 內(nèi)核過濾子系統(tǒng)子系統(tǒng)說明Netfilter內(nèi)核態(tài)數(shù)據(jù)包過濾框架iptablesIPv4 數(shù)據(jù)包過濾ip6tablesIPv6 數(shù)據(jù)包過濾arptablesARP 過濾防范 ARP 欺騙ebtables鏈路層過濾多用于橋接、VLAN 場景nftablesNetfilter 增強(qiáng)版處理數(shù)據(jù)包更快規(guī)則更新效率高統(tǒng)一接口管理多協(xié)議靜態(tài)防火墻 vs 動態(tài)防火墻類型特點(diǎn)代表靜態(tài)防火墻修改規(guī)則需要全量重載中斷現(xiàn)有連接傳統(tǒng) iptables 服務(wù)動態(tài)防火墻僅更新變更規(guī)則不中斷已有連接firewalld注意firewalld 只是上層管理工具真正執(zhí)行過濾的是內(nèi)核 Netfilter不要同時開啟 firewalld 和 iptables 服務(wù)避免規(guī)則沖突。將網(wǎng)段交給指定 zone 處理firewall-cmd --add-source10.1.1.0/24 --zonehome網(wǎng)卡綁定 zonefirewall-cmd --change-interfaceens33 --zonepublic3. service 服務(wù)管理預(yù)定義服務(wù)命令說明firewall-cmd --add-servicehttp放行 http 服務(wù)firewall-cmd --remove-servicehttp刪除放行firewall-cmd --list-services查看放行的服務(wù)port 端口管理命令說明firewall-cmd --add-port5900/tcp放行端口firewall-cmd --remove-port5900/tcp刪除放行firewall-cmd --list-ports查看放行的端口地址偽裝 masqueradeSNAT作用內(nèi)網(wǎng)主機(jī)共享公網(wǎng) IP 訪問外網(wǎng)命令說明firewall-cmd --add-masquerade開啟地址偽裝firewall-cmd --query-masquerade查詢地址偽裝狀態(tài)端口轉(zhuǎn)發(fā) forward-portDNAT?? 前提當(dāng)前 zone 必須開啟 masquerade場景命令本機(jī) 8000 端口轉(zhuǎn)發(fā)到本機(jī) 80firewall-cmd --add-forward-portport8000:prototcp:toport80本機(jī) 1022 轉(zhuǎn)發(fā)到其他機(jī)器 10.1.1.11 的 22 端口firewall-cmd --add-forward-portport1022:prototcp:toport22:toaddr10.1.1.11ICMPping控制場景命令禁止 ping阻止 echo-request 報(bào)文firewall-cmd --add-icmp-block echo-requesticmp-block-inversion 反向模式默認(rèn)全部拒絕 ICMP只放行指定firewall-cmd --add-icmp-block-inversion徹底重載斷開舊連接讓 ICMP 規(guī)則立即生效firewall-cmd --complete-reload富規(guī)則 rich-rule優(yōu)先級高于普通 zone 規(guī)則可以控制源目 IP、日志、審計(jì)、速率限制。場景命令允許 10.1.8.10 ping 本機(jī)firewall-cmd --add-rich-rule‘rule familyipv4 source address“10.1.8.10” icmp-type name“echo-request” accept’direct 直接規(guī)則語法類似 iptables優(yōu)先級最高盡量優(yōu)先使用 firewalld 原生規(guī)則僅做補(bǔ)充使用。其他實(shí)用命令命令說明firewall-cmd --panic-on應(yīng)急模式丟棄全部流量被攻擊時斷網(wǎng)firewall-cmd --panic-off關(guān)閉應(yīng)急模式firewall-cmd --runtime-to-permanent將運(yùn)行時規(guī)則保存為永久規(guī)則firewall-cmd --add-servicehttp --timeout30臨時生效 30 秒用于調(diào)試本機(jī)8000端口轉(zhuǎn)發(fā)到本機(jī)80firewall-cmd --add-forward-portport8000:prototcp:toport80本機(jī) 1022 轉(zhuǎn)發(fā)到其他機(jī)器 10.1.1.11 的 22 端口firewall-cmd --add-forward-portport1022:prototcp:toport22:toaddr10.1.1.117. ICMPping控制bash禁止ping阻止echo?request報(bào)文firewall-cmd --add-icmp-block echo-requesticmp-block-inversion 反向模式默認(rèn)全部拒絕 ICMP只放行指定firewall-cmd --add-icmp-block-inversion徹底重載斷開舊連接讓ICMP規(guī)則立即生效firewall-cmd --complete-reload8. 富規(guī)則 rich?rule優(yōu)先級高于普通 zone 規(guī)則可以控制源目 IP、日志、審計(jì)、速率限制。bash允許10.1.8.10 ping本機(jī)firewall-cmd --add-rich-rule‘rule familyipv4 source address“10.1.8.10” icmp-type name“echo-request” accept’五、實(shí)操案例案例場景命令案例 1禁止單個 IP ping 本機(jī)firewall-cmd --permanent --add-rich-rule‘rule family“ipv4” source address“10.1.8.10” icmp-type name“echo-request” reject’firewall-cmd --complete-reload案例 2只允許指定 IP ping 本機(jī)firewall-cmd --permanent --add-icmp-block-inversionfirewall-cmd --permanent --add-rich-rule‘rule familyipv4 source address“10.1.8.10” icmp-type name“echo-request” accept’firewall-cmd --complete-reload六、圖形工具 firewall-config安裝軟件包后執(zhí)行 firewall-config 打開圖形界面可視化配置 zone、服務(wù)、端口、偽裝、端口轉(zhuǎn)發(fā)、富規(guī)則、網(wǎng)卡、源地址支持重載防火墻、開啟應(yīng)急 panic 模式。重點(diǎn)總結(jié)firewalld 是動態(tài)防火墻底層依靠內(nèi)核 Netfilter。區(qū)分 runtime 運(yùn)行時與 permanent 永久配置reload 保留現(xiàn)有連接–complete-reload 斷開現(xiàn)有連接。zone 匹配優(yōu)先級source 源地址 interface 網(wǎng)卡 默認(rèn) zone。富規(guī)則優(yōu)先級最高做端口轉(zhuǎn)發(fā)必須開啟 masquerade。direct 直接規(guī)則優(yōu)先級最高盡量少用。