Linux防火墙基础部分Firewalld防火墙(小白入门级别)

🏡作者主页:************点击!****************

🐧Linux基础知识(初学):点击!****

🐧Linux高级管理防护和群集专栏:************点击!****************

🔐Linux中firewalld防火墙:点击!****

⏰️创作时间:2025年3月10日15点15分


目录

1.两大防火墙工具

2.firewalld的特点

3.firewalld与iptables的主要区别

4.firewalld不同区域

5.三种配置方法

防火墙基础案例

禁止Ping防火墙规则

允许SSH登录规则

允许apache流量规则

总结


作为一名系统管理员或开发者,你是否曾经被 Linux 防火墙配置搞得头大?在生产环境中,我们经常需要配置防火墙来保护服务器安全,但面对 iptables 和 firewalld 这两个工具,很多人都会觉得无从下手。别担心!这篇文章将用通俗易懂的方式,带你了解 CentOS 中的防火墙配置,并通过一个实际案例,手把手教你如何正确设置防火墙规则。

1.两大防火墙工具

  • firewalld:CentOS 7及以后版本的默认防火墙管理工具
  • iptables:传统的Linux防火墙管理工具

2.firewalld的特点

  • 动态管理防火墙
  • 支持网络/防火墙区域(zone)定义网络连接及接口的可信等级
  • 运行时配置和永久配置分离
  • 支持IPv4、IPv6
  • 支持以太网桥接

3.firewalld与iptables的主要区别

  • firewalld:
    • 动态配置,无需重启服务
    • 支持动态更改规则
    • 使用区域(zone)管理规则

配置文件存放地址:

复制代码
/etc/firewalld/               # 系统配置文件目录
/usr/lib/firewalld/          # 默认配置文件目录

注意:

  1. /etc/firewalld/:优先级高,用户配置目录
  2. /usr/lib/firewalld/:优先级低,默认配置目录
    • 系统升级时会覆盖此目录
    • 建议在/etc/firewalld/下修改配置
  • iptables service:

    • 静态配置,规则修改后需重启服务
    • 规则修改需要先清除旧规则
    • 使用链(chain)管理规则

配置文件存放地址:

复制代码
/etc/sysconfig/iptables      # 规则配置文件

4.firewalld不同区域

|----------|------------------------------------------------------------------------------|
| 区域 | 说明 |
| 信任 | 可接收所有的网络连接 |
| public | 除非与传出流量相关,或与 ssh 或 dhcpv6-client 预定义服务匹配,否则拒绝流量传入 |
| work | 除非与传出流量相关,或与 ssh、ipp-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入 |
| 家 | 除非与传出流量相关,或与 ssh、ipp-client、mdns、samba-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入 |
| internal | 除非与传出流量相关,或与 ssh、ipp-client、mdns、samba-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入 |
| external | 除非与传出流量相关,或与 ssh 预定义服务匹配,否则拒绝流量传入 |
| dmz | 除非与传出的流量相关,或与 ssh 预定义服务匹配,否则拒绝流量传入 |
| block | 除非与传出流量相关,否则拒绝所有传入流量 |
| drop | 除非与传出流量相关,否则丢弃所有传入流量,并且不产生包含 ICMP 的错误响应 |

5.三种配置方法

  • firewall-config 图形工具。
  • firewall-cmd 命令行工具。
  • /etc/firewalld/中的配置文件。

图形化不过多解释 需要的话你搜其他文章

防火墙基础案例

复制代码
+-------------+      +-------------+      +-------------+
|   Client    |      |   Firewall  |      |   Apache    |
|192.168.14.112|      |192.168.14.111|      |Linux 服务器 |
+-------------+      +-------------+      +-------------+
       |                    |                    |
       |                    |                    |
       +--------------------+--------------------+
  1. 禁止主机 ping 服务器
  2. 只允许 192.168.8.130 主机访问 SSH 服务
  3. 允许所有主机访问 Apache 服务

服务器配置

ip地址是192.168.14.111

复制代码
yum install -y httpd

[root@localhost ~]# echo 2024-12-3 > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# curl 127.0.0.1
2024-12-3

配置完成apache服务之后

客户端是可以ping的

禁止Ping防火墙规则
复制代码
# 启动 firewalld 并设置为开机自启动
systemctl start firewalld
systemctl enable firewalld

# 禁止 ping 服务器
firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
firewall-cmd --reload
# 验证配置
firewall-cmd --list-all

客户端测试

允许SSH登录规则
复制代码
# 移除默认区域的 SSH 服务
firewall-cmd --zone=public --remove-service=ssh --permanent

# 只允许 192.168.8.130 主机访问 SSH 服务
firewall-cmd --zone=work --add-source=192.168.14.112 --permanent
firewall-cmd --zone=work --add-service=ssh --permanent
firewall-cmd --reload



# 验证配置
firewall-cmd --list-all

客户端测试

其他ip的主机远程是拒绝了 因为只有 192.168.14.112可以远程

192.168.14.112 主机可以远程访问

允许apache流量规则
复制代码
# 允许所有主机访问 Apache 服务
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload
# 验证配置
firewall-cmd --list-all

客户端测试

为开放apache的流量之前

复制代码
[root@localhost ~]# curl 192.168.14.111
curl: (7) Failed connect to 192.168.14.111:80; 没有到主机的路由

开放之后 所有的主机均可以访问的

复制代码
[root@localhost ~]# curl 192.168.14.111
2024-12-3

总结

通过这篇文章,我们不仅学习了 firewalld 和 iptables 的基本概念,更重要的是通过一个实际的案例,展示了如何:

  1. 轻松配置防火墙规则来阻止 ping 请求
  2. 限制特定 IP 地址的 SSH 访问,提高服务器安全性
  3. 开放 HTTP 服务,让网站正常对外提供服务

记住,防火墙配置不是一成不变的,你可以根据实际需求随时调整规则。最重要的是理解每个配置背后的原理,这样才能灵活应对各种场景。希望这篇文章能帮助你在实际工作中少走弯路,轻松搞定防火墙配置!

成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

相关推荐
Dontla8 分钟前
Modbus RTU ---> Modbus TCP透传技术实现(Modbus透传、RS485透传、RTU透传)分站代码实现、协议转换器
服务器·网络·tcp/ip
Wireless_wifi618 分钟前
QCN9274/QCN6274 WiFi 7 Modules: Transforming Mining & Oil Industries
linux·5g·service_mesh
CYRUS_STUDIO31 分钟前
Android 自定义变形 HMAC 算法
android·算法·安全
梅见十柒1 小时前
UNIX网络编程笔记:TCP、UDP、SCTP编程的区别
服务器·网络·c++·笔记·tcp/ip·udp·unix
JZC_xiaozhong1 小时前
单一主数据系统 vs. 统一主数据中心,哪种更优?
大数据·运维·企业数据管理·主数据管理·mdm管理·数据孤岛解决方案·数据集成与应用集成
一直走下去-明1 小时前
docker简单使用
运维·docker·容器
三块钱07941 小时前
ubuntu22.04 安装Jitsi meet 开源会议系统,代替腾讯会议
linux·运维·服务器·腾讯会议·会议系统·jitis meet
m0_740154672 小时前
SpringMVC 请求和响应
java·服务器·前端
2503_908249382 小时前
【无标题】
安全