Là tác giả của NetGuard, tôi có kinh nghiệm đầu tiên trong lĩnh vực này.
Một nhược điểm của tường lửa dựa trên VPN cục bộ là không phải tất cả các loại lưu lượng đều có thể được xử lý, vì nhân Linux (Android) không cho phép chuyển tiếp tất cả các loại lưu lượng qua kết nối dựa trên ổ cắm. Một ví dụ là IPsec, được sử dụng để gọi IP bởi một số nhà sản xuất. Một giải pháp (không dành cho IPsec) cho vấn đề này sẽ là sử dụng máy chủ VPN từ xa để chuyển tiếp lưu lượng, nhưng đây là quyền riêng tư không được chấp nhận đối với nhiều người và sẽ đi kèm với sự phức tạp bổ sung và có thể sử dụng thêm pin. Trong thực tế xử lý lưu lượng TCP và UDP dường như đủ cho 99,9% người dùng NetGuard. Vì Android 5 có thể loại trừ các ứng dụng khỏi định tuyến vào VPN (ứng dụng triển khai VPN quyết định xem điều này là bắt buộc hay tùy chọn), có thể được sử dụng để giải quyết các vấn đề phát sinh do không thể chuyển tiếp tất cả lưu lượng truy cập. Một tùy chọn khác là loại trừ địa chỉ (phạm vi) mà NetGuard sử dụng để 'sửa' cuộc gọi IP cho một số nhà sản xuất.
Một nhược điểm khác là lưu lượng chuyển tiếp sẽ tăng mức sử dụng pin trên thiết bị di động, vì nó liên quan đến một số xử lý, bởi vì các gói cần phải được kiểm tra và được chuyển tiếp. Sử dụng iptables, được tích hợp trong nhân Linux, sẽ hiệu quả hơn do đó thân thiện với pin hơn.
Nhìn chung, có vẻ như Android định tuyến tất cả lưu lượng truy cập vào VPN, thậm chí lưu lượng của các ứng dụng và thành phần hệ thống, nhưng một nhà sản xuất có thể quyết định loại trừ một số loại lưu lượng nhất định, làm giảm bảo mật có thể đạt được bằng tường lửa dựa trên VPN.
NetGuard không tự phân tích dữ liệu, ngoại trừ các yêu cầu DNS để cung cấp chặn quảng cáo, nhưng nếu nó có thể gây ra mối lo ngại về quyền riêng tư. Tuy nhiên, về mặt kỹ thuật, đây là một lợi thế của tường lửa dựa trên VPN (nếu bạn vẫn muốn gọi nó theo cách đó), vì nó sẽ cho phép kiểm tra toàn bộ luồng dữ liệu vượt quá khả năng của iptables. Điều này có thể sẽ có chi phí sử dụng pin, vì quá trình xử lý liên quan. Lưu ý rằng nó sẽ yêu cầu một cuộc tấn công MiT cục bộ để kiểm tra các luồng SSL.
Tuy nhiên, một nhược điểm khác là Android không cho phép kết nối VPN, do đó, sử dụng VPN cục bộ để triển khai tường lửa sẽ ngăn việc sử dụng dịch vụ VPN thực, trừ khi tường lửa cung cấp chính dịch vụ đó hoặc cơ chế chuyển tiếp hoặc proxy cho VPN khác ứng dụng.
Cuối cùng, tường lửa dựa trên VPN phụ thuộc vào ứng dụng cung cấp dịch vụ VPN tường lửa sẽ chạy. Điều này có vẻ tầm thường, nhưng thực tế không phải vậy, vì một số phiên bản / biến thể Android của nhà sản xuất đã quá mạnh tay giết chết các tiến trình trong điều kiện bộ nhớ thấp (IMHO là một lỗi nếu Android giết các ứng dụng cung cấp dịch vụ VPN).
Cuối cùng, việc root thiết bị Android ngày càng trở nên khó khăn, khiến tường lửa dựa trên VPN là lựa chọn duy nhất cho nhiều người. Tôi không mong đợi Google sớm thêm tường lửa dựa trên hệ thống vì điều này có thể ảnh hưởng đáng kể đến doanh thu quảng cáo của họ. iOS có tường lửa dựa trên hệ thống.
Hãy cho tôi biết nếu có bất kỳ câu hỏi và tôi sẽ cố gắng trả lời chúng.