2009-05-28 306 views
1

我正在旧PC上设置WAMP/LAMP堆栈。这台电脑将连接到一个本地网络与其他十几台电脑。 我有兴趣限制其他人的计算机访问权限,以便只有我的合作伙伴和我才能访问我们的本地服务器。 我认为最好的办法是阻止其他人的MAC地址(路由器自动分配IP地址,所以我不想依赖它)。 我想补充一点,我没有访问路由器的配置页面,所以这将不得不从服务器本身完成。通过MAC地址限制访问

任何人都可以扩展如何做到这一点?

回答

1

首先看看你的路由器的控制面板。通常路由器(至少用于无线)允许基于物理地址的访问控制。

帮助你的第二件事就是防火墙。寻找防火墙,通过mac地址来限制访问(如果您使用的是linux,我非常确定它已经具备此功能,在我的wintel上,我使用的是Comodo个人防火墙,它允许我通过物理地址进行过滤。)

1

如果你不能用路由器,那么你必须要实现服务器本身的限制不甘示弱:这取决于你想如何偏执是,那映入脑海的几个选项:

  • 最简单的 - 设置一个虚拟主机在Apache中将主机名设置为不能通过DNS解析的唯一东西:只需将此条目添加到本地主机文件中,并且瞧 - 通过IP访问服务器的任何人都将获得默认的Apache主机(欢迎页面)。
  • 中东 - 使用mod_auth_basic到(通过htpasswd的用户名+密码)访问添加基本的网络服务器
  • 最难 - 添加iptables规则,以阻止除从给定的MAC的
3

的Linux/iptables的所有访问端口80,该整理的黑名单的方式,这将放弃所有的流量从指定的MAC地址发起:

iptables -I INPUT 1 -m mac --mac-source <blacklisted mac 1> -j DROP 
iptables -I INPUT 1 -m mac --mac-source <blacklisted mac 2> -j DROP 

不过,我真的不知道,如果这是你想要的,该MAC地址是不是真的可靠的过滤流量的方法。大多数现代NIC允许你改变你的mac地址,如果ethernet-frame封装的ip-packet已经通过路由器,那么以太网帧上的source-mac-address将是最后一个它通过的路由器而不是始发的计算机。

我会建议寻找mod_auth_basic或类似的东西,它比iptables更容易犯错误。如果你决定采用iptables路由,我会建议采用更多的白名单方式,iptables默认放弃某些流量,然后允许通过你想要的。

iptables -A INPUT -p tcp --dport 80 -m mac --source <your mac> -j ACCEPT 
iptables -A INPUT -p tcp --dport 80 -m mac --source <your partners mac> -j ACCEPT 
iptables -A INPUT -p tcp --dport 80 -j DROP