使用 hostapd 在 Ubuntu 中隔离客户端

使用 hostapd 在 Ubuntu 中隔离客户端

我们已经在 Ubuntu 中创建了一个 wifi 热点或无线接入点hostapd。我们如何才能像某些接入点中的“客户端隔离”一样隔离 wifi 客户端?我们是否可以结合使用某种方式iptableshostapdwifi 客户端之间应用一些防火墙规则?

答案1

在输入和输出上创建一个 iptables 规则,允许源地址范围与路由器/默认网关通信,以及该子网上任何服务器或其他资源的附加规则。

创建最终规则,丢弃源地址范围和源地址范围之间的数据包。

iptables -A INPUT -i $WIFI -o $WIFI -s 192.168.1.0/24 -d 192.168.1.1 -j ACCEPT
iptables -A INPUT -i $WIFI -o $WIFI -s 192.168.1.0/24 -d $SOMESERVERIP -j ACCEPT
iptables -A INPUT -i $WIFI -o $WIFI -s 192.168.1.0/24 -d $SOMEOTHERSERVERIP -j ACCEPT
iptables -A INPUT -i $WIFI -o $WIFI -s 192.168.1.0/24 -d 192.168.1.0/24 -j DROP

这一系列事件的基本内容如下:

  1. 如果它在子网中并且正在与网关通信,则接受它
  2. 如果它在子网中并且正在与服务器通信,则接受它
  3. 规则 2 重复执行,直到没有可接受的服务器
  4. 如果它在子网中,并且正在与子网中的其他任何设备通信,则将其丢弃

答案2

此时,iptables规则对 wifi 接口直接转发的数据包不起作用,根据

好消息是,Hostapd 2.9 有一个名为的选项ap_isolate,可以完全按照您描述的方式执行操作。您可以阅读有关它的信息这里

一旦设置了该标志,来自接入点网络上的设备的所有数据包都将被接入点丢弃。

相关内容