“Xác thực thất bại” có thể chỉ chứng chỉ máy chủ, khóa chia sẻ trước của máy hoặc mật khẩu người dùng. Ý nghĩa là cái nào phụ thuộc vào giao thức, vì mỗi giao thức định nghĩa một bộ bí mật khác nhau. Đặt lại sai cái thì lỗi vẫn giữ nguyên. Lối ra là xác định giao thức cần bao nhiêu bằng chứng trước khi sửa bất cứ thứ gì.

Hai bằng chứng chỉ về hai hướng ngược nhau

Một đường hầm phải trả lời liệu nó đã đến đúng cổng vào, và riêng biệt là người dùng là ai. Bằng chứng cổng vào ở cấp máy: chứng chỉ máy chủ, khóa chia sẻ trước hoặc khóa công khai tĩnh. Bằng chứng người dùng ở cấp người: mật khẩu, token, chứng chỉ máy khách, hoặc không có gì. Đó là hai hướng tin cậy ngược nhau và chúng dùng vật liệu khác nhau.

IKEv2 thực hiện bằng chứng cổng vào bên trong IKE_AUTH và, khi dùng EAP, chạy bằng chứng người dùng trong một trao đổi riêng sau đó. đặc tả IKEv2 giữ chúng thành các phần riêng biệt, đó là gợi ý mạnh về nơi cần tìm khi một thông điệp bao trùm cả hai vòng.

Đọc giai đoạn, không đọc thông điệp

Máy khách hiển thị cùng một chuỗi lỗi bất kể giai đoạn nào thất bại, nên bản thân chuỗi gần như không mang thông tin. Thứ mang thông tin là trạng thái có thể kiểm tra ở mỗi giai đoạn: liệu có liên kết, liệu trao đổi người dùng đã bắt đầu và liệu máy khách có đề xuất phương thức mà cổng vào muốn. Bảng sắp xếp các giai đoạn theo cách đó, không theo tên giao thức.

Stage that failedEvidence you can inspectWhat a password change cannot fix
The machine proofno security association in the state lista mismatched pre-shared key or an untrusted chain
The user proofan association is up while PPP or EAP reports failurean expired token, a locked account, a missing client key
The client's method supportthe client offers no method the gateway acceptsa client without the required EAP or key material
The server's policythe gateway rejects before any user exchange startsa policy that requires a certificate the profile lacks

Chỉ hàng thứ hai liên quan đến thông tin đăng nhập mà người dùng có thể gõ lại. Ba hàng còn lại là sự thật cấu hình, và chính sự không khớp đó là lý do nhiều báo cáo kiểu này kết thúc bằng một lần đặt lại mật khẩu không thay đổi gì. Hãy đọc hàng khớp với bằng chứng của bạn trước khi chạm vào một trường.

Một giao thức hai bí mật để lộ bài

L2TP trên IPsec làm con số hiện rõ, vì hai lần kiểm tra diễn ra trong các tiến trình khác nhau. Lớp IPsec phải dựng lên trước bằng khóa chia sẻ trước hoặc chứng chỉ, và chỉ khi đó PPP bên trong mới thử đăng nhập người dùng.

Khi bí mật của máy sai, không có liên kết nào hình thành và thông tin người dùng không bao giờ được thử. Khi bí mật của máy đúng mà bí mật người dùng sai, liên kết tồn tại và PPP từ chối đăng nhập sau khi đường hầm đã dựng. Cả hai đều tạo cùng một thông báo trên màn hình từ hai sự kiện khác nhau.

sudo swanctl --list-sas
sudo ip xfrm state list
sudo journalctl -u xl2tpd -n 50 --no-pager

Danh sách liên kết rỗng loại bỏ lớp người dùng ngay lập tức, nên hãy kiểm tra nó trước mật khẩu. Một liên kết đã thiết lập với lỗi PPP lặp lại chỉ về hướng ngược lại, tức lớp người dùng hoặc giao thức xác thực bên trong nó. Không kết luận nào trong số đó có được từ văn bản lỗi của máy khách.

Truy cập chỉ bằng mật khẩu thực sự phụ thuộc vào gì

Truy cập chỉ bằng mật khẩu là bình thường với L2TP, PPTP, SSTP và IKEv2 dùng EAP. WireGuard hoàn toàn không có tùy chọn đó, vì các peer của nó là khóa chứ không phải người dùng. Với OpenVPN, câu trả lời đến từ yêu cầu chứng chỉ máy khách của máy chủ: một cổng vào đòi cả chứng chỉ lẫn mật khẩu sẽ tiếp tục từ chối máy khách chỉ có mật khẩu, bất kể gõ gì vào trường.

Bạn cần thành phần nào thì suy ra từ cùng câu trả lời đó. Đăng nhập bằng mật khẩu dưới IKEv2 cần máy khách nói được EAP, trong khi đăng nhập bằng chứng chỉ cần khóa riêng của máy khách và chuỗi của máy chủ. Cài sai cái thì lỗi được đọc như lỗi thông tin đăng nhập, dù chính phương thức xác thực mới là thứ thiếu.

Đổi một thứ, rồi kiểm tra lại

Trước hết xác lập ba sự thật: giao thức nào đang chạy, nó định nghĩa bao nhiêu bí mật và cái nào thuộc về máy chứ không phải người dùng. Máy móc thất bại ở giai đoạn đầu và con người ở giai đoạn hai, và nhầm lẫn hai điều đó chính là toàn bộ vấn đề này.

Sau đó đổi đúng một thứ và kiểm tra lại từ cùng máy khách. Kỷ luật đó biến một thất bại khó hiểu thành bản sửa mà bạn có thể mô tả cho người tiếp theo, hữu ích hơn một kết nối đang chạy mà không ai giải thích được.

Bài viết liên quan