OpenVPN đang chờ một yêu cầu mật khẩu của systemd: có nên trả lời?
Lời nhắc mật khẩu của systemd là yêu cầu từ một dịch vụ, không phải phán quyết từ cổng. Hãy xác định bí mật nào được hỏi và ai nên trả lời.
Một thông báo về systemd-tty-ask-password-agent xuất hiện trong terminal, và đường hầm chưa được dựng. Cách hiểu hấp dẫn là VPN đã từ chối mật khẩu và có gì đó đang chờ một sửa chữa. Chính xác hơn, một dịch vụ đã yêu cầu systemd nhập liệu tương tác, và yêu cầu đó chưa được trả lời. Dịch vụ nào đã hỏi và nó muốn bí mật nào là hai câu hỏi bạn có thể giải quyết trước khi gõ bất cứ điều gì.
Hai điều kiện quyết định ai nên trả lời
Điều kiện thứ nhất là bạn có cố ý khởi động phiên bản này hay không. Một yêu cầu đến sau hành động của bạn là của bạn để trả lời, còn yêu cầu xuất hiện mà không có hành động tương ứng thuộc về thứ khác. Điều kiện thứ hai là bí mật đó là xác thực tài khoản hay bảo vệ khóa, vì chúng sống ở những nơi khác nhau và đi qua những đường mã khác nhau. Cả hai câu trả lời đều hiện trong nhật ký nếu bạn nhìn trước khi hành động.
Khi cả hai câu trả lời rõ ràng, quyết định rất đơn giản: trả lời qua đường nhắc được hỗ trợ của chính dịch vụ đó. Khi một trong hai chưa rõ, bước đi đúng là điều tra thay vì gõ mật khẩu vào một lời nhắc mà bạn không thể quy cho ai.
Đó là toàn bộ quy tắc, và đáng nói ra trước các lệnh. Mọi thứ bên dưới đều theo từ đó.
Liệt kê yêu cầu trước khi bạn gõ bất cứ điều gì
Tác nhân có thể liệt kê những gì đang chờ mà không trả lời gì. sudo systemd-tty-ask-password-agent --list in ra các yêu cầu còn tồn, và kết quả đó là bằng chứng bạn cần để nối một lời nhắc với một đơn vị. Hãy đọc nó trước khi cung cấp thông tin đăng nhập, và giữ mô tả yêu cầu ngoài mọi bản dán chẩn đoán công khai.
Đối chiếu danh sách với thao tác bạn đã bắt đầu và với đơn vị sở hữu nó. Nếu không có gì trong danh sách khớp với hành động của bạn, lời nhắc bạn thấy thuộc về dịch vụ khác và không phải việc của bạn để giải quyết. Tên đơn vị trong danh sách là liên kết đáng tin cậy duy nhất giữa một lời nhắc và một dịch vụ.
Không trả lời một yêu cầu mà bạn không thể quy cho ai. Cái giá của việc chờ là sự chậm trễ, còn cái giá của việc trả lời sai lời nhắc là thông tin đăng nhập ở sai chỗ.
Phiên bản thực sự cần bí mật nào?
auth-user-pass liên quan đến xác thực tài khoản với dịch vụ VPN, và không có tệp thông tin đăng nhập thì hành vi được ghi nhận là hỏi trên bảng điều khiển. askpass thay vào đó lấy cụm mật khẩu mở khóa vật liệu khóa được bảo vệ, và làm việc đó trước khi tiến trình chuyển xuống nền. Đó là những bí mật khác nhau với vòng đời khác nhau.
Định dạng tệp cũng khác nhau. Dạng tài khoản mong đợi một dòng tên người dùng và một dòng mật khẩu, trong khi tệp cụm mật khẩu của khóa đọc dòng đầu tiên làm mật khẩu của nó. Sao chép công thức tệp thông tin đăng nhập từ vai trò kia thường tạo ra một lời nhắc nữa thay vì giải pháp. Tệp có hình dạng sai còn tệ hơn không có tệp, vì thất bại chuyển sang một nơi không ai trông coi.
Kiểm tra xem phiên bản dùng chỉ thị nào trước khi quyết định gõ gì. Tên chỉ thị cho bạn biết lời nhắc dành cho bí mật nào.
--query làm gì mà --list không làm
--query xử lý mọi yêu cầu đang chờ trên terminal gọi nó, đây là hành động rộng hơn nhiều so với trả lời một lời nhắc. Nó không phải bộ chọn của OpenVPN, và trên một máy bận rộn nó có thể trả lời các yêu cầu thuộc đơn vị khác. Chế độ theo dõi còn rộng hơn, vì nó tiếp tục xử lý yêu cầu ngay khi chúng đến.
Hãy dùng cơ chế hẹp nhất còn hoạt động. Với một dịch vụ, luồng nhắc của chính dịch vụ đó hẹp hơn một tác nhân toàn cục, và nó giữ câu trả lời gắn với đơn vị đã hỏi.
Biến một yêu cầu một lần thành tác nhân toàn cục không giám sát chỉ vì một thông báo xuất hiện một lần là cách một phiền toái tạm thời trở thành thiết kế vĩnh viễn. Sự thận trọng tương tự cũng áp dụng cho việc vô hiệu hóa các đơn vị thông báo mật khẩu trên toàn máy chủ.
Quyết định, rồi ghi lại lựa chọn
Với triển khai không giám sát, hãy thống nhất với chủ sở hữu kết nối về nguồn thông tin đăng nhập, quyền của tệp và lịch gia hạn. Yếu tố thứ hai tương tác có thể cần một người hoặc một danh tính dịch vụ chuyên dụng. Việc chặn lời nhắc không tạo ra xác thực đó, và việc gỡ auth-user-pass chỉ làm hỏng dịch vụ cần nó.
Sau tương tác, hãy xem cùng phiên bản cho sự kiện tiếp theo của nó và kiểm thử tài nguyên riêng tư. Nếu không còn gì đang chờ, hãy quay lại trạng thái của phiên bản thay vì khởi động mọi đơn vị OpenVPN trên máy chủ.