我只想允许特定的 MAC 地址通过 VNC 连接到我的 Ubuntu 12.10。这很酷,因为我认为如果我使用密码验证 + MAC 过滤器 = 安全。
我看到我可以过滤 IP,但如何过滤 MAC?有什么想法或建议吗?谢谢
答案1
实际上,这根本没有使它更安全。大多数操作系统上大多数 NIC 型号的 MAC 地址都可以配置(“欺骗”)。攻击者可以嗅探流量并简单地欺骗您配置的 MAC 地址。
而是让您的 VNC 监听环回并通过 SSH 进入机器,使用 SSH 隧道功能连接到 VNC。
如果你坚持使用不安全的方法,iptables
(netfilter)可以这样做:
iptables -I INPUT -m mac --mac-source 00:XX:YY:ZZ:AA:BB -j ACCEPT
此规则添加到带有DROP
( 的链中或者REJECT
) 默认策略将仅接受来自给定 MAC 的请求。可以进一步组合以检查其他参数。基本上,如果我是你,我会将其交给不同的链,首先在上层检查与相关端口(5900?)的连接,然后进行 MAC 过滤。毕竟,你只想过滤这个单一服务,使其仅从这个 MAC 可用 - 而不是任何服务。如果你只对 MAC 和端口感兴趣,请执行以下操作:
iptables -I INPUT -p tcp --destination-port 5900 -m mac --mac-source 00:XX:YY:ZZ:AA:BB -j ACCEPT
笔记:
-m mac
需要模块mac
(用于 netfilter),因此必须可用。
我只会使用这种方法将自己从黑名单中除名。例如,我为 SSH 连接尝试配置了一个 tar pit(类似于sshguard
类似程序所做的)。就像端口敲击一样,使用某个 MAC 作为信号来将连接 IP 从黑名单中除名(即从黑名单中删除)是有意义的。但作为一种安全机制,这是不可能的。太容易伪造了。