【笔记】firewalld 常用命令清单

1.基础操作类

sudo systemctl start firewalld   启动防火墙服务

sudo systemctl enable firewalld 开机自动启动防火墙(disable 关闭开机自动启动)

sudo firewall-cmd --state     查看防火墙状态

sudo firewall-cmd --reload  重新加载规则

sudo firewall-cmd --list-all    查看所有规则

2.zone(区域)管理

sudo firewall-cmd --get-active-zones   查看当前激活区域

sudo firewall-cmd --zone=public --change-interface=eth0        设置接口到指定区域(eth0为实际存在)

sudo firewall-cmd --zone=public --list-all    查看指定区域规则

3.服务器控制类

sudo firewall-cmd --get-services     查看支持的服务列表

sudo firewall-cmd --add-service=http --permanent   允许http服务

sudo firewall-cmd --remove-service=ssh --permanent  移除SHH服务(此条需要慎重,务必确保有控制台或本地终端时操作,否则可能无法远程登录)

sudo firewall-cmd --reload  应用更改

4.端口控制类

sudo firewall-cmd --add-port=8080/tcp --permanent    开放8080端口

sudo firewall-cmd --remove-port=8080/tcp --permanent  删除8080端口

sudo firewall-cmd --list-ports      查看所有端口

5.Rich Rule 高级规则(Rich Rule 会优先于 zone 普通规则生效

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'              限制单个IP访问22端口

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.101" reject'           拒绝某个ip访问

sudo firewall-cmd --list-rich-rules   查看所有rich-rules

6.日常排查与维护

sudo journalctl -u firewalld    查看firewalld日志

sudo firewall-cmd --runtime-to-permanent   将当前运行时规则同步到永久配置

sudo firewall-cmd --get-zones  列出所有区域

PS: 临时规则:不加(--permanent),重启firewalld后失效

         永久规则:加,需要--reload生效,重启后仍然有效

7.防火墙规则模版(不同类型基础模版,具体的需要视情况而定)

     ①web服务器(Nginx,Apache...)

                开放HTTP/HTTPS + SSH

                限制SSH来源IP

    ②数据库服务器(MySQL,PostgreSQL....)

                只开放数据库端口给特定内网ip段(内网访问)【数据库端口3306/tcp或其他..】

                关闭所有不必要服务

    ③堡垒机/跳板机(Bastion Host)

                仅开放SSH,并严格限制来源IP(公司出口或者运维的IP)

PS:保存 ‘ /etc/firewalld ’ 目录,以便快速回复

练习:web服务器脚本:web-firewall.sh(记得使用root权限)

#!/bin/bash
# Web 服务器防火墙初始化脚本

set -e

if ! command -v firewall-cmd &> /dev/null; then
    echo "firewalld 未安装,请先安装。"
    exit 1
fi

echo "启动并设置 firewalld..."
sudo systemctl enable --now firewalld

echo "添加 http 和 https 服务..."
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

echo "限制 SSH 来源,仅允许 192.168.88.0/24 访问..."
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.88.0/24" service name="ssh" accept'
sudo firewall-cmd --permanent --remove-service=ssh

echo "重新加载 firewalld..."
sudo firewall-cmd --reload

echo "最终规则:"
sudo firewall-cmd --list-all

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值