我尝试从我的网络外部连接到我的 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的方法,比如“端口敲门”、“密钥代替密码”等等,而且mac地址可以被伪造。但我仍然想知道如何使用 mac 验证通过 ssh 验证条目
服务器/设备只能看到本地网络中其他设备的 MAC 地址,但不能看到路由器后面的设备。
因此,如果一台设备可以直接连接另一台设备 - 他们会看到彼此的 mac。但是,如果一个设备应该通过路由器连接另一台设备(不是交换机或 wifi 交换机,而是面向使用不同网络接口的两台设备的路由器),他们就看不到对方的 mac。
a) 在这种情况下,设备可以看到彼此的 mac
b)在这种情况下(设备1)只能看到(ISP路由器)的mac,而不是(设备2)的mac
因此,基于 Mac,您可以配置谁可以连接到您的 wifi 点,因为它与本地网络和直接连接有关。
但是您不知道设备的 mac 试图从远程位置进入您的网络,在这种情况下,知道远程设备的 mac 是无用的。
是否有意义?
您无法在您的服务器上看到您真正的客户端 mac。在那里你只看到网关(路由器等)mac。您必须阅读有关网络和协议的内容。