Изоляция клиента в 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
Основы этой цепочки событий:
- если он находится в подсети и разговаривает со шлюзом, примите его
- Если он находится в подсети и разговаривает с сервером, примите его
- Правило 2 повторяется, пока у вас не закончатся приемлемые серверы
- Если это находится в подсети, и это говорит с чем-либо еще в подсети, отбросьте это
Я следовал инструкциям, но не повезло. Объяснить...
Я настроил горячую точку на Raspberry Pi. Я хочу добиться изоляции клиента с помощью iptables. Прежде чем перейти на путь iptables, я попытался поставить ap_isolate=1
флаг в hostapd.conf
файл. К сожалению, это не сработало для меня. Ниже приведены шаги, которые я предпринял. Тем не менее, это не работает. Пожалуйста, дайте мне знать, если я что-то здесь пропустил.
- Настройте точку доступа с адресом концентратора (Raspberry Pi) как 192.168.42.1
Мой 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
Подключите две машины к точке доступа WiFi. Получаемый ими IP-адрес - 192.168.42.244 и 192.168.42.61.
Теперь, когда я пинг с.244 до.61, он пингует. Когда я ssh от.244 до.61 он подключается.
- Когда я вижу вывод sudo iptables -L -nv, он сеет 163 пакета в цепочке ACCEPT и 3 пакета в цепочке DROP, но связь между двумя клиентами работает. Я ожидаю, что связь должна была потерпеть неудачу. Любая помощь / указатели приветствуются.