Mặc dù hỗ trợ OS Windows XP đã kết thúc hơn 4 năm trước, nhiều khách hàng tiếp tục sử dụng OS này, và dường như không có gì sẽ thay đổi mạnh mẽ trong tương lai gần :(. Gần đây tôi phát hiện một vấn đề: client RDP Windows XP không thể kết nối qua Remote Desktop đến trang trại Remote Desktop Services mới triển khai trên Windows Server 2012 R2. Vấn đề tương tự xảy ra khi kết nối qua RDP từ Windows XP đến Windows 10 1803.
Không thể kết nối Remote Desktop từ Windows XP đến Windows Server 2016/2012R2 và Windows 10
Người dùng Windows XP phàn nàn về các lỗi RDP client sau:
Because of a security error, the client could not connect to the remote computer. Verify that you are logged on to the network, and then try reconnecting again
The remote session was disconnected because the remote computer received an invalid licensing message from this computer
The remote computer requires Network Level Authentication, which your computer does not support. For assistance, contact your system administrator or technical support.

Để giải quyết vấn đề này, hãy kiểm tra xem phiên bản RDP client mới nhất có được cài đặt trên máy tính chạy Windows XP hay không. Hiện tại, phiên bản RDP client tối đa có thể cài đặt trên Windows XP là RDP 7.0 (KB969084 – https://blogs.msdn.microsoft.com/scstr/2012/03/16/download-remote-desktop-client-rdc-7-0-or-7-1-download-remote-desktop-protocol-rdp-7-0-or-7-1/). Bạn chỉ có thể cài đặt bản cập nhật này trên Windows XP SP3. Cài đặt phiên bản RDP client 8.0 hoặc mới hơn không được hỗ trợ trên Windows XP. Vấn đề được giải quyết sau khi cài đặt bản cập nhật này cho một nửa client XP. Nửa còn lại của client vẫn gặp vấn đề….
Vô hiệu hóa RDP Network Level Authentication (NLA) trên RDS Windows Server 2016/2012 R2
Sau khi nghiên cứu các vấn đề của máy chủ RDS dựa trên Windows 2012 R2, chúng tôi đã phát hiện rằng Windows Server 2012 (và mới hơn) yêu cầu hỗ trợ bắt buộc NLA (Network Level Authentication). Nếu client không hỗ trợ NLA, nó sẽ không thể kết nối đến máy chủ RDS. Tương tự, NLA được bật mặc định khi bạn bật Remote Desktop trong Windows 10.
Có hai kết luận từ trên – để cho phép các client WinXP còn lại kết nối đến trang trại RDS trên Windows Server 2016/2012 R2 hoặc Windows 10 qua RDP, bạn phải:
- Vô hiệu hóa kiểm tra NLA trên máy chủ Remote Desktop Services 2012 R2/2016 hoặc trạm làm việc Windows 10;
- Hoặc bật hỗ trợ NLA trên client Windows XP.
Để vô hiệu hóa sử dụng bắt buộc NLA bởi client trên Windows Server 2012 R2 RDS, mở console Server Manager và đi đến Remote Desktop Services -> Collections -> QuickSessionCollection, sau đó chọn Tasks -> Edit Properties, nhấp Security và bỏ tích Allow connections only from computers running Remote Desktop with Network Level Authentication.

Trên Windows 10, bạn có thể vô hiệu hóa Network Level Authentication trong thuộc tính hệ thống (System -> Remote Settings). Bỏ tích "Allow connections only from computers running Remote Desktop with Network Level Authentication (recommended)".

Tất nhiên, bạn cần hiểu rằng vô hiệu hóa NLA ở cấp độ server làm giảm bảo mật hệ thống và nói chung không được khuyến khích. Cách thứ hai là ưu tiên hơn.
Bật NLA trên client Windows XP SP3
Bạn cần cài đặt Service Pack 3 trên Windows XP để hoạt động đúng như một client RDP. Nếu không, bạn phải tải xuống và cài đặt bản cập nhật này. Service Pack 3 là yêu cầu bắt buộc để nâng cấp RDP client từ phiên bản 6.1 lên 7.0 và hỗ trợ tất cả các thành phần cần thiết, bao gồm Credential Security Service Provider (CredSS), được mô tả bên dưới.
Nếu không có CredSSP và hỗ trợ NLA cho kết nối RDP từ Windows XP đến các phiên bản Windows mới hơn, sẽ có lỗi:
An authentication error has occurred, 0x80090327

Hỗ trợ NLA xuất hiện trong Windows XP từ SP3, nhưng nó bị tắt mặc định. Bạn có thể bật hỗ trợ xác thực NLA và CredSSP chỉ qua registry. Để làm điều đó:
- Trong khóa registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders chỉnh sửa giá trị thuộc tính SecurityProviders bằng cách thêm credssp.dll vào cuối (cách khỏi giá trị hiện tại bằng dấu phẩy);

- Sau đó trong khóa HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa thêm dòng tspkg vào giá trị thuộc tính Security Packages;

- Sau khi thực hiện các thay đổi này, khởi động lại máy tính.
Sau khi thực hiện các hành động này, máy tính với Windows XP SP3 nên dễ dàng kết nối đến trang trại terminal trên Windows Server 2016 / 2012 hoặc Windows qua Remote Desktop. Tuy nhiên, bạn không thể lưu mật khẩu cho kết nối RDP trên client Windows XP (bạn phải nhập mật khẩu mỗi khi kết nối).
Mẹo. Bên cạnh đó, xuất hiện vấn đề khác với in ấn qua Easy Print. Để máy tính Windows XP trên RDS 2012 in được bằng Easy Print, client phải đáp ứng các yêu cầu sau:
- OS – Windows XP SP3 hoặc mới hơn;
- Phiên bản RDP client – 6.1 hoặc mới hơn;
- .NET Framework 3.5 (Cách kiểm tra phiên bản .Net Framework đã cài đặt).
Lỗi: CredSSP Encryption Oracle Remediation
Năm 2018, một lỗ hổng nghiêm trọng được tìm thấy trong giao thức CredSSP (bản tin CVE-2018-0886), được sửa trong bản cập nhật bảo mật Microsoft. Vào tháng 5 năm 2018, Microsoft phát hành bản cập nhật bổ sung cấm client kết nối đến máy tính và máy chủ RDP với phiên bản CredSSP dễ bị tấn công (xem bài: https://woshub.com/unable-connect-rdp-credssp-encryption-oracle-remediation/). Sau khi cài đặt bản cập nhật này, khi bạn kết nối RDP đến máy tính từ xa không có bản cập nhật này, bạn nhận được lỗi: An authentication error has occurred. The function requested is not supported.
Do Microsoft không phát hành bản cập nhật bảo mật cho Windows XP và Windows Server 2003, bạn sẽ không thể kết nối đến các phiên bản Windows được hỗ trợ từ các hệ điều hành lỗi thời này.
Để bật kết nối RDP từ Windows XP đến Windows 10/8.1/7 và Windows Server 2012/2012 R2/2012/2008 R2 đã cập nhật, bạn phải bật chính sách Encryption Oracle Remediation phía máy chủ RDP (Computer Configuration -> Administrative Templates -> System -> Credentials Delegation). Thay đổi giá trị chính sách thành Mitigated, điều này không an toàn như bạn hiểu.
Mẹo. Cho Windows XP (phiên bản được hỗ trợ gọi là Windows Embedded POSReady 2009) có bản cập nhật riêng cho lỗ hổng thực thi mã từ xa CredSSP – https://support.microsoft.com/en-us/help/4056564/security-update-for-vulnerabilities-in-windows-server-2008 (WindowsXP-KB4056564-x86-Embedded-ENU.exe) và về mặt lý thuyết có thể cài đặt bản cập nhật cho Embedded POSReady trên Windows XP x86 thông thường và Windows Server 2003.