Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Định cấu hình kết nối VPN L2TP / IPSec Đằng sau NAT, Mã lỗi VPN 809

Do vô hiệu hóa hỗ trợ PPTP VPN trong iOS, một trong những khách hàng của tôi đã quyết định định cấu hình lại máy chủ VPN chạy Windows Server 2012 R2 từ PPTP thành L2TP / IPSec. Máy khách VPN nội bộ từ bên trong mạng LAN kết nối với máy chủ VPN mà không gặp bất kỳ sự cố nào, tuy nhiên máy khách Windows bên ngoài gặp lỗi 809 khi cố gắng thiết lập kết nối với máy chủ L2TP VPN:

Không thể kết nối với L2TP-IPsec-VPN-Server.hostname

Không thể thiết lập kết nối mạng giữa máy tính của bạn và máy chủ VPN vì máy chủ từ xa không phản hồi. Điều này có thể là do một trong các thiết bị mạng (ví dụ:tường lửa, NAT, bộ định tuyến, v.v.) giữa máy tính của bạn và máy chủ từ xa không được định cấu hình để cho phép kết nối VPN. Vui lòng liên hệ với Quản trị viên hoặc nhà cung cấp dịch vụ của bạn để xác định thiết bị nào có thể gây ra sự cố.

Định cấu hình kết nối VPN L2TP / IPSec Đằng sau NAT, Mã lỗi VPN 809

Trong các phiên bản Windows khác, lỗi kết nối 800 , 794 hoặc 809 có thể chỉ ra cùng một vấn đề.

Cần lưu ý rằng máy chủ VPN ở sau NAT và bộ định tuyến được định cấu hình để chuyển tiếp các cổng L2TP:

  • UDP 1701 - Giao thức chuyển tiếp lớp 2 (L2F) &giao thức đường hầm lớp 2 (L2TP)
  • UDP 500
  • UDP 4500 NAT-T - Truyền tải trình biên dịch địa chỉ mạng IPSec
  • Giao thức 50 ESP

Các cổng này cũng được mở trong quy tắc Tường lửa của Windows cho kết nối VPN. Những, cấu hình cổ điển được sử dụng. Máy khách Windows VPN tích hợp được sử dụng để kết nối.

Nếu bạn kết nối với cùng một máy chủ VPN qua PPTP, kết nối đã được thiết lập thành công.

Lỗi VPN 809 cho L2TP / IPSec trên Windows sau NAT

Hóa ra, sự cố đã được biết đến và được mô tả trong bài viết https://support.microsoft.com/en-us/kb/926179. Ứng dụng khách VPN tích hợp sẵn của Windows không hỗ trợ các kết nối L2TP / IPsec theo mặc định thông qua NAT. Điều này là do IPsec sử dụng ESP (Đóng gói Tải trọng bảo mật) để mã hóa các gói và ESP không hỗ trợ PAT (Bản dịch địa chỉ cảng). Nếu bạn muốn sử dụng IPSec để liên lạc, Microsoft khuyên bạn nên sử dụng địa chỉ IP công cộng trên máy chủ VPN.

Nhưng cũng có một cách giải quyết. Bạn có thể khắc phục nhược điểm này bằng cách bật hỗ trợ cho NAT-T giao thức, cho phép bạn đóng gói các gói ESP 50 trong các gói UDP trên cổng 4500. NAT-T được bật theo mặc định trong hầu hết các hệ điều hành (iOS, Android, Linux) ngoại trừ Windows.

Nếu máy chủ L2TP / IPsec VPN nằm sau thiết bị NAT, để kết nối các máy khách bên ngoài thông qua NAT một cách chính xác, bạn phải thực hiện một số thay đổi đối với sổ đăng ký cả trên máy chủ và phía máy khách để cho phép đóng gói gói UDP cho L2TP và NAT-T hỗ trợ trong IPsec.

  • Mở Trình chỉnh sửa sổ đăng ký (regedit.exe ) và đi tới khóa đăng ký sau:
    • Windows 10 / 8.1 / Vista và Windows Server 2016 / 2012R2 / 2008R2 - HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PolicyAgent
    • Windows XP / Windows Server 2003 - HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ IPSec
  • Tạo DWORD tham số có tên AssumeUDPEncapsulationContextOnSendRule và giá trị 2; Định cấu hình kết nối VPN L2TP / IPSec Đằng sau NAT, Mã lỗi VPN 809 Lưu ý . Giá trị giả định có thể có củaUDPEncapsulationContextOnSendRule là:
    • 0 - (một giá trị mặc định) gợi ý rằng máy chủ được kết nối với Internet mà không cần NAT;
    • 1 - máy chủ VPN nằm sau thiết bị NAT;
    • 2 - cả máy chủ VPN và ứng dụng khách đều yêu cầu NAT.
  • Chỉ cần khởi động lại máy tính của bạn và đảm bảo rằng đường dẫn VPN được thiết lập thành công
[alert] Nếu cả máy chủ và máy khách Windows VPN đều yêu cầu NAT, bạn cần thay đổi cài đặt này trên cả hai thiết bị.

Ngoài ra, bạn có thể sử dụng lệnh ghép ngắn PowerShell để thực hiện các thay đổi đối với sổ đăng ký:

Set-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Services\PolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Type DWORD -Value 2 –Force;

Sau khi bật hỗ trợ NAT-T, bạn sẽ có thể kết nối thành công với máy chủ VPN từ máy khách thông qua NAT (bao gồm NAT kép).

Trong một số trường hợp, để VPN hoạt động bình thường, bạn cần bật quy tắc tường lửa bổ sung cho TCP 1701 (trong một số triển khai L2TP, cổng này được sử dụng cùng với UDP 1701). NAT-T không hoạt động chính xác trong các bản dựng Windows 10 trước đó, ví dụ:10240, 1511, 1607. Nếu bạn có phiên bản Windows cũ hơn, chúng tôi khuyên bạn nên nâng cấp bản dựng Windows 10.

Nhiều kết nối VPN L2TP từ cùng một mạng LAN

Có một lỗi VPN thú vị khác. Nếu mạng cục bộ của bạn có nhiều máy tính Windows, bạn không thể thiết lập nhiều kết nối đồng thời với máy chủ VPN L2TP / IPSec bên ngoài. Nếu bạn cố gắng kết nối với cùng một máy chủ VPN từ một máy tính khác (với một đường hầm VPN đang hoạt động từ thiết bị khác), mã lỗi 809 hoặc 789 sẽ xuất hiện:

Error 789: The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remove computer.
Điều thú vị là sự cố này chỉ xảy ra trên các thiết bị Windows. Trên các thiết bị Linux / MacOS / Android trên cùng một mạng cục bộ, không có vấn đề nào như vậy. Bạn có thể dễ dàng kết nối với máy chủ VPN L2TP từ nhiều thiết bị cùng một lúc.

Theo TechNet, vấn đề liên quan đến việc triển khai không chính xác ứng dụng khách L2TP / IPSec trên Windows (không được khắc phục trong nhiều năm).

Để khắc phục lỗi này, bạn cần thay đổi hai tham số đăng ký trong HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ RasMan \ Parameters khóa đăng ký và khởi động lại máy tính của bạn:

  • AllowL2TPWeakCrypto - thay đổi thành 00000001 (cho phép các thuật toán mã hóa yếu, đối với L2TP / IPSec, các thuật toán MD5 và DES được sử dụng);
  • CấmIPSec - thay đổi thành 00000000 (bật mã hóa IPsec, tính năng này thường bị vô hiệu hóa bởi một số ứng dụng khách VPN hoặc công cụ hệ thống).

Định cấu hình kết nối VPN L2TP / IPSec Đằng sau NAT, Mã lỗi VPN 809

Chạy lệnh sau để thay đổi áp dụng các thay đổi đăng ký này:

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters" /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters" /v ProhibitIpSec /t REG_DWORD /d 0 /f

Điều này cho phép hỗ trợ các kết nối VPN L2TP / IPSec đồng thời trên Windows thông qua địa chỉ IP công cộng được chia sẻ (hoạt động trên tất cả các phiên bản từ Windows XP đến Windows 10).