IPtables 不会阻止 Raspberry Pi 接入点上的 wifi 流量

IPtables 不会阻止 Raspberry Pi 接入点上的 wifi 流量

我有一个 rPi 作为我的 IoT 设备的无线 AP 运行。我想设置防火墙规则来阻止可疑流量(为什么摄像头需要访问 SSH?)。rPi 通过以太网电缆连接到我的路由器,我正在用手机连接到 rPi wifi 来测试连接。rPi 使用外部天线(wlan1)。

到目前为止我已经尝试过

iptables -A FORWARD -i wlan1 -p tcp --dport 443 -j DROP
iptables -A FORWARD -i wlan1 -j DROP
iptables -I FORWARD -o wlan1 -j DROP

我也尝试过阻止所有内部流量,但没有成功

iptables -A FORWARD -i wlan1 -s 192.168.0.0/24 -j DROP

输出iptables -L -v

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  wlan1  any     anywhere             anywhere            

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

使用 vnstat 测试我可以看到 wlan1 上有流量

wlan1  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                      255 KiB  |        6.13 MiB
--------------------------------------+------------------
          max             165 kbit/s  |     5.06 Mbit/s
      average           22.70 kbit/s  |   558.99 kbit/s
          min               0 kbit/s  |        3 kbit/s
--------------------------------------+------------------
  packets                       3392  |            4858
--------------------------------------+------------------
          max                255 p/s  |         455 p/s
      average                 36 p/s  |          52 p/s
          min                  0 p/s  |           1 p/s
--------------------------------------+------------------
  time                  1.53 minutes

这是我的 htapd 配置:

# Bridge mode
bridge=br0

# Networking interface
interface=wlan1

# WiFi configuration
ssid=superdupernetwork
channel=1
hw_mode=g
country_code=US
ieee80211n=1
ieee80211d=1
wmm_enabled=1

# WiFi security
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=superduperpass

我在 wlan1 上运行了 Suricata,它很好地检测了流量,而且运行时也iptables -P INPUT DROP终止了我的 SSH 连接,所以一定有什么地方出了问题。谢谢。

编辑:问题是由我的桥接配置引起的。从iptables -L -v输出中可以看出,实际上没有转发任何数据包。从我的中删除桥接模式hostapd.conf解决了这个问题。

答案1

我不知道你为什么要制定一条规则来丢弃到端口 443 的流量,因为你提到了 SSH。SSH 默认使用端口 22。基本上,根据第二条规则,这条规则是多余的。

用途iptables -A FORWARD不清楚,也许发布您的/etc/network/interfaces文件(将其添加到初始帖子)?

即使您阻止了 wifi 接口上的流量,PI 仍然可以通过有线网络(可能是 eth0)发送流量。您可以使用 traceroute/tracepath 来找出哪个接口用于向给定的 IP 地址发送数据包。我想知道您决定可疑流量的标准是什么?

可能更好的方法是仅打开需要的端口,并限制允许 PI 连接的 IP 地址范围。

相关内容