当前位置:首页>Linux>Linux firewalld 防火墙实操|端口放行 IP 拦截 Day24

Linux firewalld 防火墙实操|端口放行 IP 拦截 Day24

  • 2026-09-05 13:43:21
Linux firewalld 防火墙实操|端口放行 IP 拦截 Day24

互联网服务器暴露在公网,每时每刻都会遭遇扫描、暴力破解攻击。

防火墙就是服务器的第一道安全屏障。

今天重点讲解企业主流  firewalld (CentOS/RHEL系列默认防火墙),学会端口开放、IP黑名单、端口转发、区域规则管理。掌握防火墙策略,大幅度降低服务器被入侵风险。

一、今日学习目标

✅ firewalld 服务启停、基础状态查看

✅ 理解zone区域概念(public、trusted、drop)

✅ 实现端口永久放行/关闭

✅ 配置指定IP访问、黑名单封禁恶意IP

✅ 掌握端口转发、富规则高级配置

✅ 学会策略永久生效、排错、保存与重载

二、firewalld 基础操作

bash    

# 查看运行状态

systemctl status firewalld

# 启动、停止、重启

systemctl start firewalld

systemctl stop firewalld

systemctl restart firewalld

# 开机自启/关闭开机启动

systemctl enable firewalld

systemctl disable firewalld

# 查看默认区域

firewall-cmd --get-default-zone

# 查看当前生效规则

firewall-cmd --list-all

重要:firewalld 默认运行时策略临时生效,重启失效,需要加  --permanent  持久化配置,重载后生效!

三、Zone 区域简单理解

firewalld 使用区域管理网络流量,不同区域代表不同信任级别:

-  public  默认区域:外部网络,仅允许少量服务通行

-  trusted  信任区域:全部流量允许通行(内网常用)

-  drop  丢弃区域:所有流量直接丢弃,无响应

日常公网服务器默认使用 public。

四、高频实战配置(最常用)

1、放行单个端口(永久生效)

示例开放80端口 Nginx

bash    

firewall-cmd --permanent --add-port=80/tcp

# 重载策略生效

firewall-cmd --reload

2、放行一段连续端口

开放 3000-4000端口

bash    

firewall-cmd --permanent --add-port=3000-4000/tcp

firewall-cmd --reload

3、删除关闭端口

bash    

firewall-cmd --permanent --remove-port=80/tcp

firewall-cmd --reload

4、直接放行服务名称(内置服务)

bash    

# 放行ssh

firewall-cmd --permanent --add-service=ssh

firewall-cmd --reload

# 查看支持的内置服务

firewall-cmd --get-services

五、高级功能:IP访问控制(富规则 rich-rule)

场景1:只允许指定IP访问22端口(SSH加固核心!)

只允许 192.168.1.100 连接SSH,其余IP全部拒绝

bash    

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port protocol='tcp' port='22' accept"

firewall-cmd --reload

场景2:拉黑恶意IP,直接拦截

bash    

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='111.22.33.44' reject"

firewall-cmd --reload

删除一条富规则

复制创建命令,把  --add-rich-rule  改成  --remove-rich-rule 

六、端口转发实战

需求:访问服务器8080端口,转发到内网 192.168.1.200:80

bash    

# 开启IP转发

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

sysctl -p

# 添加转发规则

firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toaddr=192.168.1.200:toport=80

firewall-cmd --reload

七、实用查询命令

bash    

# 查看所有放行端口

firewall-cmd --list-ports

# 查看所有富规则

firewall-cmd --list-rich-rules

# 测试规则是否永久配置

firewall-cmd --permanent --list-all

八、新手高频踩坑汇总

1. 不加 --permanent

策略重启服务器消失!凡是需要永久保存的配置必须携带此参数,执行后重载。

2. 修改防火墙后没有执行  firewall-cmd --reload 

策略不会生效。

3. 云服务器防火墙放行端口依然无法访问

👉 注意:阿里云/腾讯云还有安全组,防火墙放行端口后,安全组也要同步开放!

4. 错误拉黑自己IP,远程连不上服务器

测试规则建议先临时不加 --permanent ,测试没问题再持久化。

5. SSH不要轻易直接清空所有规则,防止远程断开无法登录

九、补充:Ubuntu 常用 ufw 简要说明

Ubuntu 默认没有firewalld,自带ufw防火墙

bash    

ufw allow 80/tcp

ufw delete allow 80/tcp

ufw enable

ufw status

企业生产CentOS服务器优先使用 firewalld。

十、今日实操作业

bash    

# 1.查看防火墙状态与现有规则

firewall-cmd --list-all

# 2.临时放行8090端口测试,然后删除

firewall-cmd --add-port=8090/tcp

# 3.永久放行8080端口

firewall-cmd --permanent --add-port=8080/tcp

firewall-cmd --reload

# 4.练习添加一条IP黑名单规则,随后删除测试

十一、今日知识点总结

1. firewalld是CentOS主流防火墙,区分临时规则与永久规则

2.  --permanent  持久配置 +  firewall-cmd --reload  标准流程

3. 常规业务:开放端口、开放内置服务

4. 富规则rich-rule实现精细化IP黑白名单访问控制

5. 支持端口转发,适合内网服务暴露场景

6. 云服务器 = 系统防火墙 + 云平台安全组双重防护

✅ 学会防火墙,完成服务器基础网络安全加固!

实操过程中遇到报错或者疑问,欢迎在评论区留言一起探讨。关注「嘟嘟嘟的运维冒险」,持续更新Linux实战学习干货。

#Linux 入门 #firewalld #服务器安全 #运维新手

最新文章

随机文章