iptables 规则允许通过 mac 验证从外部连接到 ssh

iptables 规则允许通过 mac 验证从外部连接到 ssh

我尝试连接从我的网络外部到我的 ssh 服务器,但我想将此连接限制为仅与我的 mac 地址

该规则有效:

iptables -t mangle -A PREROUTING -p tcp --dport 22 -j ACCEPT

然而,这些规则都不适合我:

iptables -t mangle -A PREROUTING -m mac --mac-source 2c:fd:a1:zz:xx:yy -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -m mac --mac-source 2c:fd:a1:zz:xx:yy -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m mac --mac-source 2c:fd:a1:zz:xx:yy -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -m mac --mac-source 2c:fd:a1:zz:xx:yy -p tcp --dport 22 -j ACCEPT

我应该怎么做才能通过 mac 验证来保护 ssh?

PD:我知道SSH是一个TCP/IP协议,并且只监听IP地址,而不是MAC地址,但我在一些论坛上看到,这是可以做到的,但他们没有解释方法。我还知道还有其他方法可以保护ssh,例如“端口敲门”、“密钥代替密码”等等,而且macs地址可以被伪造。但我仍然想知道如何使用 mac 验证通过 ssh 验证条目

答案1

服务器/设备只能看到本地网络中其他设备的 MAC 地址,而看不到路由器后面的设备。

因此,如果一台设备可以直接连接另一台设备,那么它们就能看到彼此的 Mac。但是,如果一个设备应该通过路由器连接另一台设备(不是交换机或 WiFi 交换机,而是面向使用不同网络接口的两个设备的路由器),它们将无法看到彼此的 mac。

a) 在这种情况下,设备可以看到彼此的 mac

(device1) <---\
                ----- (switch or wifi point)
(device2) <---/

b) 在这种情况下(设备 1)只能看到(ISP 路由器)的 mac,而看不到(设备 2)的 mac

(device1) <-----> (ISP router) <-----> (device2)

因此,基于 Mac,您可以配置谁可以连接到您的 wifi 点,因为它涉及本地网络和直接连接。

但是您不知道尝试从远程位置访问您的网络的设备的 MAC,在这种情况下,您知道远程设备的 MAC 是无用的。

是否有意义?

答案2

您无法在服务器上看到真实的客户端 Mac。在那里你只能看到网关(路由器等)mac。您必须阅读一些有关网络和协议的内容。

相关内容