Một máy, hai việc, một tường lửa: một đường lên Wi-Fi, một mạng con Ethernet nhỏ phía sau và một ứng dụng VPN trên máy tính giả định mọi thứ rời khỏi máy là cục bộ. Các ứng dụng khởi chạy cục bộ đi ra theo đường đầu ra cục bộ. Thiết bị phía sau máy trạm đến cổng Ethernet và cần một quyết định chuyển tiếp. Một ngoại lệ viết cho đường thứ nhất không bao giờ thấy đường thứ hai, và đó là lý do trình duyệt đi vòng qua đường hầm còn thiết bị thì không.

Hai đường gói tin, một chính sách

OriginPathDecision owner
Application on the workstationOUTPUT then egressThe VPN app's routing policy
Device behind the workstationPREROUTING then FORWARDThe workstation's own forwarding policy

Dòng đầu tiên là điều hầu hết hướng dẫn split-tunneling mô tả. Dòng thứ hai là cấu hình bộ định tuyến tình cờ nằm trên cùng máy. Hợp nhất chúng thành một mô hình tư duy là sai lầm; chúng chia sẻ nhân, không chia sẻ chính sách. Hãy vẽ cả hai đường trước khi sửa bất kỳ quy tắc nào, phần còn lại của thiết kế xuất phát từ việc thiếu đường nào.

Bảng cũng giải thích vì sao một máy có thể đạt một bài kiểm tra và trượt bài khác. Trình duyệt trên máy trạm chứng minh đường cục bộ; máy tính xách tay cắm vào cổng Ethernet chứng minh đường chuyển tiếp. Kiểm chứng mọi thay đổi bằng cả hai, nếu không đường thứ hai sẽ không được kiểm tra dù tải lại trình duyệt bao nhiêu lần.

Ngoại lệ ứng dụng thực sự phân loại điều gì

Ngoại lệ theo ứng dụng thường hoạt động bằng cách đánh dấu các gói từ một tiến trình hoặc một người dùng rồi định tuyến lưu lượng đã đánh dấu ra ngoài đường hầm. Đó là một cấu trúc đầu ra cục bộ. Gói từ thiết bị phía sau không có tiến trình cục bộ, nên nó không bao giờ khớp với bộ chọn, bất kể bộ chọn là gì.

Bất kể bộ chọn là gì, hai danh sách không phải cùng một danh sách, và đó là toàn bộ vấn đề. Hướng dẫn Mullvad cho Linux mô tả các dấu mà tường lửa và chính sách định tuyến của nó tiêu thụ, và các ví dụ của nó nhắm vào đầu ra cục bộ; chúng không phải mô tả được hỗ trợ của một bộ định tuyến phía sau. Sao chép chúng tạo ra một máy tin rằng mình có ngoại lệ trong khi vẫn chuyển mọi thứ vào đường hầm.

Viết hợp đồng trung chuyển

Gọi tên cùng lúc tiền tố nguồn phía sau và giao diện vào, rồi giới hạn tiền tố đó tại lối vào. Không có giới hạn, bất kỳ thiết bị nào chạm tới cổng đều có thể đòi một địa chỉ được loại trừ và thoát qua đường vòng. Hãy coi đó là hai câu hỏi: các máy chủ này có được dùng đường lên này không, và chúng có được tới máy trạm hoặc các dải riêng của đường hầm không? Đó là các quyền bổ sung, không phải tác dụng phụ của việc chọn đường.

Cho phép chuyển tiếp, rồi lọc nó. Cổng Linux cần bật chuyển tiếp, các quy tắc cho phép lưu lượng dự định theo cả hai chiều, và hoặc tuyến trả về phía trên hoặc chuyển địa chỉ nguồn được giới hạn có chủ đích. Chỉ riêng NAT không chọn đường lên và không cho qua bộ lọc; nó chỉ viết lại địa chỉ sau những quyết định đó.

Phân loại cho trung chuyển phải diễn ra trước quyết định tuyến chuyển tiếp, nghĩa là ở giai đoạn prerouting chứ không phải output. Một quy tắc đặt sau quyết định vẫn có thể thay đổi gói, nhưng không thể thay đổi nơi gói đã được gửi đi.

Dấu thuộc về ứng dụng sở hữu chúng

Giá trị dấu, số bảng và mức ưu tiên chuỗi là một phần chính sách của ứng dụng VPN, không phải hằng số vĩnh cửu. Một mạng bền vững phụ thuộc vào việc chèn quy tắc vào bảng do chương trình khác tạo lại sẽ hỏng ở lần cập nhật tiếp theo, thường là khi kết nối lại chứ không phải lúc thuận tiện.

Thêm chuỗi cơ sở thứ hai với phán quyết accept không nhất thiết ghi đè drop của một chuỗi sau. Chuỗi cơ sở có hook và mức ưu tiên, và phán quyết đầu tiên theo thứ tự thắng; accept trong một chuỗi không hủy drop mà chuỗi khác chạm tới trước. Hãy xem toàn bộ tập quy tắc và thứ tự chính sách định tuyến, không phải một bộ đếm đã tăng. Bộ đếm chứng minh một quy tắc đã chạy, không bao giờ chứng minh phán quyết của nó là cái được áp dụng.

Tích hợp, hoặc di chuyển mạng con

Hai thiết kế khác nhau ở việc ai sở hữu đường vòng. Thiết kế tích hợp giữ một máy và một chính sách, với cái giá là phụ thuộc vào vòng đời bảng của ứng dụng VPN và vào tập dấu mà tài liệu của nó có thể thay đổi. Một bộ định tuyến chuyên dụng cho mạng phía sau loại bỏ hoàn toàn sự phụ thuộc đó: mạng con có đường lên riêng, và máy trạm vẫn là máy khách không có vai trò chuyển tiếp.

Chọn cách thứ hai khi mạng phía sau phải tiếp tục hoạt động qua các bản cập nhật VPN, hoặc khi không ai có thể kiểm tra chính sách tích hợp sau mỗi bản phát hành. Chỉ chọn cách thứ nhất khi việc tích hợp được ghi lại và có người chịu trách nhiệm.

Kiểm chứng ranh giới ở bốn trạng thái: đã kết nối, đang kết nối lại, bị chặn có chủ đích và đã dừng. Kiểm tra phân giải tên và cả hai họ địa chỉ trong mỗi trạng thái, vì một đường vòng rò rỉ DNS không phải ngoại lệ bạn đã thiết kế. Bài kiểm tra phải chứng minh ranh giới chính xác, không chỉ là một trang đã tải.

Bài viết liên quan