Hãy đọc cụm từ đó như một phát biểu về một đối tượng chia sẻ và một con trỏ hàm, không phải về mật khẩu. Cùng những từ đó có thể đến từ một OpenVPN trình cắm, từ một ngăn xếp PAM được nạp cho một dịch vụ hoặc từ bên trong daemon RADIUS, và đó là ba cuộc điều tra khác nhau. Hãy xác định tiến trình trước.

Các kiểm tra dưới đây giả định thông báo xuất hiện qua một tích hợp Linux-PAM khi đăng nhập VPN. Nếu nó đến từ cấu hình của chính máy chủ RADIUS, hãy bắt đầu từ bằng chứng của daemon đó.

Nêu tên tiến trình trước khi nêu tên gói

Ba thành phần được gọi là mô-đun và không thành phần nào thay thế được cho nhau. Một trình cắm xác thực OpenVPN được daemon VPN nạp và nó triển khai giao diện gọi lại của daemon đó. Mô-đun PAM là một đối tượng chia sẻ mà libpam nạp cho một dịch vụ có tên, và triển khai các điểm vào như pam_sm_authenticate. Mô-đun FreeRADIUS là một phần trong cấu hình của chính daemon đó. Một thông báo với cùng những từ có thể đến từ bất kỳ thành phần nào trong ba, vì vậy câu hỏi đầu tiên là dòng nhật ký nào đã tạo ra nó.

Đối chiếu dấu thời gian của một lần thử thất bại giữa nhật ký VPN và nhật ký xác thực của hệ thống, rồi đọc các dòng trước phần tóm tắt. Thông báo cụ thể của bộ nạp thường đã có ở đó.

Đọc lỗi nạp, rồi đến điểm vào

PAM báo mô-đun không xác định khi nó không thể nạp đối tượng chia sẻ đã chọn, hoặc khi đối tượng đã nạp không cung cấp hàm mà mục ngăn xếp đó yêu cầu. Đây là những cách sửa khác nhau: cách thứ nhất là vấn đề đường dẫn, đóng gói hoặc ABI, cách thứ hai là điểm vào không khớp. Một dòng xác thực cần pam_sm_authenticate trong khi một dòng tài khoản cần pam_sm_acct_mgmt, và một thư viện chỉ triển khai một trong hai sẽ thất bại ở cái kia, như mã của bộ điều phối cho thấy. Việc tìm thấy tệp trên đĩa không chứng minh cả hai điều.

Lấy một thư viện có tên tương tự từ bản phân phối hoặc kiến trúc CPU khác không phải là cách sửa, và nó có thể để một tiến trình nạp một mô-đun chưa từng được thử với libpam của nó. Hãy kiểm tra gói sở hữu đường dẫn dự định và kiến trúc thực của tệp trước khi thay đổi bất cứ điều gì.

Giữ lại các bảo đảm mà ngăn xếp đưa ra

Cách nhanh nhất để làm im lặng lỗi này cũng là cách tệ nhất: đánh dấu một mô-đun bắt buộc là tùy chọn, xóa giai đoạn tài khoản, hoặc chèn một quyền cho phép vô điều kiện. Mỗi cách trong số đó biến một kiểm tra thất bại thành một kiểm tra thiếu, và sau đó đăng nhập thành công vì những lý do mà không ai định trước. Việc đặt lại mật khẩu và thay đổi bí mật chung cũng không cung cấp hàm còn thiếu, vì lỗi xảy ra trước khi bất kỳ thông tin xác thực nào tới được backend.

Một ngăn xếp nhiều mô-đun có thể đã chạy một backend khác trước mục thất bại, nên lỗi này không chứng minh rằng không có yêu cầu RADIUS nào được gửi đi.

Hãy xác minh việc đăng nhập, không phải mô-đun

Sau khi sửa sự không khớp, hãy thử đường vào thực tế. Một tài khoản hợp lệ phải qua được, thông tin xác thực không hợp lệ vẫn phải thất bại, và một tài khoản bị cấm vẫn phải bị từ chối. Cũng hãy xác nhận rằng mọi yêu cầu về chứng chỉ hoặc yếu tố bổ sung vẫn được áp dụng, vì một ngăn xếp đã sửa mà bỏ qua một giai đoạn trông giống như thành công từ phía máy khách.

Một mô-đun nạp sạch là tiến bộ, không phải một bài kiểm tra đã xong.

Ghi lại tên dịch vụ, các tệp chính sách và các điểm vào đã liên quan, cùng với lần thử duy nhất mà bạn dùng làm bằng chứng. Chính bản ghi đó biến lần xuất hiện sau thành một tra cứu chứ không phải một bài tập khảo cổ.

Bài viết liên quan