【安全硬核】3分钟学会配置Linux防火墙:Firewalld实战指南

简介: 本文介绍Linux服务器防火墙Firewalld的使用,作为云安全组后的第二道防线。涵盖启停服务、开放/关闭端口、查看状态、IP白名单设置等核心操作,并强调与阿里云安全组协同配置的重要性,助力构建生产环境的纵深防御体系。(238字)

前言

在之前的文章中,我们提到了阿里云ECS的“第一道防线”——安全组。但对于追求极致安全的生产环境来说,仅仅依靠云厂商的安全组是不够的,我们通常会构建“纵深防御”体系。

Linux系统自带的防火墙(Firewalld 或 Iptables)就是服务器的“第二道防线”。

  • 安全组:相当于小区的门禁,挡在服务器外面。
  • 本地防火墙:相当于你家的大门,挡在操作系统层面。

在 CentOS 7/8 及 Alibaba Cloud Linux 中,默认的防火墙管理工具是 Firewalld(它底层其实还是调用的 iptables,但操作更人性化)。今天我们就来攻克它。

1. 查看防火墙状态

首先,我们需要确认防火墙是不是活着的。

Bash

# 查看 firewalld 服务状态
systemctl status firewalld
  • 如果显示 Active: active (running),说明防火墙正在运行。
  • 如果显示 inactive (dead),说明防火墙是关闭的。

2. 开启与关闭

如果在测试环境下不想被防火墙干扰,可以临时关闭(生产环境不建议):

Bash

# 启动防火墙
systemctl start firewalld
# 停止防火墙
systemctl stop firewalld
# 禁止开机自启(永久关闭)
systemctl disable firewalld

3. 核心操作:如何开放端口?

这是开发中最最高频的操作。比如你部署了一个 Tomcat 在 8080 端口,安全组放行了,但如果 Firewalld 没放行,外网依然访问不了。

命令语法:firewall-cmd --zone=public --add-port=端口号/协议 --permanent

  • --zone=public:作用域为公共区域(默认)。
  • --permanent:永久生效(没有这个参数的话,重启服务器就失效了)。

代码示例:

Bash

# 1. 永久开放 80 端口 (HTTP)
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 2. 永久开放 8080 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 3. 【重要】重新加载配置
# 每次修改带 --permanent 的配置后,必须执行这句才能生效!
firewall-cmd --reload

4. 查看已开放的端口

不知道服务器现在到底开了哪些口子?查一下:

Bash

# 查看所有开放的端口
firewall-cmd --list-ports
# 输出示例:
# 80/tcp 8080/tcp 3306/tcp

5. 如何关闭(移除)端口?

如果你发现有个不常用的端口(比如 3306 数据库端口)暴露在外网太危险,想要关闭它:

Bash

# 移除 3306 端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
# 记得刷新
firewall-cmd --reload

6. 进阶技巧:设置“白名单”IP

这是专家级的配置。比如 SSH 的 22 端口,你希望只允许你公司的固定IP访问,拒绝其他所有人的暴力破解。

我们可以使用 rich-rule(富规则):

Bash

# 允许 IP 为 192.168.1.100 的机器访问 22 端口
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port protocol='tcp' port='22' accept"
# 重新加载
firewall-cmd --reload

7. 避坑指南:双重检查

这是新手最容易撞墙的地方:

以此为准:想要外网能访问一个端口,必须 阿里云安全组Linux Firewalld 同时放行! 想要外网能访问一个端口,必须 阿里云安全组Linux Firewalld 同时放行! (重要的事情说两遍)

很多时候你配置了 Firewalld 却不通,是因为阿里云控制台没配;反之亦然。

结语

掌握了 firewall-cmd 的这几个核心命令(add-port, remove-port, reload),你就掌握了Linux主机防护的钥匙。建议大家在搭建环境时,养成“最小权限原则”的习惯,只开放必要的端口。

相关文章
|
开发框架 网络协议 Ubuntu
【Linux】配置网络和firewall防火墙(超详细介绍+实战)
【Linux】配置网络和firewall防火墙(超详细介绍+实战)
6146 1
|
网络协议 Linux 网络安全
【linux】通过firewall开放端口
【linux】通过firewall开放端口
1058 0
|
数据可视化
在使用SVN的过程中,通过哪些执行查看某个文件的修改信息
在使用SVN的过程中,通过哪些执行查看某个文件的修改信息
2626 0
|
开发工具 Docker 容器
Docker设置国内镜像源
Docker设置国内镜像源
20512 1
|
Prometheus 监控 安全
SpringBoot Actuator未授权访问漏洞的解决方法
SpringBoot Actuator未授权访问漏洞的解决方法Actuator 是 SpringBoot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。
33319 0
|
8月前
|
运维 网络协议 Linux
Linux firewalld防火墙使用详解
firewalld是Linux动态防火墙管理工具,替代iptables,支持运行时与永久配置分离、区域隔离、富规则等特性。本教程详解firewall-cmd命令,涵盖核心概念、实战配置及高级功能,助力运维人员快速掌握防火墙管理技能。
|
8月前
|
运维 网络协议
Wireshark安装步骤详解(附抓包与过滤教程)
Wireshark.exe 是专业网络抓包分析工具,支持实时捕获HTTP/TCP/UDP等协议数据,助力故障排查与协议学习。需管理员权限运行,安装含NPcap驱动,首次使用选择网卡即可开始抓包。(239字)
1114 9
|
Linux Apache
Linux【环境部署 02】yum源镜像下载+挂载镜像+本地yum源配置+局域网yum源服务搭建+局域网yum源使用(一篇学会离线yum源配置)
Linux【环境部署 02】yum源镜像下载+挂载镜像+本地yum源配置+局域网yum源服务搭建+局域网yum源使用(一篇学会离线yum源配置)
9731 0
|
网络协议 Linux 网络安全
CentOS防火墙管理:查询与配置开放端口的技巧
遵循以上步骤,CentOS系统管理员能够灵活地查询和管理系统端口的开放情况,并且能适用于大多数防火墙管理场合。务必在改变防火墙规则后认真审核和测试,以确保网络安全性与服务的正常运行。
1773 0