Cùng một .ovpn tệp kết nối được từ shell nhưng hết thời gian sau khi nhập vào NetworkManager. Kết luận tự nhiên là VPN bị hỏng. Lời giải thích khả dĩ hơn thì nhỏ hơn: NetworkManager không giữ tệp, nó đã nhập một phần tệp vào một kết nối đã lưu, và đường hầm đang chạy dùng chính dữ liệu đã lưu đó. Tệp nói gì bây giờ không liên quan đến những gì hồ sơ chứa.

Tệp không phải là hồ sơ

Nhập là một bản dịch, không phải một lần gắn kết. Các tùy chọn mà plugin hiểu trở thành khóa trong vpn.data từ điển của kết nối; những tùy chọn nó không hiểu bị bỏ đi hoặc ghi lại ở nơi khác, và đường dẫn gốc chỉ là một tham chiếu. Việc sửa tệp nguồn sau đó không thay đổi gì trong kết nối đã được lưu.

Khoảng trống đó giải thích cả một họ báo cáo: khóa chia sẻ bị luân chuyển, tệp được cập nhật, và đường hầm vẫn thất bại. Hồ sơ đã lưu vẫn trỏ đến đường dẫn cũ hoặc giá trị cũ, và dòng lệnh vẫn hoạt động vì nó đọc tệp bạn đã sửa. Hai máy khách, hai nguồn sự thật, và chỉ một trong số đó được cập nhật.

Đọc hồ sơ đã lưu, không phải hộp thoại

nmcli -f connection.id,connection.uuid,vpn.service-type,vpn.data connection show office-vpn

Dùng UUID khi hai hồ sơ trùng tên, và xác nhận rằng loại dịch vụ là OpenVPN plugin bạn mong đợi, không phải một loại VPN khác tình cờ được cài đặt. Sau đó so sánh điểm cuối, giao thức truyền và các tham chiếu chứng chỉ với lời gọi đang hoạt động.

Một giá trị hiển thị trong trình soạn thảo đồ họa không phải bằng chứng rằng nó đã được lưu. Hãy lưu, mở lại và đọc lại qua dòng lệnh; các lỗi lưu trong quá khứ là lý do để kiểm tra dữ liệu đã lưu, không phải bằng chứng rằng mọi bản dựng hiện tại đều có cùng lỗi. Việc kiểm tra tốn một lệnh.

Hai khóa, và một hướng quan trọng

Với một kết nối dùng xác thực TLS, plugin lưu đường dẫn của khóa chia sẻ trong ta và hướng trong ta-dir, khi bản triển khai có dùng một hướng. Cả hai nằm trong từ điển dữ liệu của hồ sơ, và cả hai phải khớp với điều máy chủ mong đợi.

Hướng là quyết định phía máy chủ được thể hiện trên máy khách. Chọn một hướng vì hồ sơ bên cạnh có nó chính là cách một khóa đang hoạt động bắt đầu hỏng bắt tay. Nếu cấu hình máy chủ không có hướng, máy khách không nên tự tạo ra hướng.

Bản thân tệp khóa phải đọc được bởi plugin trong ngữ cảnh nó thực sự chạy. Một gói bị hạn chế có góc nhìn hệ thống tệp khác với bản cài đặt máy tính để bàn thông thường, nên một đường dẫn tồn tại trong shell của bạn có thể vô hình với dịch vụ.

Cập nhật một mục, không phải từ điển

nmcli connection modify office-vpn +vpn.data 'ta=/etc/NetworkManager/certs/office-ta.key'
nmcli connection modify office-vpn +vpn.data 'ta-dir=1'

Dấu cộng ở đầu cập nhật từng mục của từ điển. Gán vpn.data mà không có nó sẽ thay thế toàn bộ từ điển, và đó là cách một khóa thiếu biến thành năm cài đặt hỏng. Đọc lại hồ sơ sau thay đổi và xác nhận các mục khác vẫn còn. Một từ điển mất điểm cuối từ xa và chứng chỉ của nó là một buổi chiều dài hơn nhiều so với buổi chiều bạn bắt đầu.

Kết nối lại qua các điều khiển thông thường và quan sát giai đoạn thất bại. Nếu cổng khóa chia sẻ giờ đã qua và máy khách báo lỗi chứng chỉ hoặc xác thực người dùng, bạn đã tiến thêm và cuộc điều tra tiếp theo là khác.

Đừng nhầm lẫn các chế độ của kênh điều khiển

tls-auth, tls-crypt, và tls-crypt-v2 là những cách bố trí khác nhau. Một tệp khóa trông giống nhau không làm chúng thay thế được cho nhau, và việc điền các trường TLS-Auth vì hồ sơ khác chứa khóa đã định dạng tạo ra một hồ sơ thất bại theo cách giống như khóa sai.

Dùng ánh xạ plugin khớp với chế độ trong cấu hình máy chủ. Khi chế độ không rõ ràng, hãy hỏi chủ máy chủ thay vì đoán từ dòng đầu tiên của tệp.

Giữ một đường phục hồi khi đường hầm mang phiên quản trị của bạn. Một thay đổi đã lưu không nhất thiết là thay đổi đã áp dụng, và một lần nhập thành công không phải bằng chứng rằng mọi tùy chọn nguồn đều được hỗ trợ. Cả hai khoảng trống đó đều đáng biết trước khi bạn kết nối lại liên kết mà bạn đang làm việc qua.

Bài viết liên quan