一、firewalld防火墙概述

  • firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前iptables防火墙,也是工作在网络层,属于包过滤防火墙。
  • firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过滤子系统(属于内核态)来实现包过滤防火墙功能。
  • firewalld提供了支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具。
  • 它支持IPv4、 IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算),并且拥有两种配置模式:运行时配置与永久配置。

1.1 netfilter

位于Linux内核中的包过滤功能体系
称为Linux防火墙的“内核态”

1.2 firewalld /iptables

Centos7默认的管理防火墙规则的工具(FIERWALLD)
称为Linux防火墙的“用户态”

二、firewalld 与 iptables 的区别

1)

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

2)

iptables在/etc/ sysconfig/iptables中储存配置,

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

3)

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

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

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

firewalld只关心区域,iptables需要关心四表五链,规则匹配顺序

三、firewalld 区域的概念

3.1 firewalld 区域的概念

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

3.2 firewalld防火墙预定义的9个区域

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

3.3 区域规则

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

3.4 firewalld数据处理流程

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

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

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

四、firewalld防火墙的配置

运行时配置

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

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

4.1 firewalld防火墙的配置方法

1、使用firewall-cmd 命令行工具。
2、使用firewall-config 图形工具。
3、编写/etc/firewalld/中的配置文件。

4.2 常用的firewalld-cmd命令选项

systemctl start firewalld.service     #开启防火墙服务
1
 --get-default-zone :显示当前默认区域--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> :为指定的区域删除绑定的网络接口--get-zone-of-source=<source>[/<mask>] :显示指定源地址绑定的区域--zone=<zone> --add-source=<source>[/<mask>] :为指定源地址绑定区域--zone=<zone> --change-source=<source>[/<mask>] :为指定的区域更改绑定的源地址--zone=<zone> --remove-source=<source>[/<mask>] :为指定的区域删除绑定的源地址--list-all-zones :显示所有区域及其规则[--zone=<zone>] --list-all :显示所有指定区域的所有规则,省略--zone=<zone>时表示仅对默认区域操作[--zone=<zone>] --list-services :显示指定区域内允许访问的所有服务[--zone=<zone>] --add-service=<service> :为指定区域设置允许访问的某项服务[--zone=<zone>] --remove-service=<service> :删除指定区域已设置的允许访问的某项服务[--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 类型

4.3 firewall-config 图形工具

firewall-config

五、firewalld管理

5.1 区域管理

(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

5.2 服务管理

(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
firewall-cmd --reload
firewall-cmd --list-all
#添加使用 --permanent选项表示设置成永久生效,需要重新启动firewalld服务或执行firewall-cmd --reload命令重新加载防火墙规则时才会生效。若不带有此选项,表示用于设置运行时规则,但是这些规则在系统或firewalld服务重启、停止时配置将失效。firewall-cmd --runtime-to-permanent:将当前的运行时配置写入规则配置文件中,使之成为永久性配置。

5.3 端口管理

(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. Linux防火墙firewalld只允许特定IP访问

    Linux防火墙firewalld只允许特定IP访问 目录 目标 思路 直接说办法 其他注意事项 1.Centos 7 使用firewalld 而不是 iptables,iptables 是Cento ...

  2. ansible防火墙firewalld设置

    ansible防火墙firewalld设置 背景 需求 操作 防火墙的开关 打开 验证 防火墙端口策略 打开 验证 防火墙服务策略 打开 验证 背景 防火墙 通过有机结合各类用于安全管理与筛选的软件和 ...

  3. Linux中防火墙firewalld

    Linux中防火墙firewalld 一.什么是防火墙 二.防火墙的作用 三.Linux中的防火墙分类 四.firewalld防火墙 1. 区域 2.运行模式和永久模式 五.防火墙设置 1.防火墙的启 ...

  4. Linux命令之Centos 7 systemctl和防火墙firewalld命令(初学一)

    如上图:可以在本地的git bash中通过ssh来连接登录linux服务器 语法:ssh 用户名@IP -p 端口   (因为ssh默认端口是22)   也可以是ssh 用户名@IP 2.echo命令 ...

  5. Linux7查看防火墙日志,Linux入门教程:CentOS7防火墙firewalld配置,防火墙日志在哪呢...

    Linux入门教程:CentOS7防火墙firewalld配置,防火墙日志在哪呢 启动: systemctl start firewalld 停止: systemctl stop firewalld ...

  6. linux防火墙firewalld

    目录 一.firewalld的理论 1.firewalld的概述 2.iptables和firewall的区别 3.firewalld的区域 4.九个区域的作用 5.firewall数据的处理流程 二 ...

  7. 防火墙---firewalld

    Firewalld概述 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具 支持IPv4.IPv6防火墙设置以及以太网桥 支持服务或应用程序直接添加防火墙规则接口拥有两种配置模式: 运行 ...

  8. RHEL7中防火墙firewalld的配置

    转自http://lduan.blog.51cto.com/5428084/1547139 在RHEL7里有几种防火墙共存:firewalld.iptables.ebtables,默认使用firewa ...

  9. Centos7 防火墙 firewalld 实用操作

    一.前言 Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙.其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤 ...

最新文章

  1. 都9012年了,你还在手动部署代码吗(二)
  2. Neutron 物理部署方案 - 每天5分钟玩转 OpenStack(68)
  3. jQuery EasyUI布局容器layout实例精讲
  4. java密码框提示_[Java教程]如何实现在密码框如出现提示语
  5. docker mysql:8.0.27
  6. git/ssh捋不清的几个问题
  7. Onvif开发之Linux下gsoap的使用及移植
  8. 百度车牌识别API-Python版
  9. codeforces731E Funny Game(DP)
  10. 电影台词搜索引擎,英语学习和视频创作的必备神器
  11. #泰坦尼克号幸存者预测
  12. 【IOS实用玩机技巧】爱思助手 IPA 签名功能常见问题汇总(iOS上架)
  13. 前端入门练习之将psd文件转换为HTML文件
  14. closeEvent
  15. 用gcc编译器运行c语言程序
  16. 第七章 射频信号源
  17. 亚马逊APP更换新图标,尴尬又不失礼貌的“微笑”
  18. 手机卡机不见的文件怎么恢复
  19. ios自动订阅服务器,任何(早期)iOS自动续订订阅体验
  20. mysql 5.7 免安装_Window Mysql5.7免安装版配置

热门文章

  1. jupyterlab 安装
  2. 代驾小程序开发功能模块介绍
  3. 基于多尺度图神经网络的流场预测,实现精度与速度的平衡
  4. 基于windows的身份验证
  5. MySQL的JDBC编程(Java)
  6. 【HTML | CSS】我用“一行“代码为CSDN博客主页挂上灯笼(附源码)
  7. 丹麦最神奇门将:踢球时思考数学,37岁拿诺奖,与爱因斯坦吵吵一辈子,开创了量子力学
  8. PC端微信小程序字体无法显示加粗
  9. 2017.2.16 日课
  10. 安全测试--WEB,微信端渗透测试报告