修改Linux防火墙规则?firewalld/ufw/iptables全指南

修改前的关键准备

  1. 备份现有规则
    sudo iptables-save > ~/iptables_backup.txt  # iptables备份
    sudo cp /etc/ufw/user.rules ~/ufw_backup.rules  # ufw备份
  2. 查看当前规则
    sudo firewall-cmd --list-all          # firewalld
    sudo ufw status verbose               # ufw
    sudo iptables -L -n -v                # iptables
  3. 权限要求
    所有操作需 root 权限,命令前加 sudo

主流工具操作指南

使用 firewalld(推荐用于 CentOS/RHEL/Fedora)

  • 开放端口
    sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent  # 永久开放TCP 8080
    sudo firewall-cmd --reload  # 重载生效
  • 允许IP访问
    sudo firewall-cmd --zone=public --add-source=192.168.1.100 --permanent
    sudo firewall-cmd --reload
  • 删除规则
    sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    sudo firewall-cmd --reload

使用 ufw(推荐用于 Ubuntu/Debian)

  • 启用防火墙
    sudo ufw enable  # 首次使用需启用
  • 开放SSH端口(避免锁死自己)
    sudo ufw allow 22/tcp
  • 允许特定服务
    sudo ufw allow http  # 等价于端口80
    sudo ufw allow 443/tcp
  • 拒绝IP访问
    sudo ufw deny from 203.0.113.50  # 屏蔽IP
  • 删除规则
    sudo ufw status numbered  # 查看规则编号
    sudo ufw delete 2         # 删除编号2的规则

使用 iptables(通用但需手动保存)

  • 开放端口
    sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT  # 允许MySQL端口
  • 允许IP段
    sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT  # 允许整个子网
  • 删除规则
    sudo iptables -L INPUT --line-numbers  # 查看规则行号
    sudo iptables -D INPUT 3               # 删除INPUT链的第3条规则
  • 保存规则(必须操作)
    sudo apt install iptables-persistent   # Debian/Ubuntu
    sudo netfilter-persistent save
    # 或
    sudo service iptables save             # CentOS 6

常见场景示例

  1. 部署Web服务器
    sudo ufw allow 80/tcp && sudo ufw allow 443/tcp  # ufw
    sudo firewall-cmd --add-service={http,https} --permanent  # firewalld
  2. 允许Ping检测
    sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  3. 端口转发(将80转到8080)
    sudo firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent

安全注意事项

  1. 避免锁死自己
    • 修改规则前确保已放行当前SSH连接端口(默认22)。
    • 使用nohup执行可能断连的操作:
      nohup sudo ufw enable &  # 后台启用防火墙
  2. 最小权限原则
    • 仅开放必要端口,如非生产环境关闭3306、6379等数据库端口。
    • 使用--permanent(firewalld)或保存规则(iptables)防止重启失效。
  3. 日志监控
    sudo ufw logging on  # 启用日志(路径:/var/log/ufw.log)
    sudo journalctl -u firewalld.service  # 查看firewalld日志

故障排查

  • 规则未生效?
    检查顺序:

    1. 是否重载了配置(firewall-cmd --reloadufw reload)?
    2. 是否保存了规则(iptables需手动保存)?
    3. 是否有冲突规则(如先拒绝所有再允许个别)?
  • 恢复备份
    sudo iptables-restore < ~/iptables_backup.txt  # iptables还原
    sudo ufw reload < ~/ufw_backup.rules           # ufw还原

引用说明

  • 官方文档:
    firewalld.org |
    Ubuntu UFW Guide |
    Netfilter Iptables
  • 安全标准参考:
    NIST SP 800-123《Linux服务器安全指南》
  • 测试环境:
    CentOS 9 / Ubuntu 22.04 LTS / iptables v1.8.8

修改防火墙规则时,始终遵循“先测试后生产”原则,复杂网络环境建议结合tcpdump验证流量,并定期审计规则。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9971.html

(0)
酷番叔酷番叔
上一篇 2025年8月8日 08:29
下一篇 2025年8月8日 08:45

相关推荐

  • Linux服务安装的具体操作步骤和方法是什么?

    Linux作为开源操作系统,其服务管理是系统运维的核心环节,服务的安装、配置与直接关系到系统功能的稳定运行,本文将详细讲解Linux服务的安装方法,涵盖包管理器安装、源码编译安装及服务配置管理,帮助用户高效完成服务部署,服务安装前需做好准备工作:首先更新系统软件包列表,确保基础环境最新,如在Ubuntu/Deb……

    2025年10月5日
    11300
  • 如何正确卸载Linux Mint?步骤详解

    卸载Linux Mint的操作根据使用场景(物理机双系统、单系统或虚拟机)不同,步骤有所差异,以下是详细分步指南,帮助用户安全彻底地移除Linux Mint系统,卸载前必做准备工作无论何种场景,卸载前务必完成以下操作,避免数据丢失或系统故障:备份重要数据:将Linux Mint系统中的个人文件(如文档、图片、下……

    2025年9月13日
    11800
  • Linux运行Python遇难题?

    Linux是运行Python的理想环境,因其开源特性、强大的终端支持及与Python工具链的无缝集成,本指南将详细讲解从基础到进阶的操作方法,涵盖安装、运行、环境管理及最佳实践,检查Python是否已安装Linux系统通常预装Python,通过终端验证:python3 –version # 检查Python……

    2025年7月12日
    13200
  • 月薪五千如何三年存到一百万

    修改层次指对文本进行不同深度的调整:宏观层面关注结构、逻辑和整体内容;微观层面则聚焦语言表达、语法和细节优化,这种分层方法确保修改更系统高效。

    2025年7月13日
    12800
  • 如何在电脑上安装Linux系统?

    在电脑上安装Linux系统是许多用户探索开源世界、提升系统自由度的重要步骤,无论是开发、办公还是日常使用,Linux都能提供稳定且可定制的体验,安装Linux系统主要有三种常见方式:虚拟机安装(不破坏原系统)、双系统安装(与Windows等系统并存)以及U盘单系统安装(完全替换原系统),以下是详细步骤和注意事项……

    2025年8月26日
    13400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信