前言

Linux服务器、搭建网站、部署项目,防火墙是第一道安全防线。很多新手搭建完环境就直接裸机上线,极易被恶意攻击、暴力破解、扫描端口。

CentOS 7及以上版本默认自带 firewalld 动态防火墙,相比传统iptables,操作更简单、支持动态生效、无需重启服务器。今天给大家整理一份零基础可直接套用的Linux防火墙最全配置指南,日常运维、生产环境都能用,建议收藏备用!

一、Linux防火墙基础认知

1、什么是firewalld?

firewalld 是Linux系统动态防火墙管理工具,核心作用:

- 管控服务器进出流量,放行合法端口、拦截恶意访问

- 支持规则动态修改,无需重启服务,实时生效

- 自带区域规则,可区分办公网、公网、内网,安全性更高

2、永久规则 VS 临时规则

- --permanent :永久生效,重启服务器不丢失,必须重载才生效

- 不加参数:临时生效,即时可用,服务器重启后规则全部失效

- 所有永久配置后,必须执行: firewall-cmd --reload 重载生效

二、防火墙基础启停命令(必记)

1、查看防火墙状态

bash

# 简洁查看状态

firewall-cmd --state


# 详细查看运行状态

systemctl status firewalld


2、启动/停止/重启防火墙

bash

# 启动防火墙

systemctl start firewalld


# 停止防火墙

systemctl stop firewalld


# 重启防火墙

systemctl restart firewalld


3、设置开机自启(生产环境必备)

bash

# 开机自动启动(推荐)

systemctl enable firewalld


# 取消开机自启

systemctl disable firewalld


三、核心实操:端口开放与关闭(最常用)

1、永久开放单个端口

格式: --add-port=端口/协议

bash

# 永久开放80端口(网站http)

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


# 永久开放443端口(网站https)

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


# 永久开放22端口(SSH远程连接)

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


# 重载生效

firewall-cmd --reload


2、开放端口范围

bash

# 永久开放20000-30000所有TCP端口

firewall-cmd --permanent --add-port=20000-30000/tcp

firewall-cmd --reload


3、关闭已开放端口

bash

# 永久关闭8080端口

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

firewall-cmd --reload


4、查看已放行所有端口

bash

# 查看当前放行端口

firewall-cmd --list-ports


四、服务方式放行(不用记端口,更便捷)

防火墙支持直接放行常用服务,无需手动输入端口,适合新手:

bash

# 永久放行http服务(80端口)

firewall-cmd --permanent --add-service=http


# 永久放行https服务(443端口)

firewall-cmd --permanent --add-service=https


# 重载生效

firewall-cmd --reload


# 查看已放行服务

firewall-cmd --list-services


五、高级配置:限制IP访问(安全加固)

1、禁止指定IP访问服务器

bash

# 禁止192.168.1.100这个恶意IP所有访问

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

firewall-cmd --reload


2、仅允许指定IP访问某个端口

bash

# 只允许192.168.1.50访问3306数据库端口(禁止外网随便连MySQL

firewall-cmd --permanent --add-rich-rule="rule family=IPv4 source address=192.168.1.50 port protocol=tcp port=3306 accept"

firewall-cmd --reload


3、查看所有高级富规则

bash

firewall-cmd --list-rich-rules


六、常用区域配置(了解即可)

firewalld 默认分多个区域,默认使用 public 公网区域:

bash

# 查看所有可用区域

firewall-cmd --get-zones


# 查看当前默认区域

firewall-cmd --get-default-zone


# 修改默认区域为public

firewall-cmd --set-default-zone=public


七、生产环境安全最佳实践

1、绝不随意关闭防火墙,公网服务器必须保持防火墙开机启动

2、只开放业务必需端口,多余端口一律关闭,不随意开放大范围端口

3、MySQL(3306)、Redis(6379)等数据库端口,禁止对公网开放,仅允许内网IP访问

4、修改默认SSH端口,配合防火墙限制登录IP,防止暴力破解

5、所有配置优先使用 permanent 永久模式,避免重启后规则丢失

八、总结

Linux防火墙是服务器安全的第一道门槛,掌握 firewalld 基础命令,就能轻松搞定端口放行、IP限制、安全防护。

相比于复杂的iptables,firewalld 命令简洁、上手简单,不管是个人建站、测试环境,还是企业生产服务器,都能直接套用以上命令。

建议大家养成习惯:服务器上线先配置防火墙,从源头杜绝网络攻击,运维工作少走弯路!

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。