Як автор NetGuard я маю досвід роботи в цій галузі.
Недоліком брандмауера на основі локальної VPN є те, що не всі типи трафіку можуть оброблятися, оскільки ядро (Android) Linux не дозволяє пересилати всі типи трафіку через з'єднання на основі сокета. Приклад - IPsec, який використовується для IP-дзвінків деякими виробниками. Частковим (не для IPsec) рішенням цього буде використання віддаленого VPN-сервера для переадресації трафіку, але це конфіденційність неприйнятна для багатьох людей і може мати додаткову складність і, можливо, також додаткове використання акумулятора. На практиці обробка трафіку TCP та UDP виявляється достатньою для 99,9% користувачів NetGuard. Оскільки в Android 5 можна виключити додатки з маршрутизації в VPN (додаток, що реалізує VPN, вирішує, чи це обов'язково чи необов’язково), який можна використовувати для вирішення проблем, що виникають із-за неможливості перенаправити весь трафік. Інший варіант - виключити адресу (діапазони), яку NetGuard використовує для "виправлення" IP-дзвінків для деяких виробників.
Ще одним недоліком є те, що трафік переадресації збільшить витрату акумулятора на мобільних пристроях, оскільки це передбачає деяку обробку, тому що пакети потрібно перевірити та переслати. Використання iptables, інтегрованого в ядро Linux, є більш ефективним, оскільки, таким чином, більш зручним для акумулятора.
Загалом виявилося, що Android спрямовує весь трафік у VPN, навіть трафік системних додатків та компонентів, але виробник може вирішити виключити певні типи трафіку, знизивши безпеку, яку може досягти брандмауер на основі VPN.
NetGuard не аналізує самі дані, за винятком запитів DNS щодо блокування реклами, але якщо це можливо, це може викликати занепокоєння щодо конфіденційності. Тим не менш, технічно видно, що це є перевагою брандмауера на основі VPN (якщо ви все ще хочете називати це таким чином), оскільки це дозволило б повністю перевірити стан потоків даних за межами того, що можливо з iptables. Це може бути пов'язано з витратою акумулятора через процес, що займається обробкою. Зауважте, що для перевірки потоків SSL знадобиться локальна атака MiT.
Ще один недолік полягає в тому, що Android не дозволяє ланцюга VPN, тому використання локальної VPN для реалізації брандмауера не дозволить використовувати реальну службу VPN, якщо тільки брандмауер не надає таку послугу сам або альтернативно механізм переадресації чи проксі до іншого VPN застосування.
Нарешті, брандмауер на основі VPN залежить від програми, що надає VPN-послугу брандмауера. Це здається банальним, але це не так, оскільки деякі версії / варіанти Android-виробників занадто агресивно вбивають процеси в умовах низької пам’яті (IMHO це помилка, якщо Android вбиває програми, що надають VPN-сервіс).
Нарешті, вкорінення Android-пристроїв стає все складніше, залишаючи брандмауер на основі VPN єдиний вибір для багатьох людей. Я не очікую, що Google незабаром додасть брандмауер на основі системи, оскільки це може істотно вплинути на їх дохід від реклами. iOS має системний брандмауер.
Повідомте мене, чи є питання, і я спробую відповісти на них.