1. 程式人生 > >(轉)CentOS7中防火牆的基本操作

(轉)CentOS7中防火牆的基本操作

目錄

學習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_firewalld

1、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:信任所有連線
對防火牆不算太熟悉,還沒想明白public、external、dmz、work、home從功能上都需要自定義允許連線,具體使用上的區別還需高人指點

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       # 設定防火牆開機啟動