Centos 5、Centos 6 系统的默认防火墙是 iptables;

Centos 7 默认的防火墙是 firewalld。

目录

  • 一、Firewalld 概述
    • 1.1 Firewalld 防火墙
    • 1.2 firewalld 与 iptables 的区别
  • 二、firewalld 区域的概念
  • 三、firewalld 数据处理流程
  • 四、firewalld 防火墙配置
    • firewalld 防火墙的配置方法
    • 使用 firewall-cmd 命令配置
    • 常用配置命令操作

一、Firewalld 概述

1.1 Firewalld 防火墙

  • firewalld 防火墙是 Centos7 系统默认的防火墙管理工具,取代了之前版本的 iptables 防火墙。

  • 也是工作在网络层,属于包过滤防火墙;

  • firewalld 和 iptables 都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,其实 内部结构都指向 netfilter 网络过滤子系统(属于内核态)来实现包过滤防火墙功能。

  • firewalld 提供了支持 网络区域所定义的网络链接 以及 接口安全等级的 动态防火墙管理工具;它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算)。拥有两种配置模式:运行时配置与永久配置。

1.2 firewalld 与 iptables 的区别

区别一:

  • iptables 主要是 基于接口 来设置规则,从而判断网络的安全性。
  • firewalld 是 基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。

区别二:存储位置

  • iptables 在 /etc/sysconfig/iptables 文件中储存配置,
  • firewalld 将配置储存在 /etc/firewalld/(优先加载)和 /usr/lib/firewalld/默认的配置文件)中的各种 XML 文件里。

区别三:

  • 使用 iptables 每一个单独更改意味着清除所有旧有的规则和从 /etc/sysconfig/iptables 里读取所有新的规则,立即生效;
  • 使用 firewalld 却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此 firewalld 可以在运行时间内 改变设置而不丢失现行连接。

区别四:

  • iptables 防火墙类型为 静态防火墙
  • firewalld 防火墙类型为 动态防火墙

二、firewalld 区域的概念

  • firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表。

firewalld防火墙预定义了9个区域

区域名称 作用
trusted(信任区域) 允许所有的传入流量。
public(公共区域) 允许与 ssh 或 dhcpv6-client 预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的 默认区域
external(外部区域) 允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。 默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络。
home(家庭区域) 允许与ssh、ipp-client、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
internal(内部区域) 默认值时与home区域相同。
work(工作区域) 允许与 ssh、ipp-client、dhcpv6-client 预定义服务匹配的传入流量,其余均拒绝。
dmz(隔离区域也称为非军事区域) 允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。
block(限制区域) 拒绝所有传入流量。
drop(丢弃区域) 丢弃所有传入流量,并且不产生包含 ICMP的错误响应。

区域介绍:

  • 最终一个区域的安全程度是取决于管理员在此区域中设置的规则。
  • 区域如同进入主机的安全门,每个区域都具有不同限制程度的规则,只会允许符合规则的流量传入。
  • 可以根据网络规模,使用一个或多个区域,但是任何一个 【活跃区域】 至少需要关联 源地址 或 接口(网卡)。
  • 默认情况下,public 区域是【默认区域】,包含所有接口(网卡)(网卡和区域进行绑定)
  • public、external、internal 为常用区域

三、firewalld 数据处理流程

  • firewalld对于进入系统的数据包,会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则
  • 对于进入系统的数据包,首先检查的就是其源地址。

firewalld 检查数据包的源地址的规则:

  1. 若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。
  2. 若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),则使用传入网络接口的区域并执行该区域所制定的规则。
  3. 若网络接口未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则。

优先总结就是:

绑定源地址的区域规则 > 网卡接口绑定的区域规则 > 默认区域的规则

四、firewalld 防火墙配置

启动CentOS/RHEL 7后,防火墙规则设置由 firewalld 服务的 firewall-cmd 命令进行 你 管理。

运行时配置
●实时生效,并持续至Firewalld重新启动或重新加载配置
●不中断现有连接
●不能修改服务配置

永久配置
●不立即生效,除非Firewalld重新启动或重新加载配置
●中断现有连接
●可以修改服务配置

firewalld 防火墙的配置方法

  • 使用 firewall-cmd 命令行工具,永久修改防火墙规则。
  • 使用 firewall-config 命令调出 图形工具(有桌面的Linux系统)。
  • 编写 /etc/firewalld/ 中的配置文件中的内容。

使用 firewall-cmd 命令配置

配置前首先要保证防火墙已开启

systemctl start firewalld.service

1 . 查看、修改、移除 当前的 默认区域

2 . 为接口(网卡)绑定区域

firewall-cmd --get-default-zone    #显示当前默认区域
firewall-cmd --set-default-zone=<zone>   #设置默认区域--get-active-zones #显示当前正在使用的区域及其对应的网卡接口
--get-zones :显示所有可用的区域--get-zone-of-interface=<interface>         #显示指定接口绑定的区域
--zone=<zone> --add-interface=<interface>   #为指定接口绑定区域
--zone=<zone> --change-interface=<interface> #为指定的区域更改绑定的网络接口
--zone=<zone> --remove-interface=<interface> #为指定的区域删除绑定的网络接口#--zone=<zone>  放前面 放后面无所谓如:firewall-cmd --add-interface=ens33  --zone=home  #为网卡33 改区域为home



3 . 指定源地址绑定的区域

firewall-cmd --get-zone-of-source=<source> [/<mask>]          #显示指定源地址绑定的区域
firewall-cmd --zone=<zone> -add-source=<source> [/<mask>]     #为指定源地址绑定区域
firewall-cmd --zone=<zone> -change-source=<source> [/<mask>]  #为指定的区域更改绑定的源地址
firewall-cmd --zone=<zone> -remove-source=<source> [/<mask>]  #为指定的区域删除绑定的源地址


4 . 查看所有区域及规则

firewall-cmd --list-all-zones  #显示所有区域及其规则firewall-cmd [--zone=<zone>] --list-all  #显示所有指定区域的所有规则#如果省略--zone=<zone>时表示仅对默认区域操作
如:firewall-cmd --zone=home --list-all   #显示home 区域的所有规则 firewall-cmd --list-all   #显示public区域的所有规则

5 . 指定区域设置允许访问的某项服务

[--zone=<zone>] --list-services     #显示指定区域内允许访问的所有服务
[--zone=<zone>] --add-service=<service>     #为指定区域设置允许访问的某项服务
[--zone=<zone>] --remove-service=<service>  #删除指定区域已设置的允许访问的某项服务
如:firewall-cmd --zone=home --list-services


5 . 指定区域内允许访问的所有端口号

端口号/协议号都要有[--zone=<zone>] --list-ports  #显示指定区域内允许访问的所有端口号
[--zone=<zone>] --add-port=<portid>[-<portid>]/<protocol>  #为指定区域设置允许访问的某个/某段端口号(包括协议名)
[--zone=<zone>] --remove-port=<portid>[-<portid>]/<protocol> #删除指定区域已设置的允许访问的端口号(包括协议名)[--zone=<zone>] --list-icmp-blocks  #显示指定区域内拒绝访问的所有 ICMP 类型
[--zone=<zone>] --add-icmp-block=<icmptype>  #为指定区域设置拒绝访问的某项 ICMP 类型
[--zone=<zone>] --remove-icmp-block=<icmptype>  #删除指定区域已设置的拒绝访问的某项ICMP类型
firewall-cmd --get-icmptypes :显示所有 ICMP 类型

常用配置命令操作

区域管理:

(1)显示当前系统中的 默认区域

firewall-cmd --get-default-zone

(2)显示 默认区域 的所有规则

firewall-cmd --list-all

(3)显示当前正在使用的默认区域及其对应的网卡接口

firewall-cmd --get-active-zones

(4)设置默认区域

firewall-cmd --set-default-zone=home
firewall-cmd --get-default-zone

服务管理

(1)查看默认区域内 允许访问的所有服务

firewall-cmd --list-service

(2)添加 httpd 服务到public 区域

firewall-cmd --add-service=http --zone=public

(3)查看 public 区域已配置的规则

firewall-cmd --list-all --zone=public

(4)删除 public 区域的httpd 服务

firewall-cmd --remove-service=http --zone=public

(5)同时添加 httpd、https 服务到默认区域,并设置成永久生效

#方法一:
firewall-cmd --add-service=http --add-service=https --permanent#添加使用 --permanent选项表示设置成永久生效,需要重新启动 firewalld 服务或执行;#方法二,先设置临时生效,再用 --reload 设置成永久生效:
firewall-cmd --add-service={http,https,ftp} #默认临时添加到默认区域 --zonehome 添加到home区域
firewall-cmd --reload
firewall-cmd --list-all     firewall-cmd --reload #表示重新加载防火墙规则时才会生效。
若不带有此选项,表示用于设置运行时规则,但是这些规则在系统或firewalld服务重启、停止时配置将失效。firewall-cmd --runtime-to-permanent #将当前的运行时配置写入规则配置文件中,使之成为永久性配置。

例:

执行:
firewall-cmd --add-service={http,https,ftp} --zone=public
立即生效,但是重启系统  或重启firewalld服务后,失效。
如果--add-service 后面执行
firewall-cmd --runtime-to-permanent
再执行reload,添加的服务就还在,重启前生效,重启后也生效执行:
firewall-cmd --add-service={http,https,ftp} --zone=home --permanent
重启前不生效,执行firewall-cmd --reload重启后才生效


端口管理

(1)允许TCP的 443端口到 internal 区域

firewall-cmd --zone=internal --add-port=443/tcp
firewall-cmd --list-all --zone=internal

(2)从internal 区域将TCP的 443端口移除

firewall-cmd --zone=internal --remove-port=443/tcp

(3)允许UDP的 2048~2050 端口 到 默认区域,端口范围用 - 表示

firewall-cmd --add-port=2048-2050/udp
firewall-cmd --list-all

Firewalld 防火墙相关推荐

  1. 第8章 Iptables与Firewalld防火墙

    本章分别使用iptables.firewall-cmd.firewall-config和TCP Wrappers等防火墙策略配置服务 iptables服务把用于处理或过滤流量的策略条目称之为规则,多条 ...

  2. 理论+实操: linux中firewalld防火墙基础讲解(转载)

    前言 firewalld概述.firewalld 中的d代表服务 firewalld 和 iptables 的关系 firewalld 网络区域 firewalld 防火墙的配置方法 firewall ...

  3. CentOS7、REHL7的firewalld防火墙使用简单说明

    title: CentOS7.REHL7的firewalld防火墙使用简单说明 categories: Linux tags: - Linux timezone: Asia/Shanghai date ...

  4. centos7 防火墙_Linux系统安全Centos 7的Firewalld防火墙基础

    一.Linux防火墙的基础 Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实时过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙).Linux系统的防火墙体系基于内核共存:fire ...

  5. Firewalld,iptables概述(netfilter和Firewalld,iptables三者之间的关系,四表五链,Firewalld防火墙的配置方发,SNAT,DNAT了解)

    文章目录 Firewalld,iptables概述 Firewalld了解 iptables了解 Firewalld和iptables的关系 netfilter Firewalld.iptables ...

  6. 防火墙简介(二)——firewalld防火墙

    防火墙简介(二)--firewalld防火墙 一.firewalld防火墙简介 二.firewalld 与 iptables 的区别 三.firewalld 区域的概念 1.firewalld防火墙9 ...

  7. Linux基础(iptables与firewalld防火墙)

    iptables 在早期的Linux系统中,默认使用的是iptables防火墙管理服务来配置防火墙.尽管新型的fierwalld防火墙管理服务已经被投入使用多年,但是大量的企业在生产环境中依然出于各种 ...

  8. firewalld防火墙配置

    firewalld是自CentOS 7以来带有一个动态的.可定制而无需重新启动防火墙守护程序或服务.firewall-cmd就是iptables/nftable的前端.在CentOS 8中,nftab ...

  9. 配置聚合连接 和 配置firewalld防火墙

    1 案例1:启用SELinux保护 1.1 问题 本例要求为虚拟机 server0.desktop0 配置SELinux: 确保 SELinux 处于强制启用模式 在每次重新开机后,此设置必须仍然有效 ...

  10. firewalld防火墙配置、测试服务、高级配置与IP伪装、端口转发

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Firewalld防火墙 防火墙基础 一.防火墙配置 二.使用防火墙安装http服务测试分别测试内网.外网.dmz 三.firewal ...

最新文章

  1. SQLite中特殊的INSERT语句
  2. 不是python中用于开发用户界面的第三方库-Python计算生态习题(50题)
  3. VMware HA与VMotion的部署与搭建
  4. global全局变量
  5. 计算机检测维修与数据恢复试卷,计算机检测维修与数据恢复技术及应用原稿(范文1)...
  6. c语言ics什么意思,[转载]C网来话筛选(ICS)业务及实现
  7. (转)Spring Boot 2 (十):Spring Boot 中的响应式编程和 WebFlux 入门
  8. java fastjson vector转为json_java对象与Json字符串之间的转化(fastjson)
  9. POPTEST老李谈Debug和Release的区别(c#) 1
  10. 把字母排序ASC表c语言,c语言ASCII码排序
  11. python 小程序搜索排名-用python2.7.9 写个小程序搜索某个目录下行有某关键字
  12. k8s 创建、切换、删除namespace
  13. PostgreSQL rocks, except when it blocks: Understanding locks
  14. 注册不到zipkin服务_Spring Cloud微服务之 sleuth+zipkin日志聚合
  15. 【全开源商城小程序源码】ThinkPHP 5.1+带后台商城源码程序+带详细安装使用文档
  16. 当今最热专家凯文•凯利最新演讲精彩全记录
  17. 记:解决We‘re sorry but ... doesn‘t work properly without JavaScript enabled. Please enable it to contin
  18. 【刷题】LOJ 2863 「IOI2018」组合动作
  19. 房地产泡沫,经济发展的真正毒瘤
  20. 电脑安卓手机模拟器怎么修改IP地址

热门文章

  1. Mongodb查询结果导出
  2. dell服务器两个硬盘磁盘阵列,dell服务器怎样做两个raid
  3. stdcall和cdecl函数调用约定详解
  4. 织梦Dedecms5.7默认数据库87张表结构详细说明
  5. 极米NEWZ6X性价比怎么样?和当贝F1C谁更好?
  6. Nginx - 使用Nginx实现数据采集的构想
  7. [GDOI模拟2015.08.12]囚人的旋律
  8. 【算法笔记第9.8节-哈夫曼编码】问题 C: 哈夫曼树(最小带权路径长度)
  9. 农村有五六亩荒地(种植什么果树比较省心)
  10. 操作系统学习(一)-- 从发展史理解操作系统设计需求