Изоляция клиента в Ubuntu с помощью hostapd

Мы создали точку доступа Wi-Fi или беспроводную точку доступа, используя hostapd в убунту. Как мы можем изолировать клиентов Wi-Fi так же, как "изоляция клиента" в некоторых точках доступа? Есть ли способ объединить iptables с hostapd применить некоторые правила брандмауэра между клиентами Wi-Fi?

2 ответа

В настоящее время, iptablesСогласно этому правилу, правила не влияют на пакеты, пересылаемые напрямую через интерфейс Wi-Fi.

Хорошей новостью является то, что в Hostapd 2.9 есть опция под названием ap_isolateэто именно то, что вы описали. Вы можете прочитать об этом здесь.

Как только вы установите этот флаг, все пакеты от устройств в сети точки доступа будут отброшены точкой доступа.

Создайте правило 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. Если это находится в подсети, и это говорит с чем-либо еще в подсети, отбросьте это

Я следовал инструкциям, но не повезло. Объяснить...

Я настроил горячую точку на Raspberry Pi. Я хочу добиться изоляции клиента с помощью iptables. Прежде чем перейти на путь iptables, я попытался поставить ap_isolate=1 флаг в hostapd.conf файл. К сожалению, это не сработало для меня. Ниже приведены шаги, которые я предпринял. Тем не менее, это не работает. Пожалуйста, дайте мне знать, если я что-то здесь пропустил.

  1. Настройте точку доступа с адресом концентратора (Raspberry Pi) как 192.168.42.1
  2. Мой iptables очень прост, следуя вашим инструкциям здесь.

    *фильтр

    : ВВОД ПРИНЯТЬ [0: 0]

    : FORWARD DROP [0: 0]

    : ВЫХОД ПРИНЯТ [0: 0]

    // Принимаю весь трафик, который предназначен для меня.

    -A ВВОД -s 192.168.42.0/24 -d 192.168.42.1 -j ПРИНЯТЬ

    // Отклонить весь трафик, который предназначен для кого-либо еще в сети.

    -A ВХОД -s 192.168.42.0/24 -d 192.168.42.0/24 -j DROP

  3. Подключите две машины к точке доступа WiFi. Получаемый ими IP-адрес - 192.168.42.244 и 192.168.42.61.

  4. Теперь, когда я пинг с.244 до.61, он пингует. Когда я ssh от.244 до.61 он подключается.

  5. Когда я вижу вывод sudo iptables -L -nv, он сеет 163 пакета в цепочке ACCEPT и 3 пакета в цепочке DROP, но связь между двумя клиентами работает. Я ожидаю, что связь должна была потерпеть неудачу. Любая помощь / указатели приветствуются.
Другие вопросы по тегам