Máy chủ VPN Windows của bạn hỏi tên người dùng và mật khẩu, và một hộp thoại duy nhất đó che giấu ba nhiệm vụ không liên quan. Một nhiệm vụ chứng minh ai là người đó, một nhiệm vụ ngăn kẻ theo dõi đường truyền dùng lại bằng chứng ấy, và một nhiệm vụ quyết định những địa chỉ nào người đó được chạm tới sau đó. Hầu hết các triển khai nhỏ đều tăng cường đường hầm trước và để hai nhiệm vụ đầu ở giá trị mặc định, đó là thứ tự sai.

Hãy làm việc theo thứ tự kẻ tấn công làm. Trước hết là những gì có thể bắt được từ đường truyền. Sau đó là những gì có thể phát lại sau này bằng bản ghi ấy. Cuối cùng là những gì một kẻ tấn công đã xác thực có thể chạm tới khi đã vào trong.

Ba nhiệm vụ, một hộp thoại

Danh tính là phần người ta nghĩ tới, và nó chỉ là một phần ba của vấn đề. Bằng chứng danh tính phải chịu được một người quan sát ghi lại cuộc trao đổi và thử lại sau đó. Còn việc cấp quyền là một quyết định riêng mà máy chủ đưa ra sau khi danh tính đã được xác định, và Windows giữ nó trong một dịch vụ khác với dịch vụ kiểm tra thông tin đăng nhập.

Khi cả ba sống trong cùng một cái xô tinh thần, kết quả thường thấy là một máy chủ xác thực mạnh rồi cho phép người dùng chạm tới mọi thứ. Sửa điều đó về sau khó hơn là quyết định chính sách ngay bây giờ, vì tới lúc đó hồ sơ tường lửa, nhóm địa chỉ và các tuyến đều đã mã hóa giả định cũ.

Hãy tách ba việc trong ghi chú của bạn trước khi chạm vào bất kỳ thiết lập nào, rồi sửa chúng từ mắt yếu nhất trở lên.

Vì sao MS-CHAPv2 không trụ nổi một phép thử phát lại

Nếu máy chủ vẫn chấp nhận PPTP với MS-CHAPv2, đường hầm không bảo vệ mật khẩu theo bất kỳ nghĩa thực chất nào. Thách thức và phản hồi có thể bị bắt và bị tấn công ngoại tuyến, và năm 2012 một dịch vụ bẻ khóa công khai đã trình diễn việc phục hồi từ một cú bắt tay như vậy trong khoảng một ngày với mật khẩu thông thường. Mật khẩu dài và phức tạp hơn làm tăng chi phí; nó không loại bỏ vật liệu mà kẻ tấn công cần từ mạng.

Tính chất bạn muốn là thông tin đăng nhập không thể phát lại. EAP-TLS với chứng chỉ máy khách cho mỗi thiết bị danh tính riêng và cho phép bạn thu hồi đúng một thiết bị.

Triển khai chứng chỉ là công việc thật: một CA riêng, đường thu hồi mà máy khách kiểm tra, và kế hoạch gia hạn chịu được thay đổi nhân sự. Hãy coi công việc đó là dự án chứ không phải vật cản giữa bạn và một đường hầm đang chạy. Lập ngân sách cho nó như bạn lập ngân sách cho việc thay tường lửa. Mật khẩu chia sẻ chỉ rẻ hơn cho tới lần thu hồi đầu tiên.

Khóa chia sẻ trước xác thực cặp, không xác thực người

L2TP/IPsec với khóa chia sẻ trước chứng minh hai cổng vào biết cùng một bí mật. Nó không nói gì về việc ai đang kết nối, và ở lớp đó nó không phân biệt được người này với người kia. Hãy dùng một giá trị ngẫu nhiên dài, vượt xa mười ký tự mà một số hướng dẫn đề xuất, vì ai bắt được cú bắt tay đều có thể tấn công khóa ngoại tuyến.

Mọi máy khách trong hồ sơ đó chia sẻ bí mật, nên loại bỏ một người nghĩa là phân phối lại cho tất cả những người còn lại. Hãy giữ một bước xác thực người dùng riêng bên trên bí mật cấp máy, và chuyển sang chứng chỉ khi số máy khách tăng. Khóa chia sẻ trước kết hợp với MS-CHAPv2 là hai lớp yếu, và lớp thứ hai vô hiệu hóa lớp thứ nhất.

Việc cấp quyền thuộc về Network Policy Server

NPS trên Windows quyết định ai được kết nối, và nó làm vậy sau khi xác thực đã thành công. Sự tách biệt đó là biện pháp tăng cường hữu ích nhất trong sản phẩm, và nhiều triển khai để nguyên nó.

Hãy dùng các điều kiện chính sách phản ánh ràng buộc thật: thành viên nhóm, khung giờ có người trực hỗ trợ, và trạng thái thiết bị từ kiểm tra sức khỏe. Thêm yếu tố thứ hai ở nơi dữ liệu biện minh cho sự phiền toái, và nhớ rằng chính sách được đánh giá mỗi lần thử kết nối, điều đó biến nó thành kiểm soát sống chứ không phải tài liệu.

Kế toán RADIUS cũng cho bạn một bản ghi về ai đã kết nối và khi nào. Bản ghi đó là khác biệt giữa rà soát sự cố và phỏng đoán, và nó tồn tại dù có ai đọc hay không.

Giới hạn những gì một lần đăng nhập thành công có thể chạm tới

Bộ điều hợp VPN nên hạ cánh vào một hồ sơ tường lửa cho phép các dịch vụ mà vai trò của nó cần chứ không phải toàn bộ mạng con. Câu hỏi định tuyến tách khỏi việc lọc. Đường hầm đầy đủ bảo vệ thiết bị máy khách và đẩy mọi byte qua đường lên của bạn, trong khi đường hầm chia tách giữ lưu lượng cục bộ ở cục bộ và phơi thiết bị ra mạng nào mà nó đang ở.

Không lựa chọn nào là mặc định bảo mật. Cả hai cần được ghi lại bên cạnh hồ sơ tường lửa mà chúng giả định.

Kiểm chứng các đường thất bại

Hãy thử những gì đáng lẽ phải hỏng: mật khẩu sai, chứng chỉ hết hạn, thiết bị bị thu hồi, người dùng ngoài nhóm. Mỗi trường hợp nên hỏng ở một điểm khác nhau, và nhật ký nên nói đó là trường hợp nào. Chạy bộ thử trên tài khoản thử trước, rồi lặp lại với người dùng thật. Một lần từ chối vào nhật ký sự kiện mà không có lý do đáng được sửa rất lâu trước khi bạn cần bản ghi đó.

Sau đó xác nhận những cổng nào được công bố và vì sao. PPTP cần TCP 1723 và GRE như một giao thức IP chứ không phải cổng, IKEv2 cần UDP 500 và 4500, và L2TP cần UDP 1701 cùng IPsec. Việc mở một giao diện quản trị để máy khách kết nối không phải là sửa chữa, đó là sự cố thứ hai đang chờ bị phát hiện.

Cuối cùng, hãy quyết định máy chủ ghi lại gì và trong bao lâu. Một điểm cuối không có lịch sử xác thực không thể trả lời câu hỏi đầu tiên sau sự cố, đó là lần thử ấy có từng được cấp quyền hay chưa.

Bài viết liên quan