Truy cập VPN cho tài khoản dịch vụ: chứng chỉ hay đăng nhập dùng chung
So sánh chứng chỉ máy với mật khẩu được lưu cho truy cập VPN không người giám sát, và đặt giới hạn quyền thực sự vào chính sách chạy sau khi đăng nhập.
Hai thiết kế bao phủ gần như mọi cấu hình VPN không người giám sát: một đăng nhập của con người dùng chung được giữ trong script, hoặc một chứng chỉ máy gắn với máy chủ. Chúng hỏng ở những chỗ khác nhau, và điều đó quan trọng hơn tốc độ thiết lập. Mật khẩu được lưu sẽ hỏng khi chủ sở hữu đổi nó hoặc rời đi; chứng chỉ sẽ hỏng khi hết hạn hoặc khi máy chủ được dựng lại mà không có khóa. Ba điều kiện quyết định chi phí nào bạn có thể gánh, và không thiết kế nào giới hạn được gì cho đến khi chính sách ủy quyền làm điều đó.
Bắt đầu từ công việc, không phải từ tài khoản
Công việc xác định ranh giới: đích nào, dịch vụ nào, giờ nào, một phiên có thể kéo dài bao lâu. Tuyến đường hầm chỉ là một nửa ranh giới đó. Cổng quyết định phiên có được phép hay không; tài nguyên phía sau quyết định phiên được làm gì. Viết danh sách trước, với một chủ sở hữu được nêu tên, vì cả hai thiết kế danh tính đều phải thỏa mãn nó.
Giữ xác thực và ủy quyền tách nhau trong khi bạn ghi lại. Xác thực trả lời ai đang kết nối; ủy quyền trả lời phiên có thể chạm tới đâu sau đó. RADIUS mang phần thứ hai dưới dạng thuộc tính như Filter-Id, Framed-IP-Address, Session-Timeout và Class, và cổng gắn chúng khi đăng nhập thành công. Một thiết kế đổi phần đăng nhập mà để nguyên ủy quyền thì chưa giới hạn được gì.
Đăng nhập của con người dùng chung: mật khẩu trở thành ranh giới
Dùng lại một tài khoản của con người là đường nhanh nhất và cũng là đường lâu hỏng nhất. Thông tin đăng nhập là mật khẩu, nên nó nằm trong script, tệp môi trường và cấu hình bộ lập lịch, và mọi bản sao đều cần luân chuyển. Khi chủ sở hữu đổi nó vào một ngày thứ Sáu, công việc hỏng ở lần chạy kế tiếp và không ai để ý.
MFA là chỗ thiết kế này thường sụp đổ. Script không trả lời được lời nhắc push, nên tài khoản bị loại khỏi chính sách, và đó chính là tài khoản mà kẻ tấn công sẽ chọn. Các ngoại lệ, bỏ qua cho vị trí tin cậy và miễn trừ theo tài khoản sinh sôi, và không cái nào hiển thị với người tiếp theo đọc cài đặt của người thuê.
Quy trách nhiệm là chi phí còn lại. Mỗi phiên trong nhật ký cổng mang cùng một tên người dùng, nên không thể phân biệt lần đồng bộ ban đêm với công việc của người viết ra nó, và thu hồi công việc nghĩa là thu hồi người đó.
Chứng chỉ máy: danh tính gắn với máy chủ
Một chứng chỉ đổi câu hỏi từ điều tài khoản biết sang điều máy chủ là gì. Với EAP-TLS, máy khách trình chứng chỉ và chứng minh sở hữu khóa riêng khớp; máy chủ chính sách ánh xạ chủ thể hoặc tài khoản máy tính vào một nhóm và áp dụng chính sách của nhóm đó. Không lời nhắc, không bí mật dùng chung nằm trong tệp văn bản.
Ranh giới nó tạo ra hẹp hơn người ta tưởng. Chứng chỉ xác thực máy chủ, không xác thực công việc, và bất kỳ ai có quyền root hoặc quản trị cục bộ đều dùng được khóa đó trên máy chủ đó. Giữ khóa ở nơi nền tảng bảo vệ nó: không xuất được trong kho chứng chỉ Windows, dựa trên TPM nơi hồ sơ cho phép, hoặc một tệp 0600 thuộc sở hữu root trên Linux. Máy chủ bị xâm phạm là thông tin đăng nhập bị xâm phạm.
Hết hạn là sự cố lặp lại. Chứng chỉ hết hạn vào Chủ nhật sẽ dừng công việc vào Chủ nhật, và cổng thường báo một lỗi xác thực chung chung thay vì nêu ngày. Kiểm tra ngày từ máy chủ công việc như một phần của runbook:
openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts
Thu hồi cần một đường mà cổng kiểm tra. OpenVPN đọc CRL qua tùy chọn crl-verify, và strongSwan phụ thuộc CRL hoặc OCSP tùy cách hồ sơ kết nối được dựng. Nếu không cái nào được nối, việc loại bỏ một máy chủ nghĩa là chờ chứng chỉ hết hạn.
Ba điều kiện quyết định giữa hai bên
So sánh với nền tảng bạn đang có, không phải với một thiết kế tham chiếu.
Điều kiện thứ nhất: cổng có ủy quyền được danh tính máy không? Nếu nó chỉ ánh xạ tên người dùng RADIUS sang người dùng thư mục, chứng chỉ xác thực máy chủ rồi tắc ở bước ủy quyền. Điều kiện thứ hai: công việc có cần quyền truy cập tài nguyên mà chỉ tài khoản người dùng mang theo, như một thư mục chia sẻ được ánh xạ hay giấy phép theo chỗ ngồi? Khi đó danh tính máy không thay thế được, và câu trả lời trung thực là một tài khoản người dùng riêng với chính sách có phạm vi. Điều kiện thứ ba: ai có thể luân chuyển thông tin đăng nhập mà không cần người trong vòng lặp? Đăng ký tự động làm chứng chỉ rẻ để duy trì; một mật khẩu chỉ một người biết thì không.
| Constraint | Machine certificate | Dedicated user account with stored secret |
|---|---|---|
| Unattended login | Private key proof, no prompt | Only if the account is exempted from MFA |
| Resource expects a user identity | Works only when the resource accepts computer accounts | Matches the access a person would have |
| Rotation | Re-enrollment, often automated | Secret change plus redeploy of every copy |
| Revocation speed | Tied to CRL or OCSP refresh | Disable the account, immediate |
Đọc bảng như một danh sách chi phí, không phải một bảng xếp hạng. Cột bí mật được lưu thắng về tốc độ thu hồi và về tương thích với tài nguyên chỉ hiểu tài khoản người dùng; cột chứng chỉ thắng về luân chuyển và về việc không làm yếu MFA để script chạy được.
Đặt giới hạn vào chính sách, sau xác thực
Dù bạn chọn danh tính nào, giới hạn quyền thuộc về chính sách chạy sau xác thực. Trong NPS, chính sách mạng được đánh giá theo thứ tự và chính sách đầu tiên khớp mọi điều kiện sẽ áp dụng cài đặt của nó, nên một chính sách rộng đặt trên một chính sách hẹp quyết định kết quả, bất kể máy khách trình ra gì. Microsoft ghi lại mô hình điều kiện và cài đặt trong tổng quan chính sách NPS.
Cho công việc nhóm hoặc điều kiện chính sách riêng, dựa trên thứ mà danh tính máy mang theo: mẫu chứng chỉ, định danh trạm gọi, hoặc một địa chỉ từ một nhóm địa chỉ riêng. Rồi ràng buộc phiên bằng thuộc tính: một Filter-Id cho vai trò mà cổng ánh xạ tới, một Session-Timeout ngắn để công việc bị kẹt xác thực lại thay vì giữ phiên hàng ngày, và một Framed-IP-Address từ nhóm mà bạn đặt tường lửa ở phía bên kia. Ủy quyền ứng dụng vẫn tách riêng: một đường hầm tới máy chủ cơ sở dữ liệu không phải quyền đọc một bảng bên trong nó.
Xác minh các lần từ chối, rồi lập kế hoạch loại bỏ
Quyền truy cập chạy được không chứng minh gì về đặc quyền tối thiểu. Thay vào đó hãy thử các lần từ chối: kết nối bằng danh tính công việc và vươn tới một đích ngoài danh sách, mở phiên đồng thời thứ hai nếu cổng chỉ nên cho phép một, và lặp lại đăng nhập sau khi thu hồi thông tin đăng nhập.
Rồi xác nhận cùng phiên đó ở hai nơi. Nhật ký cổng cho thấy danh tính đã xác thực; nhật ký máy chủ chính sách cho thấy chính sách nào khớp và thuộc tính nào được trả về. Trên OpenVPN máy chủ ghi tên chung của chứng chỉ, và ipsec statusall trên strongSwan in ra đường hầm đã lập với danh tính đang dùng. Nếu hai nhật ký không thống nhất về danh tính, chính sách đang khớp với thứ khác với điều bạn giả định.
Loại bỏ thuộc về thiết kế, không phải một đợt dọn dẹp. Ghi lại mọi thứ cần xóa (chứng chỉ hoặc tài khoản, tư cách thành viên nhóm, chính sách mạng, mục trong nhóm địa chỉ, quy tắc tường lửa trên đích) và chạy nó một lần khi công việc còn dễ dựng lại.
Nếu bạn bắt đầu hôm nay, hãy làm theo thứ tự này: viết danh sách tài nguyên, chọn danh tính bằng ba điều kiện, đặt giới hạn vào chính sách, và thực hành một lần từ chối trước khi công việc đi vào vận hành.