Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 工作笔记

  • K8S

  • Systemd

  • Nginx

  • Supervisord

  • OpenLdap

  • OpenVPN

  • GitLab

  • Sshd

  • WebDev

  • Docker

  • Prometheus

  • Rclone

  • Iptables

  • Firewalld

    • firewalld总结
      • Firewalld 日常使用手册
        • 目录
        • 1. Firewalld 概述
        • 2. 安装和启动 Firewalld
        • 3. 基本命令
        • 4. 区域和服务管理
        • 5. 配置 NAT 规则
        • 6. 配置自定义服务
        • 7. 常见问题排查
    • firewalld简单防止ddos攻击
  • Linux笔记
  • Firewalld
Carry の Blog
2022-03-08
目录

firewalld总结

# Firewalld 日常使用手册

# 目录

  1. Firewalld 概述
  2. 安装和启动 Firewalld
  3. 基本命令
  4. 区域和服务管理
  5. 配置 NAT 规则
  6. 配置自定义服务
  7. 常见问题排查

# 1. Firewalld 概述

Firewalld 是一个动态管理防火墙的工具,支持网络区域定义,用于分配不同的信任级别。它提供了丰富的命令行接口和图形界面工具,用于配置规则和策略。

# 2. 安装和启动 Firewalld

# 安装

sudo yum install firewalld  # 对于 CentOS/RHEL
sudo apt-get install firewalld  # 对于 Ubuntu/Debian
1
2

# 启动并启用

sudo systemctl start firewalld
sudo systemctl enable firewalld
1
2

# 3. 基本命令

# 查看状态

sudo firewall-cmd --state
1

# 重新加载配置

sudo firewall-cmd --reload
1

# 查看当前区域设置

sudo firewall-cmd --get-active-zones
1

# 列出所有区域

sudo firewall-cmd --get-zones
1

# 4. 区域和服务管理

# 查看区域配置

sudo firewall-cmd --zone=public --list-all
1

# 添加服务到区域

sudo firewall-cmd --zone=public --permanent --add-service=http
1

# 移除服务

sudo firewall-cmd --zone=public --permanent --remove-service=http
1

# 添加端口到区域

sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
1

# 移除端口

sudo firewall-cmd --zone=public --permanent --remove-port=8080/tcp
1

# 添加 rich rule

sudo firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" port port="0-65535" protocol="tcp" reject'
1

# 5. 配置 NAT 规则

# 添加 PREROUTING 规则

sudo firewall-cmd --permanent --direct --add-rule ipv4 nat PREROUTING 0 -s 172.18.2.0/24 -d 127.0.0.1 -p tcp --dport 3306 -j DNAT --to-destination 172.17.3.1:3366
1

# 添加 POSTROUTING 规则

sudo firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -s 172.18.2.0/24 -d 172.17.3.1 -p tcp --dport 3366 -j MASQUERADE
1

# 6. 配置自定义服务

# 创建自定义 SSH 服务

  1. 复制默认 SSH 服务文件
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-custom.xml
1
  1. 编辑自定义服务文件
sudo nano /etc/firewalld/services/ssh-custom.xml
1

修改 <port protocol="tcp" port="22"/> 行,添加新的端口,例如:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>SSH Service</description>
  <port protocol="tcp" port="22"/>
  <port protocol="tcp" port="2222"/>
</service>
1
2
3
4
5
6
7
  1. 重载 Firewalld 配置
sudo firewall-cmd --reload
1
  1. 使用自定义服务
sudo firewall-cmd --zone=public --permanent --add-service=ssh-custom
sudo firewall-cmd --zone=public --permanent --remove-service=ssh
1
2

# 7. 常见问题排查

# 检查规则是否生效

sudo iptables -L -n -v
1

# 查看日志

sudo journalctl -xe
1

# 测试连接

telnet <server-ip> 22
ssh -p 2222 your_username@your_server_ip
1
2

# 确认防火墙配置

sudo firewall-cmd --zone=public --list-all
1
上次更新: 4/24/2025

← 常用的 Linux iptables 规则 firewalld简单防止ddos攻击→

最近更新
01
tidb fast ddl
04-04
02
TiDB配置文件调优 原创
04-03
03
如何移除TiDB中的表分区 原创
04-03
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式