您當(dāng)前位置: 主頁(yè) > IT服務(wù) > 網(wǎng)絡(luò)服務(wù) >
簡(jiǎn)單來(lái)說(shuō),防火墻就是一個(gè)基于一系列預(yù)先定義的規(guī)則(例如流量包的目的地或來(lái)源,流量的類型等)的安全系統(tǒng),它控制著一個(gè)網(wǎng)絡(luò)中的流入和流出流量。(網(wǎng)絡(luò)維護(hù)外包)
在后臺(tái), firewalld 和 iptables 服務(wù)都通過(guò)相同的接口來(lái)與內(nèi)核中的 netfilter 框架相交流,這不足為奇,即它們都通過(guò) iptables 命令來(lái)與 netfilter 交互。然而,與 iptables 服務(wù)相反, firewalld 可以在不丟失現(xiàn)有連接的情況下,在正常的系統(tǒng)操作期間更改設(shè)定。
在默認(rèn)情況下, firewalld 應(yīng)該已經(jīng)安裝在你的 RHEL 系統(tǒng)中了,盡管它可能沒(méi)有在運(yùn)行。你可以使用下面的命令來(lái)確認(rèn)(firewall-config 是用戶界面配置工具):
流入和流出流量
# yum info firewalld firewall-config
檢查 FirewallD 的信息
以及,
# systemctl status -l firewalld.service
檢查 FirewallD 的狀態(tài)
另一方面, iptables 服務(wù)在默認(rèn)情況下沒(méi)有被包含在 RHEL 系統(tǒng)中,但可以被安裝上。
# yum update && yum install iptables-services
這兩個(gè)守護(hù)進(jìn)程都可以使用常規(guī)的 systemd 命令來(lái)在開(kāi)機(jī)時(shí)被啟動(dòng)和開(kāi)啟:
# systemctl start firewalld.service | iptables-service.service# systemctl enable firewalld.service | iptables-service.service
另外,請(qǐng)閱讀:管理 Systemd 服務(wù)的實(shí)用命令(服務(wù)器維護(hù)外包)
至于配置文件, iptables 服務(wù)使用 /etc/sysconfig/iptables 文件(假如這個(gè)軟件包在你的系統(tǒng)中沒(méi)有被安裝,則這個(gè)文件將不存在)。在一個(gè)被用作集群節(jié)點(diǎn)的 RHEL 7 機(jī)子上,這個(gè)文件看起來(lái)是這樣:
Iptables 防火墻配置文件
而 firewalld 則在兩個(gè)目錄中存儲(chǔ)它的配置文件,即 /usr/lib/firewalld 和 /etc/firewalld:
# ls /usr/lib/firewalld /etc/firewalld
FirewallD 的配置文件
在這篇文章中后面,我們將進(jìn)一步查看這些配置文件,在那之后,我們將在這兩個(gè)地方添加一些規(guī)則。現(xiàn)在,是時(shí)候提醒你了,你總可以使用下面的命令來(lái)找到更多有關(guān)這兩個(gè)工具的信息。
# man firewalld.conf# man firewall-cmd# man iptables
除了這些,記得查看一下當(dāng)前系列的第一篇 RHCSA 系列(一): 回顧基礎(chǔ)命令及系統(tǒng)文檔,在其中我描述了幾種渠道來(lái)得到安裝在你的 RHEL 7 系統(tǒng)上的軟件包的信息。
Foundation Certified Engineer,LFCE) 系列中的 配置 Iptables 防火墻 – Part 8 來(lái)復(fù)習(xí)你腦中有關(guān) iptables 的知識(shí)。
例 1:同時(shí)允許流入和流出的網(wǎng)絡(luò)流量TCP 端口 80 和 443 是 Apache web 服務(wù)器使用的用來(lái)處理常規(guī)(HTTP)和安全(HTTPS)網(wǎng)絡(luò)流量的默認(rèn)端口。你可以像下面這樣在 enp0s3 接口上允許流入和流出網(wǎng)絡(luò)流量通過(guò)這兩個(gè)端口:
# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT# iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT# iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT# iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
例 2:從某個(gè)特定網(wǎng)絡(luò)中阻擋所有(或某些)流入連接或許有時(shí)你需要阻擋來(lái)自于某個(gè)特定網(wǎng)絡(luò)的所有(或某些)類型的來(lái)源流量,比方說(shuō) 192.168.1.0/24:
# iptables -I INPUT -s 192.168.1.0/24 -j DROP
上面的命令將丟掉所有來(lái)自 192.168.1.0/24 網(wǎng)絡(luò)的網(wǎng)絡(luò)包,而
# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT
將只允許通過(guò)端口 22 的流入流量。
例 3:將流入流量重定向到另一個(gè)目的地假如你不僅使用你的 RHEL 7 機(jī)子來(lái)作為一個(gè)軟件防火墻,而且還將它作為一個(gè)硬件防火墻,使得它位于兩個(gè)不同的網(wǎng)絡(luò)之間,那么在你的系統(tǒng)上 IP 轉(zhuǎn)發(fā)一定已經(jīng)被開(kāi)啟了。假如沒(méi)有開(kāi)啟,你需要編輯 /etc/sysctl.conf 文件并將net.ipv4.ip_forward 的值設(shè)為 1,即:
net.ipv4.ip_forward = 1
接著保存更改,關(guān)閉你的文本編輯器,并最終運(yùn)行下面的命令來(lái)應(yīng)用更改:
# sysctl -p /etc/sysctl.conf
例如,你可能在一個(gè)內(nèi)部的機(jī)子上安裝了一個(gè)打印機(jī),它的 IP 地址為 192.168.0.10,CUPS 服務(wù)在端口 631 上進(jìn)行監(jiān)聽(tīng)(同時(shí)在你的打印服務(wù)器和你的防火墻上)。為了從防火墻另一邊的客戶端傳遞打印請(qǐng)求,你應(yīng)該添加下面的 iptables 規(guī)則:
# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631
請(qǐng)記住 iptables 會(huì)逐條地讀取它的規(guī)則,所以請(qǐng)確保默認(rèn)的策略或后面的規(guī)則不會(huì)重載上面例子中那些規(guī)則。
FirewallD 入門(mén)firewalld 引入的一個(gè)變化是區(qū)域(zone) (注:翻譯參考了 https://fedoraproject.org/wiki/FirewallD/zh-cn )。這個(gè)概念允許將網(wǎng)路劃分為擁有不同信任級(jí)別的區(qū)域,由用戶決定將設(shè)備和流量放置到哪個(gè)區(qū)域。
要獲取活動(dòng)的區(qū)域,使用:
# firewall-cmd --get-active-zones
在下面的例子中,public 區(qū)域是激活的,并且 enp0s3 接口被自動(dòng)地分配到了這個(gè)區(qū)域。要查看有關(guān)一個(gè)特定區(qū)域的所有信息,可使用:
# firewall-cmd --zone=public --list-all
列出所有的 Firewalld 區(qū)域
由于你可以在 RHEL 7 安全指南 中閱讀到更多有關(guān)區(qū)域的知識(shí),這里我們將僅列出一些特別的例子。
例 4:允許服務(wù)通過(guò)防火墻要獲取受支持的服務(wù)的列表,可以使用:
# firewall-cmd --get-services
列出所有受支持的服務(wù)(it外包)
要立刻生效且在隨后重啟后都可以讓 http 和 https 網(wǎng)絡(luò)流量通過(guò)防火墻,可以這樣:
# firewall-cmd --zone=MyZone --add-service=http# firewall-cmd --zone=MyZone --permanent --add-service=http# firewall-cmd --zone=MyZone --add-service=https# firewall-cmd --zone=MyZone --permanent --add-service=https# firewall-cmd --reload
假如 -–zone 被忽略,則使用默認(rèn)的區(qū)域(你可以使用 firewall-cmd –get-default-zone來(lái)查看)。
若要移除這些規(guī)則,可以在上面的命令中將 add 替換為 remove。
例 5:IP 轉(zhuǎn)發(fā)或端口轉(zhuǎn)發(fā)首先,你需要查看在目標(biāo)區(qū)域中,偽裝(masquerading)是否被開(kāi)啟:
# firewall-cmd --zone=MyZone --query-masquerade
在下面的圖片中,我們可以看到對(duì)于外部區(qū)域,偽裝已被開(kāi)啟,但對(duì)于公用區(qū)域則沒(méi)有:
查看偽裝狀態(tài)
你可以為公共區(qū)域開(kāi)啟偽裝:
# firewall-cmd --zone=public --add-masquerade
或者在外部區(qū)域中使用偽裝。下面是使用 firewalld 來(lái)重復(fù)例 3 中的任務(wù)所需的命令:
# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10
不要忘了重新加載防火墻。
艾銻無(wú)限是中國(guó)領(lǐng)先IT外包服務(wù)商,專業(yè)為企業(yè)提供IT運(yùn)維外包、電腦維護(hù)、網(wǎng)絡(luò)維護(hù)、網(wǎng)絡(luò)布線、辦公設(shè)備維護(hù)、服務(wù)器維護(hù)、數(shù)據(jù)備份恢復(fù)、門(mén)禁監(jiān)控、網(wǎng)站建設(shè)等多項(xiàng)IT服務(wù)外包,服務(wù)熱線:400-650-7820 聯(lián)系電話:010-62684652 咨詢QQ1548853602 地址:北京市海淀區(qū)北京科技會(huì)展2號(hào)樓16D,用心服務(wù)每一天,為企業(yè)的發(fā)展提升更高的效率,創(chuàng)造更大的價(jià)值。
更多的IT外包信息盡在艾銻無(wú)限http://www.whgoodly.com
相關(guān)文章