1.firewalld
動態防火牆後臺程序提供了一個動態管理的防火牆,用以支持網絡“zone”,以分配對一個網絡及其相關鏈接和界面一定程度上的信任。它具備對IPV4和IPV6防火牆設置的支持。它支持以太網橋,並有分離運行時間和永久性配置選擇。它還具備一個通向服務或者應用程序以直接增加防火牆規則的接口。
系統提供了圖像化的配置工具firewall-config、system-config-firewall,提供命令行客戶端firewall-cmd,用於配置firewalld永久性運行時間的改變:它依次用iptables工具與執行數據包篩選的內核中的Netfilter通信。
firewalld和iptables service之間最本質的不同是:
1)iptables service在/etc/sysconfig/iptables中存儲配置,而firewalld將配置存儲在/usr/lib/firewalld/和 /etc/firewalld/ 中的各種XML文件裏。
2)使用iptables service每一個單獨更改意味着清楚所有舊的規則和從 /etc/sysconfig/iptables 裏讀取所有新的規則,然而使用firewalld卻不會創建任何新的規則;僅僅運行規 則中的不同之處。因此,firewalld可以在運行時間內,改變設置而不丟失現行連接。。
2.配置
firewall-cmd --state ##產看firewalld的狀態
firewall-cmd --get-active-zones ##查看當前活動的區域,並附帶一個目前分配給他們的接口列表
firewall-cmd --get-default-zone ##查看默認區域
firewall-cmd --get-zones ##查看可用區域
##
trusted(信任) ##可接受所有的網絡連接
home(家庭) ##用於家庭網絡,僅接受ssh,mdns,ipp-client,samba-client,或dhcpv6-client服務連接
internal(內部) ##用於內部網絡,僅接受ssh,mdns,ipp-client,samba-client,或dhcpv6-client服務連接
work(工作) ##用於工作區,僅接受ssh,mdns,ipp-client,dhcpv6-client服務連接
public(公共) ##在公共區域內使用,僅接受ssh或dhcpv6-client服務鏈接
external(外部) ##出去的ipv4網絡連接通過此區域僞裝和轉發,僅接受ssh服務連接
dmz(非軍事區) ##僅接受ssh服務連接
block(限制) ##拒絕所有網絡連接
drop(丟棄) ##任何接收的網絡數據包都被丟棄,沒有任何回覆
firewall-cmd --zone=public --list-all ##列出指定域的所有設置
firewall-cmd --get-services ##列出所有預設服務(這樣將列出/usr/lib/firewalld/services/中的服務器名稱。注意,配置文件是以服務本身命名的service-name.xml)
firewall-cmd --list-all-zones ##列出所有區域的設置
firewall-cmd --set-default-zone=trusted ##設置默認區域
測試:通過http連接配置虛擬機IP
firewall-cmd --permanent --zone=internal --add-source=172.25.254.27 ##設置網絡地址到指定區域(permanent參數表示永久生效設置,如果沒有指定--zone參數,那麼將會加入默認區域)
firewall-cmd --reload ##重新加載服務,不中斷
firewall-cmd -complete--reload ##重新加載服務,中斷服務
firewall-cmd --permanent --zone=internal --remove-source=172.25.254.27 ##刪除指定域中的網絡地址
firewall-cmd --add-interface=eth0 --zone=trusted ##添加eth0端口到trusted域
測試:連接配置主機IP
eth0:172.25.254.127
##eth1:172.25.27.10
firewall-cmd --add-service=http --zone=public ##添加http服務至public域
firewall-cmd --list-ports ##查看默認域中端口
firewall-cmd --add-port=53/tcp ##添加53/tcp端口至默認域
firewall-cmd --remove-service=ssh --zone=public ##將ssh服務從public域中移除
3.Direct Rules
通過firewall-cmd工具,可以使用 --direct選項在運行時間裏增加或者移除鏈。如果不熟悉iptables,使用直接接口非常危險,因爲泥坑無意間導致防火牆被入侵。直接端口模式,適用於服務或者程序,以便在運行時間內增加特定的防火牆規則。直接端口模式添加的規則優先應用。
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.60 -p tcp --dport 22 -j ACCEPT ##除了60主機22端口不能訪問,其他主機22端口都可訪問
測試:IP:172.25.254.60上
#IP:172.25.254.227上
firewall-cmd --direct --get-all-rules ##列出規則
4.Rich Rules
通過“rich language”語法,可以用比直接接口方式更易理解的方法建立複雜防火牆規則。此外,還能永久保留設置。這種語言使用關鍵詞值,是iptables工具的抽象表示,這種語言可以用來配置分區,也仍然支持現行的配置方式。
firewall-cmd --add-masqueeade ##地址僞裝
1)端口轉換
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.60
##端口轉換爲172.25.254.60
測試:ssh [email protected],連接登入後實際爲172.25.254.60主機
2)僞裝
firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=172.25.254.127 masquerade'
測試:不同網段可以了連接,172.25.27.11主機可PING通172.25.254.127主機