Giao thức nào đứng sau hồ sơ VPN Mac đã lưu đó?
Tên kết nối trên Mac không cho biết gì về loại VPN của nó. Đọc trường VPNType trong tải trọng, rồi kiểm tra cổng và phiên riêng biệt.
Ai đó đặt tên một kết nối Mac là „VPN văn phòng“, nhãn đó sống sót qua hai lần di chuyển máy chủ, và mọi người vẫn gọi nó là VPN văn phòng rất lâu sau khi giao thức đã thay đổi. Cái tên là một biệt danh được lưu bên cạnh cấu hình; nó không phải bằng chứng về điều Mac thương lượng. Đọc loại được khai báo chỉ cần một trường, và tách loại đã lưu đó khỏi một phiên đang sống cần thêm một bước. Đây là thứ tự tránh phải đoán.
Nhãn là biệt danh, tải trọng khai báo loại
Dịch vụ VPN trên macOS là một mục cấu hình hệ thống với tên hiển thị, ứng dụng khách sở hữu và một tập thiết lập có kiểu. Tên hiển thị là văn bản tự do, ai tạo mục cũng có thể sửa, và đó là phần người dùng thấy trên thanh menu. Các thiết lập mang sự thật: loại kết nối nào, cổng nào, cách xác thực nào. Không có gì giữ hai thứ đó đồng bộ, nên một hồ sơ tên „văn phòng L2TP“ có thể là dịch vụ IKEv2.
Với kết nối do cá nhân tạo, ứng dụng sở hữu hoặc bảng VPN của chính hệ thống hiển thị các thiết lập đó. Trên Mac được quản lý, hồ sơ thuộc về quản trị viên, và bước đúng là yêu cầu một bản tóm tắt không bí mật thay vì sửa tải trọng được quản lý. Hai trường hợp trông giống nhau trên thanh menu và hành xử hoàn toàn khác bên dưới. Một cái là của bạn để kiểm tra và thay đổi; cái kia đã được triển khai và sẽ được khôi phục ở lần kiểm tra tiếp theo.
Sự phân biệt này quan trọng vì cấu hình được quản lý và cấu hình cá nhân được điều hành khác nhau. Hồ sơ do quản lý cài đặt sẽ bị thay thế hoặc áp dụng lại, nên chỉnh sửa cục bộ hoặc thất bại hoặc âm thầm quay lại. Hãy hỏi chủ sở hữu về loại, danh tính cổng và phương thức xác thực thay vì dịch ngược một tệp bạn không kiểm soát.
Đọc VPNType trước mọi thứ khác trong tải trọng
Lược đồ tải trọng VPN được quản lý của Apple khai báo loại kết nối trong khóa VPNType, bên trong một từ điển có PayloadType là com.apple.vpn.managed. Giá trị là một mã ngắn như IKEv2, IPsec, L2TP hoặc VPN, và mọi thứ khác trong tải trọng được diễn giải theo mã đó.
<key>PayloadType</key>
<string>com.apple.vpn.managed</string>
<key>VPNType</key>
<string>IKEv2</string>
<key>IKEv2</key>
<dict>
<key>RemoteAddress</key>
<string>vpn.head-office.example</string>
<key>RemoteIdentifier</key>
<string>ikev2.head-office.example</string>
</dict>Đoạn này mang tính minh họa, không cài đặt được: nó là một mục trong mảng tải trọng, đã bỏ đi siêu dữ liệu hồ sơ và thông tin xác thực mà một lần triển khai thực sự cần. Đọc nó để hiểu hình dạng, không phải nội dung. Cũng lưu ý rằng RemoteAddress và RemoteIdentifier là các trường khác nhau với nhiệm vụ khác nhau, kể cả khi bản triển khai cho chúng cùng một chuỗi.
Một giá trị cũ như PPTP vẫn có thể xuất hiện trong tệp cũ mà không phải lựa chọn mà macOS hiện tại cung cấp cho cấu hình mới. Tìm thấy một mã trong hồ sơ đã lưu chứng minh điều đã được ghi, không phải điều hệ điều hành còn chấp nhận.
Loại tùy chỉnh cần VPNSubType và ứng dụng sở hữu
Khi VPNType là VPN, tải trọng cũng phải mang VPNSubType, thứ xác định plugin hoặc nhà cung cấp Network Extension triển khai kết nối. Chính mã định danh đó định tuyến kết nối tới một ứng dụng khách cụ thể, nên một kiểu con sai tạo ra hồ sơ cài được rồi từ chối khởi động.
Với nhà cung cấp dựa trên tiện ích mở rộng ứng dụng, mã định danh thuộc về ứng dụng chứa nó chứ không phải tên tiện ích đoán được, và đây là chi tiết người ta thường làm sai khi sửa hồ sơ bằng tay. Ngay cả kiểu con đúng cũng mô tả ứng dụng khách, không mô tả giao thức trên dây, phương thức xác thực hay chính sách truy cập từ xa mà ứng dụng khách đó sẽ dùng.
Vậy tải trọng tùy chỉnh cho bạn biết phần mềm nào sở hữu kết nối và ít hơn thế nữa. Để biết nó thương lượng điều gì, hãy đọc tài liệu của nhà cung cấp đó và các thiết lập đã cấu hình. Sao chép kiểu con từ hồ sơ của tổ chức khác không phải kỹ thuật cấu hình; đó là một phỏng đoán tình cờ phân tích được.
Liệt kê những gì Mac thực sự đã cấu hình
Trước khi đọc bất kỳ tệp nào, hãy hỏi hệ thống xem có những dịch vụ nào và chúng ở trạng thái nào. Chế độ xem dòng lệnh nhanh hơn việc nhấp qua các bảng và in loại bên cạnh từng mục.
scutil --nc list scutil --nc show "Office VPN"
Lệnh đầu liệt kê các dịch vụ VPN đã cấu hình cùng trạng thái hiện tại, lệnh thứ hai in thiết lập của dịch vụ đã chọn, gồm loại và địa chỉ máy chủ mà nó sẽ liên hệ. So sánh địa chỉ đó với cổng mà bạn được cho là phải chờ đợi, vì một mục cũ trỏ tới máy chủ đã nghỉ hưu là vấn đề kế thừa phổ biến.
Các lệnh này hiển thị cấu hình và trạng thái; chúng không chứng minh đường hầm đang mang lưu lượng. Nếu dịch vụ bị ngắt, đầu ra mô tả ý định chứ không phải phiên đang chạy. Một dịch vụ đã kết nối mà không có lưu lượng lại là vấn đề khác, thường là định tuyến hoặc DNS chứ không phải loại giao thức. Hãy giữ ba quan sát đó tách biệt, nếu không chẩn đoán sẽ quay lại chỗ đoán.
Giữ thiết lập đã lưu tách khỏi phiên đang sống
Hồ sơ đã lưu là một tuyên bố ý định. Nó không cho thấy cổng vẫn cung cấp dịch vụ đó, rằng hồ sơ này là cái đang hoạt động, hay rằng một phiên đã thương lượng thành công. Đó là ba câu hỏi riêng biệt và mỗi câu có bằng chứng riêng.
Dùng chế độ xem trạng thái của chủ sở hữu hoặc công cụ chẩn đoán để xác định kết nối đang hoạt động và danh tính mà cổng đã trình bày. Quét cổng hay chứng chỉ thấy trên một trang không liên quan không trả lời câu nào trong hai câu, và tên chung của chứng chỉ không giống mã định danh từ xa mong đợi.
Khi loại đã lưu không còn khớp với điều cổng hỗ trợ, hãy lấy hồ sơ thay thế từ chủ sở hữu của nó. Đổi chuỗi loại không dịch thông tin xác thực giữa các giao thức và không biến một cách xác thực thành cách khác. Chia sẻ bản tóm tắt qua kênh hỗ trợ đã được phê duyệt nữa, vì cấu hình xuất ra có thể mang thông tin xác thực và khóa riêng mà một yêu cầu hỗ trợ chưa bao giờ cần.