这些规则你都知道吗

在Linux系统中,防火墙是保护系统安全的核心组件,修改防火墙规则需要谨慎操作,以下详细指南涵盖主流工具(iptables、firewalld、UFW),操作前请注意:

  1. 重要备份:执行 iptables-save > /backup/iptables.rulesfirewall-cmd --runtime-to-permanent
  2. 权限要求:所有命令需 root 权限(使用 sudo
  3. 测试验证:修改后务必测试连通性

使用 iptables(传统工具,通用所有发行版)

核心概念规则链(INPUT/OUTPUT/FORWARD)

# 允许特定端口(示例:开放80端口)  
iptables -A INPUT -p tcp --dport 80 -j ACCEPT  
# 允许IP访问(示例:允许192.168.1.10访问SSH)  
iptables -A INPUT -p tcp -s 192.168.1.10 --dport 22 -j ACCEPT  
# 拒绝所有其他入站流量(必须最后执行!)  
iptables -A INPUT -j DROP  
# 删除规则(先列出带编号规则)  
iptables -L --line-numbers  
iptables -D INPUT 3  # 删除INPUT链第3条规则  
# 保存规则(依发行版选择)  
service iptables save    # RHEL/CentOS 6  
iptables-save > /etc/iptables/rules.v4  # Debian/Ubuntu  

使用 firewalld(RHEL/CentOS/Fedora 默认)

核心概念:区域(zone)与服务(service)

# 查看活动区域  
firewall-cmd --get-active-zones  
# 开放端口(示例:永久开放443端口)  
firewall-cmd --permanent --add-port=443/tcp  
# 添加服务(示例:允许HTTP服务)  
firewall-cmd --permanent --add-service=http  
# 允许IP(示例:允许192.168.1.0/24访问DNS)  
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="dns" accept'  
# 移除规则(将 --add 替换为 --remove)  
firewall-cmd --permanent --remove-port=8080/tcp  
# 重载配置(不中断连接)  
firewall-cmd --reload  

使用 UFW(Ubuntu/Debian 简化工具)

# 启用防火墙  
ufw enable  
# 允许服务(示例:SSH与Nginx)  
ufw allow ssh  
ufw allow 'Nginx Full'  # 开放80/443  
# 允许端口范围(示例:UDP 5000-5010)  
ufw allow 5000:5010/udp  
# 拒绝IP(示例:屏蔽203.0.113.5)  
ufw deny from 203.0.113.5  
# 删除规则(先列出编号)  
ufw status numbered  
ufw delete 2  # 删除第2条规则  

关键安全建议

  1. 最小化开放:仅暴露必要端口(如Web服务器只需80/443)
  2. 默认拒绝策略:设置 ufw default denyiptables -P INPUT DROP
  3. 日志监控:添加日志规则 iptables -A INPUT -j LOG --log-prefix "IPTABLES-DENIED: "
  4. 防锁定
    • 先允许当前SSH连接:iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    • 测试后再应用新规则

测试与故障排查

  • 检查端口状态nc -zv 你的IP 端口telnet 你的IP 端口
  • 查看防火墙日志
    • iptables:dmesg | grep iptables
    • firewalld:journalctl -u firewalld
  • 临时禁用(紧急恢复):
    iptables -F  # 清空规则  
    systemctl stop firewalld  # 停止firewalld  
    ufw disable  # 禁用UFW  

引用说明

  • iptables 官方文档:https://www.netfilter.org/documentation/
  • firewalld 配置指南:https://firewalld.org/documentation/
  • UFW 手册页:man ufw(或访问 https://help.ubuntu.com/community/UFW) 基于 Linux 内核 5.x+ 及主流发行版(RHEL 8+, Ubuntu 20.04+)验证,实际操作请以您的环境为准。

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

(0)
酷番叔酷番叔
上一篇 2025年8月8日 08:53
下一篇 2025年8月8日 09:07

相关推荐

  • Linux如何退出top命令?

    在Linux系统中,top命令是常用的实时监控工具,能够动态显示系统中运行的进程信息,包括CPU占用率、内存使用情况、进程ID等,当用户完成监控任务后,需要退出top界面返回终端,以下是详细的退出方法及相关操作说明,Linux退出top的常用方法top命令提供了多种退出方式,适用于不同场景,以下是具体操作及说明……

    2025年9月23日
    3900
  • Linux服务器重启的具体正确操作步骤有哪些?详细说明如下

    Linux服务器重启是系统管理中的常见操作,无论是系统更新、内核升级、服务异常恢复还是硬件调整,都可能需要重启服务器,但重启操作需谨慎,尤其对于生产环境服务器,不当的重启可能导致服务中断、数据丢失或系统异常,本文将详细介绍Linux服务器重启的各种方法、注意事项及不同场景下的操作建议,帮助管理员安全、高效地完成……

    2025年9月22日
    3700
  • Linux中如何将Nginx安装到指定目录?

    在Linux系统中将Nginx安装到指定目录,需通过源码编译方式实现,因为官方提供的二进制包通常固定安装路径,以下是详细步骤,涵盖环境准备、依赖安装、源码编译及配置验证,确保Nginx准确部署到目标目录,环境准备与依赖安装Nginx编译依赖基础开发工具和库文件,需提前安装,不同Linux发行版的依赖包名称略有差……

    2025年9月23日
    4200
  • 如何每天节省一小时工作?

    在Linux系统中,精确查看文件中的特定行数据是日常操作的关键需求,无论是日志分析、配置检查还是数据处理,掌握以下几种高效且可靠的方法将大幅提升您的工作效率:使用 head 和 tail 组合(推荐基础场景)原理:head 输出文件开头部分,tail 输出结尾部分,组合使用可定位中间行,场景:快速查看已知行号范……

    2025年6月21日
    8200
  • 如何在Linux系统中运行C程序?

    在Linux系统中运行C程序是开发者的基础技能,整个过程主要包括环境准备、代码编写、编译、链接和运行等步骤,下面将详细拆解每个环节,帮助读者掌握完整流程,环境准备:安装编译工具链Linux系统本身不包含C语言编译器,需先安装GNU编译器集合(GCC),GCC是Linux下最常用的C语言编译工具,支持将C源代码转……

    2025年8月27日
    5600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信