Bạn có một câu chính sách: ứng dụng này được đến dịch vụ công việc, và không gì khác. Câu hỏi tiếp theo trông như lựa chọn sản phẩm, nhưng đó là câu hỏi về vị trí, vì mỗi điểm thực thi tiềm năng thấy một tập con khác nhau của lưu lượng điện thoại. Một gateway chỉ thấy những gì đi vào đường hầm. Bộ lọc phía điện thoại chỉ thấy những gì nó được phép quan sát. Đưa một yêu cầu qua cả hai làm câu trả lời trở nên rõ ràng.

Bắt đầu từ câu, không phải sản phẩm

Hãy mở rộng yêu cầu trước khi chọn bất cứ thứ gì. Điều đó có nghĩa là gói và hồ sơ mà nó chạy trong đó, vì ứng dụng trong hồ sơ công việc là người dùng khác với chính ứng dụng đó trong hồ sơ cá nhân. Điều đó có nghĩa là đích: host, port và protocol, không phải tên dịch vụ. Điều đó có nghĩa là đường DNS phân giải tên đó, và nghĩa là điều gì phải xảy ra khi đường hầm không khả dụng.

Khi viết ra, chính sách cho ví dụ có bốn dòng: ứng dụng công việc được đến dịch vụ công việc; ứng dụng công việc không được đến gì khác; các ứng dụng khác không thay đổi; khi không có đường hầm, ứng dụng công việc bị từ chối thay vì chuyển sang đường trực tiếp. Mỗi dòng có một chủ sở hữu, và không phải tất cả đều cùng một chủ sở hữu.

Bước 1: điện thoại tự nó có thể thực thi gì

Tường lửa Android không cần root là một VpnService bắt lưu lượng cục bộ, ngay cả khi không có đường hầm từ xa phía sau. Android cho phép một dịch vụ VPN hoạt động cho mỗi hồ sơ người dùng, nên ứng dụng tường lửa thứ hai không nối chuỗi phía sau cái thứ nhất. Nó thay thế cái trước, và giao diện mà ứng dụng đầu tiên đang lọc biến mất.

Đó là lý do cài tường lửa bên cạnh ứng dụng VPN hiếm khi tạo ra sự kết hợp mà mọi người mong đợi. Nếu tường lửa khởi động và VPN ngắt kết nối, không có gì được kết hợp; hai thứ đã đổi chỗ cho nhau. Thay thế giao diện không phải là hợp tác, và triệu chứng là đường hầm liên tục rớt mỗi khi mở ứng dụng kia.

Vẫn có những cách bố trí được hỗ trợ: lọc tích hợp trong ứng dụng VPN bạn đang dùng, điều khiển nền tảng được quản lý qua bộ điều khiển chính sách thiết bị hoặc hồ sơ công việc, hoặc kiến trúc mà nhà cung cấp ghi lại. Mọi thứ khác là thử nghiệm phải được xác minh lại sau mỗi lần cập nhật ứng dụng.

Bước 2: gateway có thể thực thi gì

Khi lưu lượng được giải mã ở đầu xa, gateway có thể giới hạn các gói được chuyển tiếp tới địa chỉ, dịch vụ hoặc danh tính VPN đã xác thực được chấp thuận. Đó là thực thi thực sự cho mọi thứ đi ra qua nó, và là nơi đúng để giới hạn truy cập vào các mạng con riêng.

Điều nó không nhận được là danh tính ứng dụng của điện thoại gắn với từng gói IP thông thường. Nhiều ứng dụng dùng chung một địa chỉ đường hầm là một chủ thể đối với gateway, trừ khi thiết kế cấp cho chúng địa chỉ riêng hoặc danh tính đã xác thực riêng. Vì vậy quy tắc theo người dùng ở gateway không phải quy tắc theo ứng dụng trên điện thoại, dù bảng điều khiển quản lý gọi nó thế nào.

Bước 3: liệt kê những gì không bao giờ đến

Một ứng dụng bị loại khỏi VPN mà liên hệ với thiết bị gần đó sẽ không bao giờ đến gateway, nên tường lửa đầu ra không thể từ chối một gói mà nó không bao giờ nhận. Điều tương tự áp dụng cho tuyến trực tiếp ngoài ý muốn trong lúc sự cố và cho việc lộ hướng vào trên mạng truy cập cục bộ. Đó là ranh giới cục bộ theo định nghĩa.

Điều ngược lại cũng đúng: một quy tắc cục bộ cho phép kết nối không cấp quyền truy cập qua ACL mạng riêng của gateway. Một yêu cầu có thể chịu cả hai ranh giới, và việc thỏa mãn cái này không nói gì về cái kia.

Bước 4: gán tuyến cho từng quy tắc

Hãy đặt quyết định vào một bảng trước khi cấu hình bất cứ thứ gì, vì các ô trống là nơi thiết kế thất bại.

PathWho can enforce itBlind spot
Work app to the work service, tunnel upGateway ACL on address and service, plus a local block on other pathsThe gateway cannot see which app sent the packet
Work app to other destinations, tunnel upLocal app-aware filter, or the gateway if those destinations are addressed thereThe local filter must be the active VpnService
Work app with no tunnelLocal deny, so the app cannot take a direct pathRequires the filter to survive the tunnel going away
Nearby LAN deviceLocal policy onlyThe gateway never sees it

Hình dạng khả thi là hai ranh giới với hai nhiệm vụ. Một ranh giới cục bộ nhận biết ứng dụng điều khiển hành vi của điện thoại, gồm cả việc chuyển sang đường trực tiếp, và ranh giới gateway điều khiển tài nguyên từ xa. Phía gateway có thể cho phép dịch vụ công việc và từ chối mọi mạng con riêng khác, trong khi chính sách phía điện thoại tự quyết định về tuyến trực tiếp mà ứng dụng có thể chọn.

Bước 5: giữ phương tiện truyền tải sống, rồi xác minh

Bất kể chính sách cục bộ bạn chọn là gì, nó phải cho phép phương tiện truyền tải thiết lập và duy trì VPN. Chặn phương tiện đó khiến điện thoại không có đường hầm và không có chính sách, điều này không thực thi gì một cách nhất quán và khó chẩn đoán vì ứng dụng đơn giản là không có mạng.

Sau đó xác minh từng dòng của câu gốc thay vì ấn tượng chung: ứng dụng công việc đến được dịch vụ công việc, chính ứng dụng đó bị từ chối ở đích khác, ứng dụng không phải công việc hoạt động như trước, và khi dừng đường hầm, ứng dụng công việc không chuyển sang kết nối trực tiếp. Hãy kiểm tra đường DNS riêng, vì DNS riêng hoặc trình phân giải mã hóa có thể vượt qua bộ lọc chỉ kiểm tra địa chỉ.

Nếu một trong các bước đó không thể thỏa mãn trên điện thoại, yêu cầu là câu hỏi kiến trúc chứ không phải cài đặt tường lửa. Chia chính sách giữa thiết bị bạn kiểm soát và gateway bạn kiểm soát thường là câu trả lời trung thực, và tài liệu về kết nối VPN của Android là nơi xác nhận nền tảng sẽ cho phép và không cho phép một dịch vụ làm gì.

Bài viết liên quan