Kết nối SSTP thất bại theo hai cách trông giống nhau từ chỗ người dùng ngồi, và cách sửa của mỗi trường hợp nằm ở một tầng khác nhau. Hết thời gian nghĩa là một trao đổi bắt buộc không bao giờ hoàn tất; lỗi chứng chỉ nghĩa là vật liệu danh tính đã đến và bị từ chối. Coi trường hợp thứ hai như trường hợp thứ nhất sẽ đưa bạn đến những tường lửa và mật khẩu chưa từng là vấn đề. Bằng chứng phân biệt nằm trong nhật ký của chính máy khách, nếu bạn đọc nó trước khi thay đổi bất cứ điều gì.

Hai thất bại, hai trao đổi khác nhau

SSTP mang một đường hầm bên trong phiên có dạng HTTPS, nhờ đó nó sống sót trong các mạng chỉ cho phép cổng 443. Máy khách hoàn tất bắt tay TLS, gửi yêu cầu HTTP bằng phương thức riêng của giao thức, rồi đường hầm chạy trong dòng đó. Thất bại ở bất kỳ bước nào trong số đó đều dừng kết nối, và chỉ những bước sau mới liên quan đến thông tin đăng nhập.

Thứ tự đó chính là chẩn đoán. Nếu bắt tay TLS không bao giờ hoàn tất, không có thông tin đăng nhập nào được gửi, nên đặt lại mật khẩu không thể giúp. Nếu bắt tay hoàn tất rồi khựng lại, danh tính đã được chấp nhận và có gì đó trên đường đi của yêu cầu đã từ chối nó. Nếu bắt tay thất bại với thông báo kiểm tra, máy chủ đã trả lời và máy khách không thích điều mình nghe. Ba kết cục, ba tầng.

Dòng nhật ký thường cho biết bạn đang ở trường hợp nào trong ba, nên đáng để ghi lại trước lần thay đổi đầu tiên.

Hết thời gian nghĩa là một giai đoạn không bao giờ hoàn tất

Hãy bắt đầu với phân giải tên và khả năng tiếp cận TCP, vì hết thời gian ở đó trông giống hệt hết thời gian về sau. Một công cụ kiểm tra cổng báo 443 mở chỉ chứng minh rằng có trình lắng nghe đã nhận kết nối, và không hơn thế.

Nghi phạm tiếp theo là đường đi chứ không phải máy chủ. Proxy và tường lửa hiểu ứng dụng đôi khi từ chối phương thức yêu cầu mà SSTP dùng, hoặc bỏ một dòng vẫn mở hàng giờ, và cả hai hành vi đều trông như hết thời gian từ phía máy khách. Một trang HTTPS thông thường do cùng máy chủ phục vụ tải hoàn hảo trong khi phương thức đường hầm bị từ chối, nên việc duyệt tới điểm cuối chứng minh được rất ít. Hãy thử từ một mạng không có proxy để tách hai trường hợp đó.

Test-NetConnection vpn.example.com -Port 443
netsh http show sslcert
Get-WinEvent -LogName 'Microsoft-Windows-RasSstp/Operational' -MaxEvents 20

Hết thời gian trước bất kỳ phản hồi nào của đối phương không nói gì về tài khoản, và đổi mật khẩu lúc đó chỉ thêm một biến số.

Lỗi chứng chỉ nghĩa là danh tính đã bị từ chối

Ở đây máy chủ thực sự đã trả lời, nên mạng hoạt động và câu hỏi chuyển sang danh tính. Hãy so sánh tên mà máy khách quay số với những tên mà chứng chỉ thực sự khẳng định, rồi kiểm tra ngày hiệu lực và chuỗi phát hành.

Một CA riêng mà máy khách không tin tưởng tạo ra cùng loại lỗi như chứng chỉ hết hạn, và một đồng hồ lệch hàng giờ cũng vậy. Quay số tới địa chỉ thô tạo ra sự không khớp mới, vì chứng chỉ khẳng định tên chứ không phải địa chỉ. Trong một triển khai được quản lý, hãy lấy cấu hình tin cậy dự kiến từ quản trị viên của nó thay vì chấp nhận một gốc thay thế do trang lỗi đề nghị. Việc kiểm tra vẫn bật trong khi bạn sửa nguyên nhân.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName
w32tm /query /status

Hãy giữ nguyên giai đoạn TLS đã thành công sau khi nó qua, vì việc hoàn tác nó sau này sẽ che đi thay đổi nào thực sự đã sửa đường hầm.

Nơi hai trường hợp bị lẫn

Cả hai thất bại đều xuất hiện như một kết nối không lên, và cả hai đến sau khi người dùng đã thay đổi một thứ không liên quan. Chính sự trùng hợp đó khiến cách sửa sai trông hợp lý trong một lúc.

Hai thói quen giữ chúng tách nhau. Ghi lại nhật ký máy khách trước khi chạm vào cấu hình, để trạng thái đầu tiên được giữ lại. Đổi một tầng mỗi lần thử, để kết quả tiếp theo thuộc về một biến số đã biết. Công cụ kiểm tra cổng và trình duyệt là quan sát một phần chứ không phải toàn bộ trình tự, và không cái nào thay thế báo cáo của chính máy khách. Không thói quen nào tốn kém, và cả hai đều rút ngắn cuộc điều tra.

Câu hỏi về chứng chỉ và câu hỏi về khả năng tiếp cận được ghi tài liệu riêng vì một lý do.

Kiểm tra lại bằng máy khách thật, rồi đi vào bên trong

Khi bản sửa cụ thể đã vào vị trí, hãy thử lại bằng máy khách SSTP thật và hồ sơ thật, không phải bằng tab trình duyệt.

rasdial "Corp SSTP" /disconnect
rasdial "Corp SSTP" user '*'
Get-VpnConnection -Name "Corp SSTP" | Select-Object ServerAddress, TunnelType, AuthenticationMethod

Nếu phiên kết nối được mà tài nguyên vẫn thất bại, đường hầm không còn là nghi phạm: hãy chuyển sang định tuyến, DNS và truy cập dịch vụ. Đó là một cuộc điều tra khác với bằng chứng khác. Việc giữ các giai đoạn TLS và xác thực đang hoạt động ngăn nó trở thành một lần lặp lại của cuộc đầu tiên. Hãy ghi vào phiếu giai đoạn đã thất bại, nếu không người tiếp theo sẽ lại bắt đầu từ trên cùng.

Bài viết liên quan