Loại bỏ PPTP/MS-CHAPv2: sổ tay vận hành cho một VPN cũ
Mật khẩu dài hơn không cải thiện PPTP với MS-CHAPv2. Thực hiện lần lượt các bước kiểm kê, di trú, xác minh và dọn dẹp thông tin xác thực.
Mật khẩu hai mươi ký tự, được luân chuyển hằng tháng và cất trong két, không biến một máy chủ PPTP chạy MS-CHAPv2 thành VPN hiện đại. Mật khẩu là đầu vào của một trao đổi mà điểm yếu nằm trong chính trao đổi đó. Sổ tay này dành cho người thừa kế máy chủ ấy và phải di chuyển người dùng khỏi nó mà không cắt đứt site phụ thuộc vào nó. Hãy làm theo các bước đúng thứ tự, vì mỗi bước để lại một ghi chép mà bạn sẽ cần khi ai đó hỏi vì sao quyền truy cập đột nhiên thay đổi.
Ghi lại chồng công nghệ trước khi chạm vào bất cứ thứ gì
Ba lớp bị gộp vào chữ PPTP, và mỗi lớp hỏng theo cách riêng. Đường hầm là chính PPTP, GRE cộng TCP 1723. Xác thực là phương thức PPP mà máy chủ cung cấp, ở đây là MS-CHAPv2. Bảo vệ liên kết là MPPE, với các khóa dẫn xuất từ trao đổi xác thực đó. Gọi tên cả ba giúp một bản sửa về sau không rơi vào nhầm lớp.
Đọc cấu hình đang chạy thay vì tin một trang wiki, và ghi lại tệp, bộ lắng nghe cùng các phiên xác thực gần nhất.
grep -RniE 'mschap|mppe|require-mppe' /etc/ppp/options.pptpd /etc/pptpd.conf
ss -lntp 'sport = :1723'
journalctl -u pptpd -n 40 --no-pager
Trong vai trò truy cập từ xa của Windows, cùng bản kiểm kê ấy đến từ hai lệnh, và lệnh thứ hai quan trọng vì một vai trò có thể quảng bá nhiều phương thức cùng lúc trong khi máy khách ngoài hiện trường luôn chỉ thương lượng phương thức yếu nhất.
Get-VpnAuthProtocol
netstat -ano | findstr :1723
Quyết định đường hầm thực sự mang gì hôm nay
Liệt kê người dùng trước khi chọn phương án thay thế: máy tính xách tay lưu động, một bộ định tuyến chi nhánh, một thiết bị đầu cuối thanh toán, một bộ máy tính bảng hiện trường. Người dùng chỉ cần tới một máy chủ nội bộ thì dễ chuyển. Người dùng nhúng trong phần cứng bạn không thể nạp lại có thể cần một cổng trung gian thay vì nâng cấp máy khách, và quyết định đó thuộc về kế hoạch chứ không phải giữa lúc chuyển đổi.
Sau đó hỏi kẻ tấn công có thể quan sát hoặc tác động vào trao đổi đăng nhập sẽ thu được gì. Với MS-CHAPv2, câu trả lời bao gồm tài liệu cho phép khôi phục mật khẩu của người dùng ngoại tuyến, và chính vì thế độ dài cùng việc luân chuyển không sửa được thiết kế: bí mật khôi phục được có giá trị trên mọi hệ thống nơi người dùng dùng lại nó.
MPPE thừa hưởng cùng điểm yếu, vì các khóa của nó đến từ trao đổi đó, và nó không cho bạn tính toàn vẹn theo từng gói hay hành vi phát lại của một mật mã AEAD hiện đại. Một phiên xác thực sạch chỉ chứng minh sự tương thích với các kiểm tra đã cấu hình và không hơn thế.
Không một giờ nghỉ trưa ngắn cũng không một số ít người dùng biến một thuộc tính mật mã thành thuộc tính chính sách.
Thực hiện di trú trong một cửa sổ bảo trì duy nhất
Dựng phương án thay thế, chứng minh nó với một nhóm thí điểm, rồi dừng bộ lắng nghe cũ thay vì để nó thành phương án dự phòng âm thầm. Một phương án dự phòng mà ai cũng còn tới được không phải là di trú, và nó giữ trao đổi yếu luôn mở đúng cho những người dùng chưa bao giờ chịu bỏ công chuyển.
sudo systemctl disable --now pptpd
sudo ss -lntp | grep -E ':(1723|1194|51820)\b'
sudo nft list ruleset | grep -i gre
Đóng đường tường lửa trong cùng cửa sổ đó. GRE không có cổng nào để nhớ, nên một quy tắc cho phép giao thức 47 theo số rất dễ bị bỏ sót và để dịch vụ vẫn tới được kể cả sau khi daemon đã biến mất. Ghi lại quy tắc đã gỡ, vị trí trước đó và lý do, để một lần rà soát thay đổi sau này không khôi phục nó do nhầm lẫn.
Xử lý thông tin xác thực tách khỏi cấu hình. Gỡ một hồ sơ máy khách không phải là thu hồi, và một tài khoản vẫn xác thực ở nơi khác thì chưa được cho nghỉ.
Xác minh phương án thay thế làm được những việc PPTP từng làm
Danh sách kiểm tra không phải là “có kết nối được không”. Mà là xác thực, cấp phát địa chỉ, phân giải DNS, chọn tuyến, hành vi kết nối lại và xác minh đối tác có còn giữ được dưới phương án thay thế hay không. Thử từng mục trên một thiết bị thí điểm, theo thứ tự đó, và ghi kết quả quan sát bên cạnh kỳ vọng.
ip -4 addr show tun0
ip route get 198.51.100.23
resolvectl query intranet.example.net
Một địa chỉ trên giao diện chứng minh cuộc thương lượng đã xong. Nó không chứng minh phía xa đã cho phép tuyến bạn mong đợi, và truy vấn ở trên chỉ trả lời cho máy chủ này, không cho một LAN được chuyển tiếp. Câu trả lời của bộ phân giải chứng minh bộ phân giải tới được, không chứng minh chính sách DNS chia tách gửi đúng tên tới đó.
Thử kết nối lại sau cùng, vì đó là nơi phần lớn phương án thay thế thoái lui: cho máy tính xách tay ngủ, đổi mạng và xác nhận đường hầm dựng lại mà không để lại tuyến cũ.
Hoàn tác, thu hồi và ghi chép bạn để lại
Hoàn tác khôi phục dịch vụ; nó không khôi phục bảo mật, và khác biệt đó phải được nói to trước khi cửa sổ mở ra. Nếu đường mới thất bại, đưa người dùng trở lại qua một điểm cuối hiện đại thứ hai hoặc một cổng tạm thời, không phải bằng cách bật lại PPTP cho tất cả. Giữ một đường khẩn cấp trên giao thức cũ sẽ mở rộng mức phơi nhiễm mà bạn vừa ghi chép.
Sau khi chuyển đổi, thu hồi các tài khoản đã xác thực qua PPTP, để hồ sơ đã lưu của họ hết hạn, và xác nhận quy tắc GRE đã biến mất khỏi mọi thiết bị biên, kể cả bản sao khôi phục sau thảm họa mà không ai nhớ.
Để lại một ghi chép ngắn: các giao thức bạn tìm thấy, ngày từng bộ lắng nghe dừng, các phiên bản máy khách mà phương án thay thế hỗ trợ, và chủ sở hữu có thể mở lại quyết định. Vệ sinh mật khẩu vẫn quan trọng sau đó, nhưng như vệ sinh trên một giao thức xứng đáng với nó, không phải như lý lẽ để giữ cái cũ sống.