NetworkManager có thể giữ mật khẩu VPN để kết nối khởi lên mà không ai phải gõ, và nó có thể hiển thị lại giá trị đó qua trình soạn thảo hoặc qua nmcli --show-secrets. Có ba mô hình sở hữu, và cách hiển thị chỉ là triệu chứng của mô hình bạn đã chọn. Hãy chọn mô hình trước, rồi đặt cờ tương ứng, thay vì giấu một trường bằng phần giữ chỗ sẽ khiến người tiếp theo bối rối.

Ba mô hình sở hữu

Mô hình thứ nhất hỏi mỗi lần. Không có gì được lưu, bí mật chỉ tồn tại trong lúc kích hoạt, và ai khởi động kết nối cũng phải biết mật khẩu. Đây là lựa chọn kém tiện nhất và dễ bảo vệ nhất.

Mô hình thứ hai giao bí mật cho một chùm chìa khóa thuộc về người dùng. Tác nhân mở khóa khi phiên bắt đầu và cung cấp giá trị theo yêu cầu, nhờ đó giữ nó ngoài tệp kết nối nhưng gắn kết nối với phiên của người dùng đó. Từ đó có hai điều kiện: tác nhân phải đang chạy và phải được mở khóa.

Mô hình thứ ba lưu một thông tin xác thực được bảo vệ cho kết nối hệ thống. Nó tồn tại qua các lần khởi động lại và hoạt động trước khi ai đăng nhập, đổi lại giá trị nằm trên đĩa được bảo vệ bằng quyền tệp chứ không phải mã hóa.

Mỗi mô hình đều hợp lý trong bối cảnh phù hợp. Sai lầm là trộn chúng, và đó là cách một máy tính xách tay có bí mật ở hai nơi mà không có câu trả lời rõ ràng nơi nào là chính thức. Hãy ghi lại hồ sơ dùng mô hình nào. Một dòng trong sổ tay của nhóm giúp người tiếp theo khỏi phải phát minh nơi tra cứu thứ tư.

Đọc trạng thái hiện tại trước khi thay đổi

Xem hồ sơ và trạng thái của bí mật với tư cách người dùng quản lý kết nối. Lệnh thứ hai là lệnh cho bạn biết giá trị có thật sự đọc được hay không.

nmcli connection show "Office VPN"
nmcli --show-secrets connection show "Office VPN"
sudo stat -c '%U %a %n' /etc/NetworkManager/system-connections/*.nmconnection

Tệp khóa trong thư mục đó thường thuộc sở hữu của root với chế độ 600. Điều này giữ người dùng thông thường ở ngoài và không giữ root ở ngoài, điều quan trọng khi cùng một máy được chia sẻ hoặc khi bản sao lưu chạy với quyền root.

Quyền tệp là một ranh giới, không phải mã hóa. Ai đọc được tệp với quyền root thì có mật khẩu dưới dạng văn bản thuần. Đó là sự đánh đổi chấp nhận được cho máy chủ không giám sát và tồi cho trạm làm việc dùng chung. Ghi lại một lần sẽ tránh được cuộc tranh luận dài về việc giá trị có được bảo vệ hay không.

Mỗi giá trị cờ làm gì

Bí mật VPN mang thuộc tính flags, và các giá trị không dễ hiểu chỉ từ những con số.

ValueMeaningPractical effect
0No special flagSecret is typically saved with the connection
1Agent-ownedA keyring or secret agent supplies it
2Not savedPrompted at each activation
4Not requiredConnection proceeds without asking

Hành vi thực tế còn phụ thuộc vào plugin và việc có tác nhân đang chạy hay không, nên hãy coi bảng là hợp đồng và hành vi quan sát được là thứ bạn kiểm chứng. Một giá trị chạy được trên một máy để bàn có thể hành xử khác trên máy chủ không có phiên. Chính trong khoảng trống đó là nơi phần lớn phiếu hỗ trợ khó hiểu nằm.

Đặt thuộc tính một cách rõ ràng thay vì xóa một dòng rồi hy vọng. Một cờ thiếu không phải là chính sách, và bản cập nhật gói tiếp theo có thể điền nó bằng thứ bạn không định.

Khớp mô hình với thời điểm kết nối bắt đầu

Nếu kết nối chỉ bắt đầu khi người dùng đã đăng nhập, quyền sở hữu của tác nhân rất phù hợp và giữ bí mật ngoài tệp. Nếu nó bắt đầu khi khởi động, trước khi có bất kỳ phiên nào, tác nhân không thể giúp bạn.

Đó là toàn bộ quyết định cho hầu hết các máy. Điều này cũng giải thích một nhóm báo cáo khó hiểu nơi kết nối hoạt động tương tác nhưng thất bại sau khi khởi động lại. Cờ không bao giờ thay đổi; bối cảnh đã thay đổi.

Với trường hợp không giám sát, câu trả lời thực tế là một tệp hạn chế thuộc sở hữu của root hoặc một nguồn thông tin xác thực đã được phê duyệt. Hãy giữ nó ngoài hồ sơ kết nối nếu hồ sơ đó từng được xuất hoặc sao chép sang máy khác.

Nếu giá trị đã từng lộ ra, hãy thay nó

Thay đổi một cờ không đụng đến bản thân mật khẩu. Một giá trị xuất hiện trong ảnh chụp màn hình, trong lịch sử shell, trong gói gửi cho bộ phận hỗ trợ hoặc trong tệp mà người dùng khác có thể mở phải được coi là đã bị lộ.

Thay nó trên máy chủ, rồi sửa máy khách và kết thúc mọi phiên đã xác thực bằng mật khẩu cũ. Xóa kết nối cục bộ không thu hồi được gì ở phía bên kia, và đó là phần mọi người bỏ sót.

Sau đó đừng đặt mật khẩu trên dòng lệnh nữa. Nó rơi vào lịch sử shell và có thể xuất hiện trong danh sách tiến trình; hãy dùng lời nhắc tương tác hoặc tác nhân.

Kiểm chứng bằng cách kết nối lại

Lặp lại lệnh đã hiển thị bí mật và xác nhận rằng trường không còn được in ra. Sau đó ngắt kết nối và kết nối lại, và khởi động lại nếu kết nối tự khởi động, vì lỗi thú vị chỉ xuất hiện khi bối cảnh phiên thay đổi.

Nếu bí mật vẫn hiện ra, một hồ sơ khác hoặc một tác nhân khác đang cung cấp nó. Hãy kiểm tra kết nối đang hoạt động và chùm chìa khóa thay vì xóa tệp cho đến khi triệu chứng di chuyển.

Bài viết liên quan