0

0

Linux网络访问控制方案_安全通信策略说明【指导】

冷漠man

冷漠man

发布时间:2026-01-05 14:53:11

|

655人浏览过

|

来源于php中文网

原创

新系统优先用nftables,因其原子提交、映射支持等优势;老系统如CentOS 7仍用iptables。防火墙策略应默认拒绝、显式放行,并限制源地址;防暴力SSH宜用limit+counter组合;出站流量必须限制,避免C2外连。

linux网络访问控制方案_安全通信策略说明【指导】

iptables 和 nftables 哪个该用?

新系统优先选 nftables,不是因为更“高级”,而是 iptables 在内核 5.10+ 已被标记为 legacy,且规则同步、原子提交、表达能力都弱于 nftables。但如果你维护的是 CentOS 7 或 Ubuntu 18.04 这类老系统,iptables 仍是默认且稳定的选择。

  • iptables 规则靠链式追加,iptables-restore 加载时无法保证原子性;nftablesnft -f 是原子加载,避免中间态开放端口
  • nftables 支持映射(maps)、动态集合(dynamic sets),适合做 IP 黑名单自动更新;iptables 需依赖 ipset 配合才能达到类似效果
  • 别混用:同一台机器上同时运行 iptablesnftables 可能导致规则冲突或跳过预期链,尤其在 netfilter hook 点重叠时

只允许 SSH 和 HTTPS 入站,怎么写最稳?

核心是「默认拒绝 + 显式放行」,且必须限制源地址范围(哪怕只是内网段)。直接放通 0.0.0.0/022443 是高危操作,真实环境中几乎总要配合来源控制。

nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add rule inet filter input iifname "eth0" ip saddr 192.168.10.0/24 tcp dport 22 accept
nft add rule inet filter input iifname "eth0" tcp dport 443 ct state established,related accept
nft add rule inet filter input iifname "eth0" tcp dport 443 ip saddr { 203.0.113.5, 203.0.113.12 } accept
  • 第一条 accept 针对内网管理流量,带明确 ip saddr
  • 第二条放行已建立连接的返回包(避免影响长连接),必须放在第三条之前
  • 第三条才是对外暴露的 HTTPS 白名单,用 { } 语法定义多个 CIDR 或 IP,比写多条 rule 更高效

如何阻止暴力 SSH 登录又不封错人?

nftableslimit + counter 组合比单纯封 IP 更可控,避免因误操作或共享出口 IP 导致大面积误伤。

比话降AI
比话降AI

清除AIGC痕迹,AI率降低至15%

下载
nft add rule inet filter input tcp dport 22 ct state new limit rate 5/minute burst 10 packets counter reject with icmp type host-unreachable
  • limit rate 5/minute burst 10 表示每分钟最多 5 次新连接请求,允许突发 10 次(应对合法用户快速重试)
  • ct state new 确保只限速新建连接,不影响已有会话
  • reject 而非 drop,让客户端立刻收到失败响应,减少重试等待时间,也降低扫描器停留时长
  • 搭配 counter 可后续用 nft list ruleset | grep ssh 查看命中次数,判断是否需调参

出站流量要不要限制?容易被忽略的关键点

多数人只盯入站,但恶意软件一旦上线,第一件事就是外连 C2 服务器。出站不限制,等于防火墙只关了一半门。

  • 默认策略设为 policy dropoutput 链必须配白名单:至少放开 lo、DNS(udp dport 53)、NTP(udp dport 123)、HTTPS(tcp dport 443)——但注意:不能无条件放通所有 443,应结合 ip daddr 或域名(需配合应用层代理)
  • output 链中 oifname 要明确指定物理接口(如 eth0),否则容器或虚拟网卡可能绕过规则
  • 若系统跑 Docker,docker0 网桥流量默认不经过 output 链,得额外在 forward 链处理容器出站,或改用 iptables -t nat -A POSTROUTING 做 SNAT 控制

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1004

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

56

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

303

2025.12.29

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

249

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

492

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

396

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

434

2024.04.08

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1843

2024.08.16

漫蛙2入口地址合集
漫蛙2入口地址合集

本专题整合了漫蛙2入口汇总,阅读专题下面的文章了解更多详细内容。

162

2026.01.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.7万人学习

Git 教程
Git 教程

共21课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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