目前,我通过 iptables 使用 IP 地址限制哪些客户端可以访问我的服务器,只有批准的 IP 地址才能连接。
然而,问题在于,如果客户端使用笔记本电脑前往其他地方,他们将无法再连接,因为 IP 已经改变。
由于各种原因,iptables 身份验证是我唯一的选择。
有没有办法通过设备而不是 IP 地址来限制访问。例如,只允许某些 MAC 地址连接到端口 5000。
是否可以通过 iptables 做到这一点?请注意,计算机不在同一个网络上,它们可以从世界任何地方进行连接。
答案1
答案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**
完毕