(轉)CentOS7中防火牆的基本操作
阿新 • • 發佈:2018-11-05
目錄
學習apache安裝的時候需要開啟80埠,由於centos 7版本以後預設使用firewalld後,網上關於iptables的設定方法已經不管用了,想著反正iptable也不會用,索性直接搬官方文件,學習firewalld了,好像比iptables要簡單點了。
官方文件地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1、firewalld簡介
firewalld是centos7的一大特性,最大的好處有兩個:支援動態更新,不用重啟服務;第二個就是加入了防火牆的“zone”概念 firewalld有圖形介面和工具介面,由於我在伺服器上使用,圖形介面請參照官方文件,本文以字元介面做介紹 firewalld的字元介面管理工具是 firewall-cmd firewalld預設配置檔案有兩個:/usr/lib/firewalld/ (系統配置,儘量不要修改)和 /etc/firewalld/ (使用者配置地址) zone概念: 硬體防火牆預設一般有三個區,firewalld引入這一概念系統預設存在以下區域(根據文件自己理解,如果有誤請指正):- drop:
- block:拒絕所有外部連線,允許內部發起的連線
- public:指定外部連線可以進入
- external:這個不太明白,功能上和上面相同,允許指定的外部連線
- dmz:和硬體防火牆一樣,受限制的公共連線可以進入
- work:工作區,概念和workgoup一樣,也是指定的外部連線允許
- home:類似家庭組
- internal:信任所有連線
2、安裝firewalld
root執行:# yum install firewalld firewall-config
3、執行、停止、禁用firewalld
啟動:# systemctl start firewalld
檢視狀態:
# systemctl status firewalld
或者
firewall-cmd --state
停止:
# systemctl disable firewalld
禁用:
# systemctl stop firewalld
4、配置firewalld
檢視版本:$ firewall-cmd --version
檢視幫助:
$ firewall-cmd --help
顯示狀態:
$ firewall-cmd --state
檢視所有開啟的埠:
$ firewall-cmd --zone=dmz --list-ports
檢視區域資訊:
$ 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 --reload
或者:
$ firewall-cmd --complete-reload
兩者的區別就是第一個無需斷開連線,就是firewalld特性之一動態新增規則,第二個需要斷開連線,類似重啟服務
將介面新增到區域,預設介面都在public,永久生效再加上
--permanent
,然後reload防火牆
# firewall-cmd --zone=public --add-interface=eth0
設定預設介面區域,然後立即生效無需重啟
# firewall-cmd --set-default-zone=public
5 開啟埠
加入一個埠到區域:# firewall-cmd --zone=dmz --add-port=8080/tcp
若要永久生效,
# vi /etc/sysconfig/iptables-config # 也可能是iptables檔案
開啟3306埠,則在最後新增這樣一樣:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重啟和設定開機啟動
# systemctl restart firewalld # 重啟防火牆使配置生效
# systemctl enable firewalld # 設定防火牆開機啟動