firewalld火墙服务

本文介绍了Firewalld防火墙的基础知识,包括其工作原理、动态管理特性以及如何通过图形界面和命令行进行配置。涵盖了区域配置、端口管理、服务管理和富规则设定等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Firewalld概述

动态防火墙后台程序firewalld提供了一个动态管理的防火墙,用以支持网络“zones”,以分配对一个网络及其相关链接和界面一定程度的信任。它具备对IPv4和IPv6防火墙设置的支持。它支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口
系统提供了图像化的配置工具firewall-config、system-config-firewall,提供命令行客户端firewall-cmd,用于配置firewalld永久性或非永久性运行时间的改变:它依次用iptables工具与执行数据包筛选的内核中的Netfilter通信

2.Firewalld域

这里写图片描述

3.启用火墙

[root@client ~]# yum install firewalld
[root@client ~]# firewall-config   #打开图形管理工具
[root@client ~]# systemctl start firewalld
[root@client ~]# systemctl enable firewalld
[root@client ~]# systemctl stop iptables
[root@client ~]# systemctl disable iptables

图形管理工具具体功能:
1.选择运行时(Runtime)模式或永久(Permanent)模式的配置。
2.可选的策略集合区域列表。
3.常用的系统服务列表。
4.当前正在使用的区域。
5.管理当前被选中区域中的服务。
6.管理当前被选中区域中的端口。
7.开启或关闭 SNAT(源地址转换协议)技术。
8.设置端口转发策略。
9.控制请求 icmp 服务的流量。
10.管理防火墙的富规则。
11.管理网卡设备。
12.被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关
的流量。
13.firewall-config 工具的运行状态

这里写图片描述
这里写图片描述
这里写图片描述

4.用命令行接口配置防火墙

firewall-cmd --state                     #查看火墙状态
firewall-cmd --get-active-zones          #显示当前正在使用的区域
firewall-cmd --get-default-zone          #查询默认的区域名称
firewall-cmd --get-zones                 #显示可用的区域
firewall-cmd --zone=public --list-all    #列出public域中所有的信息   
firewall-cmd --get-services              #显示预先定义的服务
firewall-cmd --list-all-zones           #显示所有区域的网卡配置参数、资源、端口以及服务等信息
firewall-cmd --set-default-zone=trusted #设置默认的区域
firewall-cmd --add-source=172.25.254.155 --zone=trusted    #将源自此 IP 或子网的流量导向指定的区域
firewall-cmd --remove-source=172.25.254.155 --zone=trusted #不再将源自此 IP 或子网的流量导向某个指定区域
firewall-cmd  --list-interfaces                      #查看接口        
firewall-cmd  --get-zone-of-interface=eth0           #查看接口所在区域
firewall-cmd  --change-interface=eth0 --zone=trusted #将某个网卡与区域进行关联
firewall-cmd  --remove-interface=eth0 --zone=trusted #将某个网卡与区域解除关联
firewall-cmd  --add-interface=eth0 --zone=public     #将源自该网卡的所有流量都导向某个指定区域
firewall-cmd --add-port=8080/tcp --zone=public       #把在firewalld服务中访问8080端口的流量策略设置为允许

以上修改只是当前生效,在火墙重启之后就会失效,如果想让配置策略一直存在,就需要使用永久(Permanent)模式了,方法就是在用 firewall-cmd 命令正常设置防火墙策略时添加–permanent 参数,这样配置的防火墙策略就可以永久生效了。但是,永久生效模式有一个“不近人情”的特点,就是使用它设置的策略只有在系统重启之后才能自动生效。如果想让配置的策略立即生效,需要手动执行 firewall-cmd –reload 命令。如:

firewall-cmd  --permanent --change-interface=eth0 --zone=trusted #永久更改网卡的区域
firewall-cmd --reload           #在不改变状态的情况下重新加载火墙
firewall-cmd --complete-reload  #完全加载(会中断当前的操作)

这里写图片描述
这里写图片描述
………..截图下面省略…………….

修改firewalld域
这里写图片描述
测试:
这里写图片描述
这里写图片描述
测试:
这里写图片描述
把172.25.254.155访问时所使用的区域改为trusted
这里写图片描述
测试:
这里写图片描述
临时更改,火墙重启之后失效
这里写图片描述
永久修改:
这里写图片描述

5.direct rules

firewall-cmd --direct --add-rule ipv4 filter IN_public_allow 0 -p tcp --dport 80 -j ACCEPT #-p表示协议,-dport表示目的端口,-s主机来源,-j表示动作
如:
[root@client ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.155 -j ACCEPT

drop   丢弃,不做回应
reject  拒绝
accept 接受

这里写图片描述
浏览器测试
这里写图片描述

6.端口转发:

[root@localhost ~]# firewall-cmd  --permanent --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.252
success
[root@localhost ~]# firewall-cmd --permanent --add-masquerade
success
[root@localhost ~]# firewall-cmd --reload 
success

这里写图片描述
这里写图片描述

7.地址伪装

在路由器先添加一个网卡,再执行下面命令

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.0.152
PREFIX=24
[root@localhost ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
在测试的主机上
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=172.25.0.252
GATEWAY=172.25.0.152
[root@localhost ~]# ping 172.25.254.155

在路由主机
这里写图片描述
/etc/sysconfig/network-scripts/ifcfg-eth1内容:
这里写图片描述
内核设置
这里写图片描述
在测试主机
这里写图片描述
/etc/sysconfig/network-scripts/ifcfg-eth0内容:
这里写图片描述
测试:
这里写图片描述

### 关于 Firewalld 的使用教程 #### 安装 Firewalld 对于基于 Red Hat 的系统,如 CentOS 或 RHEL,在安装 `firewalld` 可以通过包管理器完成。命令如下所示: ```bash [root@bogon ~]# yum install firewalld firewall-config [^1] ``` 这会下载并安装 `firewalld` 和图形化配置工具。 #### 启动与启用服务 为了使 `firewalld` 能够随操作系统启动而自动运行,需执行以下指令来开启此服务: ```bash systemctl start firewalld.service # 开启服务 systemctl enable firewalld.service # 设置开机自启 ``` #### 基本操作命令 - **查看状态** 要检查当前防火墙的状态以及活动区域的信息,可输入: ```bash firewall-cmd --state # 查看是否正在运行 firewall-cmd --get-active-zones # 获取激活区详情 ``` - **设置默认区域** 可以通过下面的命令更改系统的默认区域(例如 public, home, work 等),并将之设为永久生效: ```bash firewall-cmd --set-default-zone=public [--permanent] [^2] ``` 注意:带有 `[--permanent]` 参数表示修改将被保存至重启后仍然有效;如果不加该参数,则仅临时应用直到下一次重新加载规则集或重启机器为止。 #### 添加/删除端口和服务 当需要开放特定的服务或者端口号时,可以利用这些命令来进行调整: ```bash firewall-cmd --zone=public --add-port=80/tcp [--permanent] # 打开端口80 HTTP协议 firewall-cmd --zone=public --remove-service=http [--permanent] # 移除HTTP服务支持 ``` 每次做出变更之后记得刷新规则使其立即生效: ```bash firewall-cmd --reload # 刷新规则库 ``` #### 处理 IP 地址和接口分配 还可以针对不同的IP地址范围定义访问权限,或是指定某个网卡所属的安全域: ```bash firewall-cmd --zone=trusted --add-source=192.168.1.0/24 # 将整个C类子网加入信任列表 firewall-cmd --zone=external --change-interface=enp0s3 # 更改ethernet设备enp0s3到外部区域 ``` 以上只是对 `firewalld` 功能的一个简单介绍[^2]。更深入的学习建议查阅官方文档或其他权威资料获取完整的理解和实践指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值