Khóa VPN bằng PF trên Mac: chính sách của site, không phải tính năng đóng gói được
Packet Filter không phải API được hỗ trợ cho các sản phẩm phân phối. Giao bộ quy tắc cho một chủ sở hữu, đặt tên cho từng ngoại lệ và kiểm tra các chuyển đổi.
Nó chạy trên Mac của bạn, nên trông như thứ bạn có thể giao cho người dùng. Giả định đó là thứ đầu tiên phải bỏ. Tài liệu TN3165 của Apple nói rõ rằng Packet Filter không phải API được hỗ trợ cho các sản phẩm phân phối rộng rãi, và coi việc quản trị site có đặc quyền, được kiểm soát là trường hợp hợp lý. Vì vậy khóa VPN dựa trên PF là một chính sách vận hành cục bộ có chủ sở hữu, không phải tính năng có thể đóng gói trong ứng dụng.
PF không phải bề mặt đóng gói
Sự phân biệt này không mang tính hàn lâm. Một sản phẩm phân phối phụ thuộc vào PF thừa hưởng mọi thay đổi Apple thực hiện với nó, mọi xung đột với công cụ khác cũng ghi quy tắc, và không có cam kết hỗ trợ rằng cách bố trí này sẽ tiếp tục hoạt động. Một site tự quản trị máy của mình có mối quan hệ khác: có thể ghi lại phụ thuộc, kiểm tra với từng bản phát hành hệ điều hành và chấp nhận việc bảo trì.
Một số lời khuyên cài đặt vượt qua ranh giới đáng được gọi tên. Ghi đè toàn bộ bộ quy tắc hệ thống để tải một anchor, chỉnh sửa cấu hình khởi động hệ thống của Apple, hoặc vô hiệu hóa System Integrity Protection không phải yêu cầu chấp nhận được cho một công thức dùng lại được. Nếu một hướng dẫn đã công bố cần bất kỳ điều nào trong số đó, nó đang mô tả một phòng thí nghiệm, không phải chính sách có thể triển khai.
Viết ý định lưu lượng ra trước cú pháp
Quyết định điều gì được phép trước khi chọn một từ khóa duy nhất. Thường phải có ba đường: vận chuyển của chính ứng dụng VPN đến máy chủ của nó, lưu lượng ứng dụng được bảo vệ bên trong đường hầm, và mọi thiết lập hoặc dịch vụ cục bộ thực sự cần đường trực tiếp.
Cho mỗi ngoại lệ được đề xuất một đích, một vận chuyển và một chủ sở hữu. Cho phép mọi cổng đến một điểm cuối cho phép nhiều hơn hẳn một vận chuyển mà đường hầm dùng, và mức phơi nhiễm thêm xuất hiện mà không ai quyết định rằng phải như vậy. Cho phép một resolver công cộng là cùng cái bẫy trong bộ áo thân thiện hơn: nó tạo đường DNS trực tiếp ngay cả khi đường hầm xuống, nên tra cứu tên vẫn rò rỉ.
| Path | Destination | Owner |
|---|---|---|
| VPN transport | Gateway address, one UDP port | Network team |
| Tunnel traffic | Internal prefixes | Application owner |
| Resolver exception | Named internal resolver | Security team |
Bài kiểm tra hữu ích cho một ngoại lệ là liệu bạn có thể gọi tên người đã yêu cầu nó và lỗi mà nó ngăn chặn. Nếu không có câu trả lời nào, quy tắc có lẽ là cách vòng tránh một cấu hình sai mà nếu không sẽ vẫn vô hình.
Số utun không phải danh tính
MacOS tạo các giao diện đường hầm dưới dạng thiết bị utun, và số được gán cho VPN của bạn không ổn định qua các lần khởi động lại, kết nối lại hoặc khi có một ứng dụng khác. Một quy tắc liệt kê vài con số đoán được không phải chính sách; đó là ảnh chụp của một buổi chiều.
Neo quy tắc vào thứ nhận diện nhà cung cấp dự định: gói địa chỉ mà đường hầm gán, tiến trình sở hữu giao diện, hoặc cấu hình do chính ứng dụng VPN duy trì. Sau đó ghi lại cách nhận diện đó hoạt động, vì người xem lại quy tắc sau một năm sẽ không có lịch sử shell của bạn.
Làm cho chính sách đã nạp có thể quy nguồn
Tên anchor sắp xếp các quy tắc; nó không chứng minh chính sách hiệu lực là thứ bạn dự định. Thứ tự ưu tiên giữa các anchor, quy tắc do phần mềm khác nạp và trạng thái hiện có đều có thể thay đổi kết quả. Xem lại bộ hiệu lực với mọi người khác sở hữu PF trên máy đó, và ghi lại quyền sở hữu ở cùng nơi với cấu hình. Hai chủ sở hữu sửa các anchor khác nhau với các giả định khác nhau là cách thông thường để một khóa phát sinh lỗ hổng.
Giữ bộ quy tắc trong đường cấu hình được site hỗ trợ, đánh phiên bản và ghi lại những bản macOS đã được kiểm tra. Một thay đổi được áp dụng bằng tay và một người ghi nhớ không phải hạ tầng được bảo trì, bất kể tiêu đề tệp nói gì.
Kiểm tra các chuyển đổi, không phải trạng thái đã kết nối
Ảnh chụp màn hình khi đường hầm đang bật gần như không chứng minh được gì. Hãy đi qua các trạng thái: khởi động trước mọi kết nối, đường hầm hoạt động, đường hầm sụp không cảnh báo, ngắt kết nối có chủ đích và chuyển từ Wi-Fi sang điểm phát sóng. Mỗi trạng thái có câu trả lời riêng, và điều thú vị là các thất bại, không phải con đường suôn sẻ.
Trong mỗi trạng thái, ghi lại điều gì được chủ đích cho phép kết nối. Kiểm tra IPv4 và IPv6 riêng biệt, kiểm tra phân giải tên, và bao gồm một luồng đã được thiết lập trước khi chuyển đổi, vì các kết nối hiện có không phải lúc nào cũng theo chính sách mới. Trình duyệt hỏng khi đường hầm xuống là một điểm dữ liệu, không phải bằng chứng rằng mọi đường khác đều bị chặn.
Cuối cùng, hãy giữ một phương thức phục hồi không phụ thuộc vào đường mạng bạn đang thay đổi. Một cấu hình tốt đã biết trên lưu trữ cục bộ và cách nạp nó đã được ghi lại biến một khóa thành chính sách; thiếu chúng, một bản sửa đổi tồi khóa quản trị viên ra khỏi máy lẽ ra phải được bảo vệ.