iptables,允许从某些 MAC 地址进行访问

iptables,允许从某些 MAC 地址进行访问

目前,我通过 iptables 使用 IP 地址限制哪些客户端可以访问我的服务器,只有批准的 IP 地址才能连接。

然而,问题在于,如果客户端使用笔记本电脑前往其他地方,他们将无法再连接,因为 IP 已经改变。

由于各种原因,iptables 身份验证是我唯一的选择。

有没有办法通过设备而不是 IP 地址来限制访问。例如,只允许某些 MAC 地址连接到端口 5000。

是否可以通过 iptables 做到这一点?请注意,计算机不在同一个网络上,它们可以从世界任何地方进行连接。

答案1

你不能这样做,因为MAC 地址对于通过互联网的连接,您无法使用。

为了做你想做的事,设置一个会更安全VPN并且只允许通过该网络连接到您的关键基础设施。如果您无法做到这一点,那么您可以尝试设置某种双重认证

如果你真的只能使用 iptables,那么你可以使用端口敲击似乎有一个相当很好的教程有关此内容请参阅 Arch Linux wiki,但请注意警告,不要在您的环境中使用示例端口/序列。

上述技术的组合效果会更好。

答案2

Iptables 有一个mac模块。你可以像这样使用它:

/sbin/iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP

nixCraft 有一个详尽的指南如何根据 mac 地址创建过滤规则。

但这只适用于同一网络,因为 MAC 寻址是链路层特定的,在使用路由时不会被转发。因此,只要设备位于需要路由的不同网络上,这种方法就行不通。

答案3

对于 MAC 地址列表,假设这些地址逐行存储在文件 (mac_addresses_file) 中,您可以使用:

代码:

for MAC in `cat mac_addresses_file`; do

  **iptables -A FORWARD -i eth0 -o eth1 -m mac --mac-source $MAC -j ACCEPT**

完毕

相关内容