这些规则你都知道吗

在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如何开启sshd

    Linux中,可通过执行sudo systemctl start sshd命令开启sshd服务,也可

    2025年8月15日
    12300
  • Linux下黑白屏驱动的实现方法与步骤是什么?

    在Linux系统中驱动黑白屏(通常指单色显示设备,如LCD、OLED等)的核心是通过Linux帧缓冲(Framebuffer)抽象层实现,Framebuffer为用户空间提供统一的显示接口,隐藏底层硬件差异,驱动开发需围绕硬件初始化、显存管理、显示控制及参数配置展开,以下是详细步骤和关键要点:硬件基础与接口分析……

    2025年8月27日
    13000
  • Linux环境下如何使用itoa函数?整数转字符串的实现方法是什么?

    在Linux环境下,将整数转换为字符串(即实现类似Windows中itoa的功能)是常见的编程需求,虽然标准C库中没有直接名为itoa的函数(该函数是MSVC等编译器的非标准扩展),但Linux提供了多种替代方案,包括标准库函数、自定义函数实现等,本文将详细介绍这些方法的使用场景、代码实现及注意事项,Linux……

    2025年10月1日
    10500
  • linux如何查找文件存放路径

    在Linux系统中,查找文件存放路径是日常管理和运维中的常见需求,无论是定位配置文件、排查程序依赖,还是检索用户数据,掌握高效的文件查找方法都能提升工作效率,Linux提供了多种命令和工具来实现文件路径查找,每种方法适用于不同场景,本文将详细介绍这些工具的使用方法、参数选项及实际案例,帮助用户灵活应对各种查找需……

    2025年9月18日
    12100
  • linux如何检测硬件温度

    Linux中,可以使用sensors命令检测硬件温度,需先安装相关软件包,如

    2025年8月18日
    12000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信