SSH 拒绝规则允许我使用 SSH 吗?

SSH 拒绝规则允许我使用 SSH 吗?

我正在学习 AWS VPC,在其中分配 NACL 入站/出站规则,如下所示:目前我正在为所有 IP 执行此操作

Rule #    Type           Allow/Deny
100       All Traffic    Allow
200       SSH            Deny
 *        All Traffic    Deny


Outbound
Rule #    Type           Allow/Deny
100       SSH            Deny
200       All Traffic    Allow
 *        All Traffic    Deny

我想知道我的 SSH 是如何工作的,因为规则规定先评估较低的数字,而在出站规则中我拒绝了 SSH。有人能解释一下该规则在 AWS 中是如何工作的吗?

答案1

允许传入 SSH 流量,因为入站规则 # 100(200 实际上被忽略)和传出规则与已建立的 SSH 连接不匹配...


基于AWS 文档

网络 ACL 是无状态的,这意味着对允许的入站流量的响应受出站流量规则的约束(反之亦然)。

  • 入站规则

根据我所看到的,我认为你的规则顺序是错误的。

Rule #    Type           Allow/Deny
100       All Traffic    Allow
200       SSH            Deny
 *        All Traffic    Deny

这根本没有意义,因为您使用规则 100 允许所有流量,因此规则 200 不会在任何时候使用(流量将根据规则 100 被允许,因此规则 200 不会“保留”任何内容)。我认为更有意义的是不同的顺序(如果您想拒绝 ssh 服务:

Rule #    Type           Allow/Deny
100       SSH            Deny
200       All Traffic    Allow
 *        All Traffic    Deny
  • 出站

以下是具有较低规则编号的 SSH 流量:

Rule #    Type           Allow/Deny
100       SSH            Deny
200       All Traffic    Allow
 *        All Traffic    Deny

这将拒绝 SSH 流量,并允许其余流量...

SSH 类型是端口为 TCP/22 的流量 - 这通常用作目标端口。如果您要联系 SSH 服务器,则您正在连接到 TCP/22,但您的源端口是 TCP/X,其中 X 是“随机”(并非真的,但为了简单起见,假设是随机)选择的,假设 >10000。

一旦服务器回复您的连接,目标端口就是“您的”TCP/X,因此规则不一定匹配此流量......

目的地为 TCP/22 的传出流量将是在服务器上发起的连接,其目的地在其他设备上,并且尚未建立 SSH 连接。

答案2

您允许所有流量进入您的主机,但拒绝从该主机出站的 ssh 通信。

据我所知,NACL 不进行深度数据包检查。这意味着协议只是其指定端口

除非你正在做一些非常奇怪的事情,比如尝试 ssh端口 22,您的入站 ssh 会话应该没问题。

相关内容