Công tắc an toàn của bạn có chặn ứng dụng mà bạn đã loại khỏi đường hầm không?
Một ứng dụng bị loại có thể cố ý đi trực tiếp, còn ứng dụng được bảo vệ phải thất bại trong trạng thái đóng. Hãy viết chính sách cho từng ứng dụng trước, rồi kiểm tra những gì ứng dụng khách thực sự áp đặt.
Công tắc an toàn đang bật, một ứng dụng bị cố ý loại khỏi đường hầm, và hai yêu cầu giờ mâu thuẫn với nhau. Một bên nói không gì được đi ra ngoài trừ qua đường hầm, bên kia nói chương trình này phải đi trực tiếp. Mỗi ứng dụng khách giải quyết xung đột đó một cách khác nhau, và trang cài đặt hiếm khi giải thích quy tắc nào thắng. Hãy viết chính sách cho từng ứng dụng trước khi tin vào bất kỳ nhãn nào.
Hai chính sách, một cỗ máy
Công tắc an toàn là một lời hứa về sự cố: khi đường hầm không bảo vệ lưu lượng, lưu lượng dừng lại. Đường hầm chia tách là một lời hứa về lựa chọn: những chương trình hoặc đích đến này dùng đường hầm, còn những cái kia thì không. Lời hứa thứ hai tạo ra lưu lượng mà lời hứa thứ nhất phải quyết định. Không lời hứa nào sai; chỉ là những người khác nhau viết chúng cho những mối đe dọa khác nhau.
Ba kết quả có thể xảy ra và chỉ một là điều mà việc triển khai dự định. Ứng dụng bị loại có thể vẫn đi trực tiếp trong lúc sự cố, điều này tôn trọng việc chia tách và phá vỡ công tắc. Nó có thể bị chặn cùng với mọi thứ khác, điều này tôn trọng công tắc và phá vỡ việc chia tách. Hoặc nó chỉ bị chặn đôi khi, tùy vào cách nền tảng đánh giá quy tắc sau khi một giao diện biến mất. Chính trường hợp cuối đó tạo ra phiếu hỗ trợ.
Viết danh sách ứng dụng trước quy tắc
Liệt kê những chương trình phải dùng đường hầm, những chương trình phải đi trực tiếp, và những tên hoặc đích đến không bao giờ được xuất hiện trong bất kỳ danh sách nào. Ghi riêng hành vi của bộ phân giải và phía IPv6, vì cả hai đều có thể theo một chính sách khác với lưu lượng trang.
Quy tắc theo ứng dụng thường khớp với một tệp thực thi hoặc một gói, không khớp với hồ sơ bên trong nó. Hồ sơ trình duyệt, cửa sổ riêng tư và tiện ích mở rộng không mang danh tính mạng của riêng chúng, nên chúng thừa hưởng những gì tiến trình nhận được. Một tiến trình phụ do trình duyệt đó khởi chạy có thể không thừa hưởng cùng quy tắc đó chút nào.
Cần hai danh sách, không phải một: những gì đường hầm phải chở, và những gì không được đi ra ngoài vì bất kỳ lý do gì. Một ứng dụng xuất hiện trong cả hai là xung đột yêu cầu chứ không phải chi tiết triển khai, và phải được giải quyết trước khi cấu hình ứng dụng khách.
Ứng dụng khách làm gì trong lúc sự cố
Một số cách triển khai chặn những ứng dụng bị loại trong lúc sự cố và khôi phục quyền truy cập khi kết nối lại. Những cách khác giữ đường đi trực tiếp suốt thời gian, điều này nhất quán với việc chia tách và yếu hơn như một thuộc tính bảo mật. Khóa ở cấp nền tảng có thể ghi đè hoàn toàn lựa chọn theo ứng dụng của ứng dụng khách. Sự khác biệt đó không phải hình thức, vì nó quyết định ứng dụng bị loại là ngoại lệ chính sách hay là một lỗ hổng.
VPN luôn bật của Android với tùy chọn chặn các kết nối không có VPN là trường hợp rõ nhất, vì nền tảng chứ không phải ứng dụng khách áp đặt khóa, và gói bị loại bị chặn cùng với mọi thứ khác khi đường hầm xuống. Một ứng dụng khách trên máy tính áp dụng ngoại lệ theo ứng dụng trong trình điều khiển của riêng nó thường để tiến trình bị loại trên giao diện vật lý, vì nó chưa bao giờ sở hữu lưu lượng của tiến trình đó. Cả hai hành vi đều có thể bảo vệ được và chỉ một khớp với yêu cầu nói rằng ứng dụng bị loại phải tiếp tục dùng được. Hãy hỏi thành phần nào áp đặt quy tắc trước khi diễn giải kết quả.
Hãy đọc hành vi của hệ điều hành trước mặt bạn, không phải cài đặt cùng tên ở nơi khác. Các API áp đặt khác nhau, và một hộp kiểm có thể mang nghĩa hoàn toàn khác trên máy tính và trên điện thoại. Phiên bản cũng quan trọng, vì điều khiển khóa đã di chuyển giữa các màn hình qua các bản phát hành Android, và danh sách ngoại lệ phía ứng dụng khách không phải cùng một điều khiển như khóa của nền tảng.
Ba thời điểm: đường hầm bật, đường hầm tắt, kết nối lại
Dùng những yêu cầu vô hại ở ba thời điểm: khi đường hầm hoạt động, trong lúc sự cố mà bạn quan tâm, và sau khi kết nối lại. Một kết quả trình duyệt không thể xác lập hành vi của ứng dụng bị loại.
curl -sS --max-time 8 https://api.ipify.org
curl -sS --max-time 8 --interface tun0 https://api.ipify.org
dig +short example.com
Địa chỉ đi ra cho thấy đường nào đã được chọn, và bài kiểm tra giao diện rõ ràng cho thấy điều gì xảy ra khi đường hầm là lối ra duy nhất có sẵn. Ghi kết quả mong đợi bên cạnh từng dòng trước khi chạy bất kỳ dòng nào, nếu không đầu ra sẽ bị diễn giải sau khi sự việc xảy ra.
Nếu một ứng dụng bị loại mất kết nối, hãy xem xét thứ tự ưu tiên của chính sách trước khi thêm một quyền tường lửa rộng, vì bản sửa đó phá hủy sự khác biệt mà bạn đang kiểm tra. Nếu nó vẫn đi trực tiếp, hãy xác nhận rằng đó là ngoại lệ đã được ghi lại chứ không phải sự lùi bước tình cờ. Với yêu cầu nghiêm ngặt cho toàn bộ thiết bị, hãy rút ngắn danh sách ngoại lệ cho đến khi có thể kiểm tra bằng tay.