Linux防火墙规则如何编写_最佳实践总结助你快速突破【教程】

发布时间 - 2025-12-14 00:00:00    点击率:
Linux防火墙规则编写核心是“最小权限原则”+“明确流向控制”,推荐nftables;默认策略设为DROP,先放行lo、ESTABLISHED/RELATED连接,再按需精准开放SSH、HTTP/HTTPS等端口,并限制连接频率,最后保存规则防重启丢失。

Linux防火墙规则编写核心在于“最小权限原则”+“明确流向控制”,用 iptablesnftables(推荐新系统用 nftables)实现,关键不是堆规则,而是理清“谁访问谁、走什么协议、开哪几个端口、默认怎么处理”。

先定策略:默认拒绝,再精准放行

绝大多数安全问题源于默认允许。务必把默认策略设为 DROP:

  • iptables:运行 iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPT(出站通常宽松些)
  • nftables:在 base chain 中设 policy drop,例如:nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
  • 切记:执行前确保已有 SSH 规则且已测试连通,否则可能锁死自己

只开必需端口:按服务而非IP粗放放行

别写 “-s 0.0.0.0/0 -p tcp --dport 22 -j ACCEPT” 就完事——要加状态跟踪和连接限制:

  • SSH 安全写法(iptables):iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
  • HTTP/HTTPS(仅限 Web 服务器):iptables -A INPUT -p tcp -m multiport --dports 80,443 -m state --state NEW -j ACCEPT
  • 本地回环必须放通:iptables -A INPUT -i lo -j ACCEPT(所有规则前建议加这条)

善用连接状态(state / ct state),避免“半开漏洞”

无状态规则易被绕过。实际生效的几乎都依赖连接追踪:

  • 只允许已建立或相关连接响应:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • nftables 对应写法:nft add rule inet filter input ct state established,related accept
  • 这条规则通常放在 INPUT 链靠前位置(但要在 lo 之后、具体服务规则之前)

保存与恢复要闭环,别让重启变“裸奔”

内存规则重启即丢。必须固化:

  • iptables:用 iptables-save > /etc/iptables/rules.v4(Debian/Ubuntu)或 service iptables save(CentOS 7 及更早)
  • nftables:导出为文件 nft list ruleset > /etc/nftables.conf,并启用 systemd 服务:systemctl enable nftables
  • 每次修改后,先 nft -f /etc/nftables.confiptables-restore 测试,再确认开机加载

基本上就这些。不复杂,但容易忽略状态匹配、默认策略和持久化三个环节。写规则前先画张草图:本机哪些服务对外?哪些IP需要访问?哪些出向连接必须允许?照着画的来,比抄模板更稳。


# linux  # centos  # 防火墙  # 端口  # ubuntu  # ai  # Filter  #   # input  # http  # https  # ssh  # debian  # 重启  # 设为  # 这条  # 几个  # 放在  # 闭环  # 已有  # 要在  # 而非  # 仅限 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 浅谈javascript alert和confirm的美化  nodejs redis 发布订阅机制封装实现方法及实例代码  如何快速搭建高效服务器建站系统?  如何在 Pandas 中基于一列条件计算另一列的分组均值  EditPlus中的正则表达式 实战(4)  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  深圳网站制作培训,深圳哪些招聘网站比较好?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  公司网站制作需要多少钱,找人做公司网站需要多少钱?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  JavaScript如何实现倒计时_时间函数如何精确控制  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  香港服务器租用费用高吗?如何避免常见误区?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  微信小程序 canvas开发实例及注意事项  JavaScript中的标签模板是什么_它如何扩展字符串功能  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何快速搭建个人网站并优化SEO?  zabbix利用python脚本发送报警邮件的方法  大连网站制作公司哪家好一点,大连买房网站哪个好?  南京网站制作费用,南京远驱官方网站?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  如何在万网ECS上快速搭建专属网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  深圳网站制作的公司有哪些,dido官方网站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  html5的keygen标签为什么废弃_替代方案说明【解答】  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  大学网站设计制作软件有哪些,如何将网站制作成自己app?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  微信公众帐号开发教程之图文消息全攻略  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  如何确认建站备案号应放置的具体位置?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  想要更高端的建设网站,这些原则一定要坚持!  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Bootstrap整体框架之JavaScript插件架构  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】