前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运维分享|安全运维之firewalld浅谈使用

运维分享|安全运维之firewalld浅谈使用

原创
作者头像
Aion
发布2023-11-21 00:42:09
1950
发布2023-11-21 00:42:09
举报

引言

1 概述

防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。 防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。

注意⚠️:当前执行操作类都是在管理员命令下操作,如果非管理员用户下,会提示如下权限信息,firewalld本身并不是防火墙,而是一种防火墙管理工具,通过定义防火墙规则最终交由内核的netfilter进行包过滤实现防火墙功能。

代码语言:javascript
复制
Authorization failed.
    Make sure polkit agent is running or run the application as superuser.

当然如果是查询状态这种命令,就无需要管理员权限。

2 整体架构

firewalld由d-bus层和core层构成。d-bus层提供api,其它程序(如firewall-cmd、firewall-config、firewall-applet、甚至是你自己编写的程序或守护进程)通过调用api可定义防火墙规则或查询防火墙状态等等。core层为d-bus层提供服务,负责和后端交互。架构图如下:

备注:firewalld提供的firewall-offline-cmd不调用d-bus层,而是直接调用core层中的IO来修改防火墙规则。

3 安装和配置

firewall官方网址:https://firewalld.org/

firewall官方下载地址:https://firewalld.org/download/all.html

firewall支持两种配置,系统默认配置和系统特殊配置。

【系统默认配置】

默认配置的配置路径在/usr/lib/firewalld

【系统特殊配置】

特殊配制的路径在/etc/firewalld。

如果特殊配制路径不存在,那么在启动时,系统会自动查找系统默认配置,配置文件则是firewalld.conf。

实战

1、防火墙系统服务命令

防火墙启动命令:

代码语言:javascript
复制
systemctl start firewalld

防火墙停止:

代码语言:javascript
复制
systemctl disable firewalld

防火墙禁用:

代码语言:javascript
复制
systemctl stop firewalld

查防火墙状态:

代码语言:javascript
复制
systemctl status firewalld

执行上述命令之后,可以查看输出信息中有active (running),这表示我们的防火墙已经开启:

2、设置开放端口

  • 设置单个端口开放访问
代码语言:javascript
复制
firewall-cmd --zone=public --add-port=12345/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent

执行上述命令之后,可以看到输出success信息,这个表示我们已经成功设置了端口12345对外可以访问:

  • 设置多个连续个端口开放访问
代码语言:javascript
复制
firewall-cmd --zone=public --add-port=8081-8088/tcp --permanent

同样的,如果我们要设置连续端口对外开放访问,那么执行上述命令之后,也是会输出success信息,这里的连续端口8081-8088是指8081、8082、8083、8084、8085、8086、8087、8088

3、查看端口防火墙状态

代码语言:javascript
复制
firewall-cmd --zone=public --query-port=80/tcp

4、删除指定端口防火墙

代码语言:javascript
复制
firewall-cmd --zone=public --remove-port=12345/tcp --permanent  
firewall-cmd --zone=public --remove-port=8081-8088/tcp --permanent

删除端口对外访问原理同新增端口对外访问一致,执行后的结果如下

5、更新防火墙规则(重新加载)

这个命令主要是让已经设置的防火墙端口生效

代码语言:javascript
复制
firewall-cmd --reload

6、查看所有规则

代码语言:javascript
复制
firewall-cmd --list-all

执行上述命令之后,可以查看输出信息中有ports,这个便是我们已经开启防火墙状态下且只对外访问的端口:

5 总结

有些时候,最后再说一句,互联网免费工具,且用且珍惜❤️。


我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
    • 1 概述
      • 2 整体架构
        • 3 安装和配置
        • 实战
          • 1、防火墙系统服务命令
            • 2、设置开放端口
              • 3、查看端口防火墙状态
                • 4、删除指定端口防火墙
                  • 5、更新防火墙规则(重新加载)
                    • 6、查看所有规则
                    • 5 总结
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档