歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

如何在RHEL/CentOS 7以及Fedora中配置FirewallD

我們都清楚Net-filter是Linux的一種防火牆機制。而Firewalld是一個在網絡區域(networks zones)的支持下動態管理防火牆的守護進程。早期的RHEL版本和CentOS 6使用iptables這個守護進程進行數據包過濾。而在RHEL/CentOS 7和Fedora 21中,iptables接口將被firewalld取代。

由於iptables可能會在未來的版本中消失,所以建議從現在起就使用Firewalld來代替iptables。話雖如此,現行版本仍然支持iptables,而且還可以用YUM命令來安裝。不過可以肯定的是,在同一個系統中不能同時運行Firewalld和iptables,否則可能引發沖突。

在iptables中需要配置INPUT、OUTPUT和FORWARD CHAINS。而在Firewalld中新引入了區域(Zones)這個概念。默認情況下,firewalld中就有一些有效的區域(zones),這也是本文將要討論的內容。

基礎區域如同公共區域(public zone)和私有區域(private zone)。為了讓作業在這些區域中運行,需要為網絡接口添加特定區域(specified zone)支持,好讓我們往firewalld中添加服務。

默認情況下就有很多生效的服務。firewalld最好的特性之一就是,它本身就提供了一些預定義的服務,而我們可以以這些預定義的服務為模版,復制之以添加我們自己的服務。

Firewalld還能很好地兼容IPv4、IPv6和以太網橋接。在Firewalld中,我們可以有獨立的運行時間和永久性的配置。接下來讓我們看看如何在區域(zones)中作業、創建我們的服務以及更好的利用firewalld這個防火牆機制吧。

測試環境如下:

Operating System  : CentOS Linux release 7.0.1406 (Core)

IP Address: 192.168.0.55

Host-name: server1.tecmintlocal.com

步驟1:安裝Firewalld組件

1.Firewalld組件在RHEL/CentOS 7和Fedora 21默認已經安裝了。如果沒有可以使用如下YUM命令進行安裝。

# yum install firewalld -y

2.安裝完畢,查看一下iptables是否正在運行。如果是,你需要用以下命令來stop和mask(不再使用)iptables。

# systemctl status iptables

# systemctl stop iptables

# systemctl mask iptables

步驟2:Firewalld組件的討論

3.在進行firewalld配置之前,我想來討論一下區域(zones)這個概念。默認情況就有一些有效的區域。我們需要網絡接口分配區域。區域規定了區域是網絡接口信任或者不信任網絡連接的標准。區域(zone)包含服務和端口。接下來讓我們討論Firewalld中那些有用的區域(zones)。

  • 丟棄區域(Drop Zone):如果使用丟棄區域,任何進入的數據包將被丟棄。這個類似與我們之前使用iptables -j drop。使用丟棄規則意味著將不存在響應,只有流出的網絡連接有效。
  • 阻塞區域(Block Zone):阻塞區域會拒絕進入的網絡連接,返回icmp-host-prohibited,只有服務器已經建立的連接會被通過。
  • 公共區域(Public Zone):只接受那些被選中的連接,而這些通過在公共區域中定義相關規則實現。服務器可以通過特定的端口數據,而其它的連接將被丟棄。
  • 外部區域(External Zone):這個區域相當於路由器的啟用偽裝(masquerading)選項。只有指定的連接會被接受,而其它的連接將被丟棄或者不被接受。
  • 隔離區域(DMZ Zone):如果想要只允許給部分服務能被外部訪問,可以在DMZ區域中定義。它也擁有只通過被選中連接的特性。
  • 工作區域(Work Zone):在這個區域,我們只能定義內部網絡。比如私有網絡通信才被允許。
  • 家庭區域(Home Zone):這個區域專門用於家庭環境。我們可以利用這個區域來信任網絡上其它主機不會侵害你的主機。它同樣只允許被選中的連接。
  • 內部區域(Internal Zone):這個區域和工作區域(Work Zone)類似,只有通過被選中的連接。
  • 信任區域(Trusted Zone):信任區域允許所有網絡通信通過。

現在你對區域有個很好的認識了,讓我們使用以下的命令來找出有用的區域、默認區域以及列出所有的區域吧。

# firewall-cmd --get-zones

# firewall-cmd --get-default-zone

# firewall-cmd --list-all-zones

注意:以上命令的輸出不僅僅只有單頁,因為它將會列出每種區域如block、dmz、drop、external、home、internal、public、trusted以及work。如果區域還有其它詳細規則(rich-rules)、啟用的服務或者端口,這些區域信息也會分別被羅列出來。

翻譯:sogreen 想了解作者請訪問linux公社

Linux公社原創翻譯頻道:http://www.linuxidc.com/topicnews.aspx?tid=15

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2015-02/113206p2.htm

Copyright © Linux教程網 All Rights Reserved