Firewalld概述

  • firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙
  • firewalld与iptables防火墙一样也属于典型的包过滤防火墙或称之为网络层防火墙
  • firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter这一强大的网络过滤子系统(属于内核态)以实现包过滤防火墙功能
  • firewalld防火墙最大的优点在于支持动态更新以及加入了防火墙的‘zone’概念
  • firewalld防火墙同时支持IPv4地址和IPv6地址。可以通过字符管理工具firewall-cmd和图形化管理工具firewall-- config进行管理

Firewalld与Iptables的区别

  • iptables主要是基于接口,来设置规则,从而判断网络的安全性;而firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全,与硬件防火墙的设置类似。
  • iptables的规则配置在/etc/sysconfig/iptables文件中;firewalld将配置存储在/etc/firewalld/(优先加载)和/usr/lib/firewalld/(默认的配置文件)中的各种XML文件里
  • 使用iptables每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptable里读取所有新的规则;使用 firewalld 却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld 可以在运行时间内,改变设置而不丢失现行连接。

Firewalld区域的概念

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

Firewalld防火墙区域

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

区域功能
public(公共区域)默认只允许ssh、dhcp协议数据包传入
home(家庭区域)默认只允许ssh、dhcp、samba、mdns协议数据包传入
work(工作区域)默认只允许ssh、dhcp协议数据包传入
internal(内部区域)默认只允许ssh、dhcp、samba、mdns协议数据包传入
external(外部区域)默认只允许ssh协议数据包传入,传出数据包会做地址伪装转换(MASQUERADE)
dmz(隔离区域也称为非军事区域)非军事区域,默认只允许ssh协议数据包传入
trusted(信任区域)允许所有的传入流量
block(限制区域)拒绝所有,有响应消息
drop(丢弃区域)丢弃所有,无响应消息

附:默认情况的默认区域为public(默认与所有网卡绑定)。要激活某个区域,需要将区域与源地址或网卡绑定

Firewalld数据包处理规则

先检查传入数据包的源地址,若源地址与特定区域绑定,则使用该区域的规则过滤数据包

若源地址与特定区域没有绑定,且数据包传入网卡与特定区域绑定,则使用绑定网卡的区域的规则过滤数据包

若也没有区域绑定网卡则使用public区域(默认区域)的规则过滤数据包

Firewalld防火墙的配置方法

1.使用firewall-com 命令行工具
2.使用firewall-config 图形工具
3.编写/etc/firewalld/ 中的配置文件
在这里插入图片描述
在这里插入图片描述

区域配置文件
/etc/firewalld/zones/*
/usr/lib/firewalld/zones/*
在这里插入图片描述

首先要求确保firewalld.service处于开启状态
systemctl start firewalld.service

== 常用的firewall-cmd 命令选项==

代码作用
get显示信息
–zone=xxx指定区
zones所有区
default默认
active已绑定
interface接口(网卡)
list列表显示
service服务
port端口号
ports所有端口号
add添加
remove删除

查询

代码作用
firewall-cmd --get-zones显示所有可用的区域
firewall-cmd --get-default-zone查看默认区域
firewall-cmd --get-active-zones显示当前正在使用的区域及其对应的网卡接口
firewall-cmd --get-zone-of-interface=<interface>显示指定接口绑定的区域
firewall-cmd --list-all-zones显示所有区域及其规则
firewall-cmd --list-all --zone=xxx显示指定区域及其所有规则
firewall-cmd --list-service --zone=xxx显示指定区域内允许访问的所有服务
firewall-cmd --list-ports显示指定区域内允许访问的所有端口号
…………

格式展示:

firewall-cmd --get-zones | 显示所有可用的区域
在这里插入图片描述

firewall-cmd --get-default-zone | 查看默认区域
在这里插入图片描述

firewall-cmd --get-active-zones | 显示当前正在使用的区域及其对应的网卡接口
在这里插入图片描述
firewall-cmd --get-zone-of-interface=<interface> | 显示指定接口绑定的区域
在这里插入图片描述

firewall-cmd --list-all-zones | 显示所有区域及其规则
在这里插入图片描述

firewall-cmd --list-service --zone=xxx | 显示指定区域内允许访问的所有服务

在这里插入图片描述
firewall-cmd --list-ports | 显示指定区域内允许访问的所有端口号
在这里插入图片描述


添加

代码作用
firewall-cmd --add-interface=ensxx --zone=xxx为指定的接口绑定区域
firewall-cmd --add-source=xxxx --zone=xxx为指定的源地址绑定区域
firewall-cmd --add-services=xxx --zone=xxx为指定区域设置允许访问的某项服务
…………

格式展示:
firewall-cmd --add-interface=ensxx --zone=xxx | 为指定的接口绑定区域
在这里插入图片描述
firewall-cmd --add-source=xxxx --zone=xxx | 为指定的源地址绑定区域
在这里插入图片描述
firewall-cmd --add-services=xxx --zone=xxx | 为指定区域设置允许访问的某项服务
在这里插入图片描述

一个区域可以关联多个网卡或源地址
一个网卡或源地址只能关联一个区域


删除

代码作用
firewall-cmd --remove-interface=ensxx --zone=xxx解除指定网卡的绑定
firewall-cmd --remove-source=xxxx --zone=xxx删除源地址的绑定
firewall-cmd --remove-services=xxx --zone=xxx为指定区域设置删除允许访问的某项服务
…………

格式展示:

firewall-cmd --remove-interface=ensxx --zone=xxx | 解除指定网卡的绑定
在这里插入图片描述firewall-cmd --remove-services=xxx --zone=xxx | 为指定区域设置删除允许访问的某项服务
在这里插入图片描述


修改

代码作用
firewall-cmd --set-default-zone=xxx修改默认区域
firewall-cmd --change-interface=xxx --zone=xxx修改网卡的绑定区域
firewall-cmd --change-source=xxx --zone=xxx修改源地址的绑定区域

格式展示:

firewall-cmd --set-default-zone=xxx | 修改默认区域
在这里插入图片描述

firewall-cmd --change-interface=xxx --zone=xxx | 修改网卡的绑定区域
在这里插入图片描述

永久生效

永久生效(重新加载后生效或重启服务):permanent

firewall-cmd xxxxxxxxx–permanent

相当于把配置写进了配置文件中不会立即生效需要重启服务或者重新加载

重新加载

重新加载配置文件:reload
firewall-cmd --reload

设置永久配置

将现有配置转换为永久配置
firewall-cmd --runtime-to-permanent

Firewalld地址转换

设置地址转换
(1)设置 SNAT
firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A POSTROUTING -s 192.168.80.0/24 -j SNAT --to-source 12.0.0.1

(2)设置 DNAT
firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A PREROUTING -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.80.11

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐