firewall詳解


官方文檔介紹地址:https
//access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1

一,防火牆介紹

CentOS 7中防火牆是一個非常的強大的功能,在CentOS 6.5中在iptables防火牆中進行了升級了。

1,官方介紹

動態防火牆守護程序firewalld提供動態管理的防火牆,支持網絡“區域”,以便為網絡及其關聯的連接和接口分配信任級別。它支持IPv4和IPv6防火牆設置。它支持以太網橋,並具有運行時和永久配置選項的分離。它還有一個服務或應用程序接口,可以直接添加防火牆規則。

2,什么是區域區:

網絡區域定義了網絡連接的可信等級。這是一個一對多的關系,這意味着一次連接可以僅僅是一個區域的一部分,而一個區域可以用於很多連接。

3,哪個區域可用?

由firewalld提供的區域按照從不信任到信任的順序排序。

4,區域的分類?

防火牆可用於根據用戶決定放置在設備上的信任級別和該網絡內的流量將網絡分成不同的區域。NetworkManager通知firewalld接口所屬的區域。可以通過NetworkManager或firewall-config工具更改接口的分配區域,該工具可以為您打開相關的NetworkManager窗口。

/ etc / firewalld /中的區域設置是一系列預設設置,可以快速應用於網絡接口。這里列出了它們的簡要說明:

drop
任何傳入的網絡數據包都被丟棄,沒有回復。只能進行傳出網絡連接。

阻止
任何傳入的網絡連接被拒絕,其中包含用於IPv4的icmp-host-prohibited消息和用於IPv6的icmp6-adm-prohibited。只能從系統內啟動網絡連接。

公共
用於公共場所。您不相信網絡上的其他計算機不會損害您的計算機。僅接受選定的傳入連接。

external
用於特別為路由器啟用偽裝的外部網絡。您不相信網絡上的其他計算機不會損害您的計算機。僅接受選定的傳入連接。

dmz
適用於非軍事區中的計算機,這些計算機可公開訪問,並且對內部網絡的訪問權限有限。僅接受選定的傳入連接。

工作
用於工作區域。您最常信任網絡上的其他計算機,以免損害您的計算機。僅接受選定的傳入連接。

home
適用於家庭領域。您最常信任網絡上的其他計算機,以免損害您的計算機。僅接受選定的傳入連接。

內部
用於內部網絡。您最常信任網絡上的其他計算機,以免損害您的計算機。僅接受選定的傳入連接。

trusted
接受所有網絡連接。
可以將這些區域中的一個指定為默認區域。將接口連接添加到NetworkManager時,會將它們分配給默認區域。安裝時,firewalld中的默認區域將設置為公共區域。

注:具體內容,請參見官方文檔介紹!

 

二,防火牆配置

firewalld的配置存儲在/ usr / lib / firewalld /和/ etc / firewalld /中的各種XML文件中。

這樣可以提供很大的靈活性,因為文件可以編輯,編寫,備份,用作其他安裝的模板等。

修改防火牆配置文件之前,需要對之前防火牆做好備份

1.
firewall-cmd --state        
#查看firewall的狀態
firewall-cmd --list-all 
#查看防火牆規則(只顯示/etc/firewalld/zones/ public .xml中防火牆策略)
firewall-cmd --list-all-zones 
#查看所有的防火牆策略(即顯示/etc/firewalld/zones/下的所有策略)
firewall-cmd --reload
#重新加載配置文件
 
2、關閉firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd --state #查看默認防火牆狀態(關閉后顯示notrunning,開啟后顯示running)
 
3、firewalld的基本使用
啟動: systemctl start firewalld
查看狀態: systemctl status firewalld 
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
 
4、systemctl是CentOS7的服務管理工具中主要的工具,它融合之前service和chkconfig的功能於一體。

啟動一個服務:systemctl start firewalld.service
關閉一個服務:systemctl stop firewalld.service
重啟一個服務:systemctl restart firewalld.service
顯示一個服務的狀態:systemctl status firewalld.service
在開機時啟用一個服務:systemctl enable firewalld.service
在開機時禁用一個服務:systemctl disable firewalld.service
查看服務是否開機啟動:systemctl is-enabled firewalld.service
查看已啟動的服務列表:systemctl list-unit-files|grep enabled
查看啟動失敗的服務列表:systemctl --failed

5、配置firewalld-cmd

查看版本: firewall-cmd --version
查看幫助: firewall-cmd --help
顯示狀態: firewall-cmd --state
查看所有打開的端口: firewall-cmd --zone=public --list-ports
更新防火牆規則: firewall-cmd --reload
查看區域信息:  firewall-cmd --get-active-zones
查看指定接口所屬區域: firewall-cmd --get-zone-of-interface=eth0
拒絕所有包:firewall-cmd --panic-on
取消拒絕狀態: firewall-cmd --panic-off
查看是否拒絕: firewall-cmd --query-panic
 
那怎么開啟一個端口呢
添加
firewall-cmd  --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,沒有此參數重啟后失效)
重新載入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
刪除
firewall-cmd  --zone= public --remove-port=80/tcp --permanent
 
因為在/usr/lib/firewalld/services/中事先定義了ssh.xml的相應的規則


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM