1. 程式人生 > >CentOS 7 下使用 Firewalld

CentOS 7 下使用 Firewalld

在 CentOS 7 中,引入了一個新的服務,Firewalld,下面一張圖,讓大家明確的瞭解 Firewalld 與 iptables 之間的關係與區別。

安裝它,只需

yum install firewalld

如果需要圖形介面的話,則再安裝

yum install firewall-config

一、介紹

防火牆守護 firewalld 服務引入了一個信任級別的概念來管理與之相關聯的連線與介面。它支援 ipv4 與 ipv6,並支援網橋,採用 firewall-cmd (command) 或 firewall-config (gui) 來動態的管理 kernel netfilter 的臨時或永久的介面規則,並實時生效而無需重啟服務。

zone

Firewall 能將不同的網路連線歸類到不同的信任級別,Zone 提供了以下幾個級別

  • drop: 丟棄所有進入的包,而不給出任何響應
  • block: 拒絕所有外部發起的連線,允許內部發起的連線
  • public: 允許指定的進入連線
  • external: 同上,對偽裝的進入連線,一般用於路由轉發
  • dmz: 允許受限制的進入連線
  • work: 允許受信任的計算機被限制的進入連線,類似 workgroup
  • home: 同上,類似 homegroup
  • internal: 同上,範圍針對所有網際網路使用者
  • trusted: 信任所有連線
過濾規則
  • source: 根據源地址過濾
  • interface: 根據網絡卡過濾
  • service: 根據服務名過濾
  • port: 根據埠過濾
  • icmp-block: icmp 報文過濾,按照 icmp 型別配置
  • masquerade: ip 地址偽裝
  • forward-port: 埠轉發
  • rule: 自定義規則

其中,過濾規則的優先順序遵循如下順序

  1. source
  2. interface
  3. firewalld.conf

二、使用方法

# systemctl start firewalld         # 啟動,
# systemctl enable firewalld        # 開機啟動
# systemctl stop firewalld          # 關閉
# systemctl disable firewalld       # 取消開機啟動

具體的規則管理,可以使用firewall-cmd ,具體的使用方法可以

$ firewall-cmd --help

--zone=NAME                         # 指定 zone
--permanent                         # 永久修改,--reload 後生效
--timeout=seconds                   # 持續效果,到期後自動移除,用於除錯,不能與 --permanent 同時使用
1. 檢視規則

檢視執行狀態

$ firewall-cmd --state

檢視已被啟用的 Zone 資訊

$ firewall-cmd --get-active-zones
public
  interfaces: eth0 eth1

檢視指定介面的 Zone 資訊

$ firewall-cmd --get-zone-of-interface=eth0
public

檢視指定級別的介面

$ firewall-cmd --zone=public --list-interfaces
eth0

檢視指定級別的所有資訊,譬如 public

複製程式碼
$ firewall-cmd --zone=public --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client http ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:
複製程式碼

檢視所有級別被允許的資訊

$ firewall-cmd --get-service

檢視重啟後所有 Zones 級別中被允許的服務,即永久放行的服務

$ firewall-cmd --get-service --permanent
2. 管理規則
# firewall-cmd --panic-on           # 丟棄
# firewall-cmd --panic-off          # 取消丟棄
# firewall-cmd --query-panic        # 檢視丟棄狀態
# firewall-cmd --reload             # 更新規則,不重啟服務
# firewall-cmd --complete-reload    # 更新規則,重啟服務

新增某介面至某信任等級,譬如新增 eth0 至 public,永久修改

# firewall-cmd --zone=public --add-interface=eth0 --permanent

設定 public 為預設的信任級別

# firewall-cmd --set-default-zone=public
a. 管理埠

列出 dmz 級別的被允許的進入埠

# firewall-cmd --zone=dmz --list-ports

允許 tcp 埠 8080 至 dmz 級別

# firewall-cmd --zone=dmz --add-port=8080/tcp

允許某範圍的 udp 埠至 public 級別,並永久生效

# firewall-cmd --zone=public --add-port=5060-5059/udp --permanent
b. 網絡卡介面

列出 public zone 所有網絡卡

# firewall-cmd --zone=public --list-interfaces

將 eth0 新增至 public zone,永久

# firewall-cmd --zone=public --permanent --add-interface=eth0

eth0 存在與 public zone,將該網絡卡新增至 work zone,並將之從 public zone 中刪除

# firewall-cmd --zone=work --permanent --change-interface=eth0

刪除 public zone 中的 eth0,永久

# firewall-cmd --zone=public --permanent --remove-interface=eth0
c. 管理服務

新增 smtp 服務至 work zone

# firewall-cmd --zone=work --add-service=smtp

移除 work zone 中的 smtp 服務

# firewall-cmd --zone=work --remove-service=smtp
d. 配置 external zone 中的 ip 地址偽裝

檢視

# firewall-cmd --zone=external --query-masquerade

開啟偽裝

# firewall-cmd --zone=external --add-masquerade

關閉偽裝

# firewall-cmd --zone=external --remove-masquerade
e. 配置 public zone 的埠轉發

要開啟埠轉發,則需要先

# firewall-cmd --zone=public --add-masquerade

然後轉發 tcp 22 埠至 3753

# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=3753

轉發 22 埠資料至另一個 ip 的相同埠上

# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

轉發 22 埠資料至另一 ip 的 2055 埠上

# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100
f. 配置 public zone 的 icmp

檢視所有支援的 icmp 型別

# firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded

列出

# firewall-cmd --zone=public --list-icmp-blocks

新增 echo-request 遮蔽

# firewall-cmd --zone=public --add-icmp-block=echo-request [--timeout=seconds]

移除 echo-reply 遮蔽

# firewall-cmd --zone=public --remove-icmp-block=echo-reply
g. IP 封禁
# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.222' reject"

轉自:http://www.cnblogs.com/suidouya/p/5718026.html

相關推薦

CentOS 7 使用 Firewalld

在 CentOS 7 中,引入了一個新的服務,Firewalld,下面一張圖,讓大家明確的瞭解 Firewalld 與 iptables 之間的關係與區別。 安裝它,只需 yum install firewalld 如果需要圖形介面的話,則再安裝 yum i

CentOS 7安裝使用Github

git push 文件 rep ica not 使用 管理系統 非root oba 在虛擬機安裝了QT以後,想把工程代碼放在版本管理系統軟件裏面,免得一遍遍創建checkpoint麻煩的要死。又因為虛擬機跟物理機數據很難交互,只好借助github了。搜了搜安裝配置方法,記錄

centos 7 安裝Matplotlib

matplotlib[[email protected]/* */ bin]# [[email protected]/* */ bin]# [[email protected]/* */ bin]# [[email protected]/* */ bin]# p

centos 7 多網卡綁定

add ima 鏈接 刪除 維護 謝謝 學習總結 drive 查看 一、前言  CentOS7之前系統提供給用戶的是bonding driver來實現鏈路聚合,實際上bonding適用於大多數應用。Bonding driver的架構是由內核空間完全控制、管理。 Team d

[CentOS 7系列]firewalld

firewalld1、開啟firewalld服務[[email protected]/* */ ~]# systemctl disable iptables Removed symlink /etc/systemd/system/basic.target.wants/iptables.servic

Linux CentOS 7 jdk安裝

$path 環境變量 創建 mkdir jdk1.8 jdk .tar.gz file 設置環境變量 1.在/usr/目錄下創建java目錄 [[email protected]/* */ ~]# mkdir /usr/java[[email prot

[轉] CentOS 7firewalld添加開放端口及相關資料

span 查看版本 復制代碼 rman usr 開放端口 script centos 7 閱讀 轉自http://www.cnblogs.com/hubing/p/6058932.html 1、運行、停止、禁用firewalld 啟動:# systemctl start

CentOS 7新建用戶並設置為可提升為ROOT權限

linux root 權限 第一步:添加用戶命令:#adduser tom <!--此處以用戶tom為例-->第二步:修改密碼命令:#passwd tom根據提示輸入兩次密碼,完成密碼設置。第三步:設置用戶權限 方法一:修改 /etc/sudoers 文件(推薦方法) 命

修改Linux/Centos 7的默認網卡名

linux centos eth0 在使用linux/Centos 7時可能大家會發現在安裝好系統後默認的網卡名是一個隨機數,在使用的過程中使用極為不便,linux/Centos 7的這種改變是因為在systemd和udev中引入新的網卡命名技術,可以在舊硬件壞了後更換新硬件後可以重命名設備

CentOS 7搭建高可用集群

default pacemaker local 時間同步 use 告訴 -c ddr 目標 一 、安裝集群軟件 必須軟件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相關服務,也要安裝對應的軟件。 二、配置防火墻1、禁止防火墻和

CentOS 7 安裝 Nginx

表達 dev 默認 tro 二次 編譯 stc style idc CentOS 7 下安裝 Nginx [日期:2016-09-05] 來源:Linux社區 作者:mafly [字體:大 中 小] 轉載:http://www.linu

CentOS 7修改默認網卡名為eth0的兩種方法

修改網卡eth0第一種方式這種方式適合在安裝操作系統的時候進行設置,點擊 Tab,打開kernel啟動選項,增加內核參數: net.ifnames=0 biosdevname=0--->Enter回車第二種方式修改網卡配置文件中的 DEVICE= 參數的關於 eth0[root@ansheng ~]

關於linux-Centos 7mysql 5.7.9的rpm包的安裝方式

mysql 5.7.9的rpm包的安裝方環境介紹>>>>>>>>>>>>>>>>>>操作系統:Centos 7.1mysql數據庫版本:mysql5.7.9mysql官方網站:http://www.my

centos 7 關閉firewalld開啟iptables

start stat sel tar bsp linux 開機 reject 系統 1: 關閉系統高級防火墻firewalld systemctl stop firewalld.service #停止firewall systemctl disable firewall

Centos 7 安裝 samba 服務

創建 oba art man rect 匿名訪問 登陸 sys 工作站 yum install samba 配置文件在:/etc/samba/smb.conf [global] #添加下面這句 map to guest = Bad User #這個選項是保證匿名

CentOS 7tomcat應用服務簡易安裝部署

grep cat -s syn disable home from normal term 依賴基礎軟件:1、 CentOS7.2 64位操作系統2、 ORACLE JDK 1.8 64位 3、 APACHE Tomcat 8.5.6 首先部署安裝centos操作系統

CentOS 7搭建配置SVN服務器

col 目錄 賬號密碼 .cn .html 亂碼 錯誤 dmi cal 原文鏈接:https://www.cnblogs.com/tdalcn/p/6937714.html 同步:http://blog.csdn.net/u011884440/article/details

linux-Centos 7bond與vlan技術的結合

bond與vlan技術服務器eno1與eno2作bonding,捆綁成bond0接口,服務器對端交換機端口,同屬於301、302號vlan接口vlan 100: 10.104.100.253/24 vlan 101: 10.104.101.253/241.交換機端沒有打

Linux運維高級篇—CentOS 7Postfix郵件服務器搭建

linux下構建postfix郵件服務器第一章 實驗環境 硬件環境:Linux服務器一臺,IP地址:192.168.80.10;WIN7客戶端一臺,擁有OUTLOOK2013,測試用,與服務器在同一局域網內。 Linux系統環境,如下圖: 第二章 實驗內容一:搭建DNS服務器二:搭建postfix服務