Как автор NetGuard я имею непосредственный опыт в этой области.
Недостаток брандмауэра на основе локальной VPN заключается в том, что не все типы трафика могут обрабатываться, поскольку ядро Linux (Android) не позволяет пересылать все типы трафика через соединение на основе сокетов. Примером является 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 некоторых производителей слишком агрессивно убивают процессы в условиях нехватки памяти (ИМХО, это ошибка, если Android убивает приложения, предоставляющие услугу VPN).
Наконец, рутирование Android-устройств становится все более трудным, и брандмауэр на базе VPN остается единственным выбором для многих людей. Я не ожидаю, что Google добавит системный брандмауэр в ближайшее время, потому что это может существенно повлиять на доходы от рекламы. iOS имеет системный брандмауэр.
Дайте мне знать, если есть какие-либо вопросы, и я постараюсь ответить на них.