Mật khẩu VPN phải sống ở đâu đó: trong hồ sơ kết nối, trong vòng khóa mà màn hình nền mở khóa, hoặc không ở đâu cả. NetworkManager gọi lựa chọn đó là cờ bí mật, và chọn sai là lý do một kết nối hoạt động sau khi đăng nhập nhưng thất bại khi chạy như dịch vụ. Cờ là một dòng cấu hình, và nó quyết định bạn nhận được kết quả nào trong ba kết quả đó.

Ba cờ bao phủ gần như mọi trường hợp, và quyết định là về thời điểm kết nối bắt đầu.

Ba cờ bí mật, ba hành vi

Cờ 0 nghĩa là bí mật được lưu cùng kết nối, trong bất kỳ kho nào giữ hồ sơ. Cờ 1 biến nó thành tài sản của tác nhân: bí mật đến từ một tác nhân bí mật như vòng khóa của màn hình nền, và NetworkManager hỏi nó khi kích hoạt. Cờ 2 nghĩa là không lưu, nên bí mật không bao giờ được ghi và phải cung cấp mỗi lần. Cờ 4 đánh dấu một bí mật là không cần thiết, cho những kết nối thực sự không cần bí mật nào.

FlagWhere it livesWorks unattended
0 savedConnection profileYes, if the store is readable
1 agent-ownedSecret agent or keyringOnly if that agent is available
2 not-savedNowhereNo

Đặt cờ theo từng bí mật chứ không theo từng kết nối. Một kết nối có thể có mật khẩu thuộc tác nhân và cụm mật khẩu khóa riêng đã lưu.

Quyết định dựa trên thời điểm kết nối bắt đầu

Nếu người dùng đã đăng nhập khởi động kết nối, thuộc tác nhân là mặc định hợp lý: vòng khóa được mở bằng đăng nhập và bí mật không bao giờ nằm trong tệp. Nếu kết nối phải dựng lên trước khi ai đó đăng nhập, thuộc tác nhân là lựa chọn sai, vì không có vòng khóa phiên nào để mở.

Đó là toàn bộ quyết định. Mọi thứ khác là một biến thể của nó.

Với dịch vụ chạy trước đăng nhập, mô hình được hỗ trợ là kho ở cấp hệ thống hoặc tệp khóa được bảo vệ, và quyền của tệp trở thành biện pháp bảo vệ. Đừng giải quyết vấn đề bằng cách dán mật khẩu vào một script shell chạy khi khởi động.

Vòng khóa cho gì và không cho gì

Vòng khóa giữ bí mật ngoài hồ sơ kết nối và gắn nó với phiên người dùng. Nó không làm bí mật sẵn có cho dịch vụ không có phiên, và không mã hóa gì trên đường truyền. Đó là những thuộc tính riêng biệt mà người ta thường gộp lại. Thứ nó thực sự mua là bán kính thiệt hại nhỏ hơn khi tệp hồ sơ rò rỉ.

Khóa riêng mà hồ sơ tham chiếu cần quyền của chính nó, bất kể mật khẩu sống ở đâu.

Chẩn đoán mà không làm tràn bí mật

Tên kết nối, UUID và cờ thường đủ để giải thích một sự cố. nmcli connection show liệt kê hồ sơ, và các cờ bí mật cho biết mật khẩu lẽ ra phải đến từ đâu.

Tránh --show-secrets trong phiếu và trò chuyện. Một khi đã dán, nó là thông tin xác thực trong một bản ghi.

Lưu trữ không phải thu hồi

Xóa một bí mật khỏi một vòng khóa không làm vô hiệu thông tin xác thực mà nhà vận hành từ xa đã chấp nhận. Thu hồi tài khoản là hành động phía máy chủ, và lưu trữ cục bộ là vấn đề riêng với chủ sở hữu riêng.

Hãy quyết định cả hai trước sự cố, không phải trong lúc xảy ra. Kết nối người dùng tương tác và dịch vụ trước đăng nhập cần câu trả lời khác nhau, và một script shell dùng chung không phải cái nào trong hai. Tài liệu của NetworkManager về các cờ bí mật liệt kê đầy đủ các giá trị.

Bài viết liên quan