首页 > 运维 > linux运维 > 正文

Linux防火墙规则如何编写_操作步骤详解提升实战能力【技巧】

冷炫風刃
发布: 2025-12-22 21:49:26
原创
152人浏览过
Linux防火墙规则编写核心是理解iptables/nftables的链、表、匹配条件与动作;iptables仍广泛用于旧系统,nftables为新系统默认,掌握网络流向与默认策略(如INPUT/OUTPUT/FORWARD设为DROP前先验证)比死记命令更重要。

linux防火墙规则如何编写_操作步骤详解提升实战能力【技巧】

Linux防火墙规则编写核心在于理解 iptablesnftables 的链(chain)、表(table)、匹配条件与目标动作。实际运维中,iptables 仍广泛使用(尤其CentOS 7/Ubuntu 18.04及更早),而较新系统(如Ubuntu 20.04+、CentOS 8+)默认启用 nftables(iptables命令可能只是nft的兼容封装)。掌握底层逻辑比死记命令更重要。

明确网络流向与默认策略

防火墙本质是控制进出本机的数据包。iptables有三张基础表:filter(过滤,默认)、nat(地址转换)、mangle(修改包头)。常用操作集中在 filter 表的三个链:

  • INPUT:处理发往本机的入站流量(如SSH连接、Web服务请求)
  • OUTPUT:处理本机发出的出站流量(如curl访问外部API)
  • FORWARD:处理经本机转发的流量(仅当开启IP转发时生效)

每条链都有默认策略(policy),常见为 ACCEPT 或 DROP。生产环境建议先设为 ACCEPT,添加规则验证无误后,再将 INPUT/OUTPUT/FORWARD 的默认策略改为 DROP,避免锁死自己。

编写实用规则的典型场景与写法

以 iptables 为例,所有规则按顺序匹配,第一条匹配即执行对应动作,不再继续向下检查。因此“允许”规则应放在“拒绝”规则之前。

  • 放行已建立的连接(必须加在最前面):
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 开放SSH端口(22)并限制来源IP(增强安全)
    iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
    若允许多个IP,可用 -s 192.168.1.0/24 或多次添加;也可用 ipset 提高效率
  • 开放HTTP/HTTPS服务(80/443)给所有公网访问
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  • 禁止某IP段暴力扫描
    iptables -I INPUT -s 203.0.113.0/24 -j DROP(-I 插入到最前,优先拦截)

保存、恢复与调试技巧

iptables 规则默认不持久——重启后丢失。务必手动保存:

Stable Video
Stable Video

Stability AI 发布的开源AI视频大模型,用文字或图像创建视频,把你的概念变成迷人的电影

Stable Video 227
查看详情 Stable Video
  • Debian/Ubuntu:iptables-save > /etc/iptables/rules.v4(需安装 iptables-persistent)
  • CentOS 7:service iptables save(需启用 iptables 服务,而非 firewalld)
  • 通用临时备份:iptables-save > /root/iptables-backup-$(date +%F)

调试时用 iptables -L -n -v 查看带计数的详细规则;用 iptables -t nat -L -n -v 查看NAT规则;发现异常可快速清空:iptables -F(清空所有规则),但慎用。

向 nftables 迁移的务实建议

nftables 是 iptables 的现代替代,语法更统一、性能更好、支持集合和字典。若新项目或系统升级,建议直接学 nft:

  • 查看当前规则:nft list ruleset
  • 添加一条放行SSH规则:nft add rule ip filter input tcp dport 22 accept
  • 保存规则(不同发行版路径略有差异):nft list ruleset > /etc/nftables.conf

注意:nft 不再区分 -A/-I,而是用 add/rule insert;且默认没有“state”模块,改用 ct state established,related accept。

基本上就这些。规则不在多,在准;不在快,在稳。每次改完确认连通性,留好回滚方式,实战能力自然提升。

以上就是Linux防火墙规则如何编写_操作步骤详解提升实战能力【技巧】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号