Я пишу код для создания «полупубличной сети Wi-Fi» с учетными данными пользователя.
Я говорю «полупубличная», поскольку это все еще частная сеть Wi-Fi (весь трафик зашифрован), но она настроена как публичная в интерфейсе Wi-Fi, чтобы можно было подключиться без пароля Wi-Fi.
На стороне моего сервера/маршрутизатора мне нужно перехватывать каждый пакет, проверять его права, а затем повторно отправлять его или отбрасывать. Для этого я использовал IOCTL и настроил интерфейс tap («средний маршрутизатор»), который захватывает пакеты в каждой подсети и пересылает или отбрасывает их по мере необходимости. Это отлично работает: пакеты в одной подсети не могут перейти в другую без обработки моим кодом. Но я не могу запретить приложению отправлять несанкционированные и незашифрованные пакеты в сети (без установки правила в iptables для перенаправления всего на мой интерфейс tap, кроме самого моего API?).
Но я думаю, что этот способ выглядит как своего рода "хак". Я бы хотел заставить ядро вызывать мой код для выполнения этапа маршрутизации.