Tại công ty của tôi, chúng tôi sử dụng LDAP để có một bộ tài khoản nhất quán trên tất cả các máy và sau đó sử dụng công cụ quản lý cấu hình (trong trường hợp của chúng tôi hiện là cengine) để phân phối authorized_keys
tệp cho mỗi người dùng trên tất cả các máy chủ. Các tệp chính được lưu giữ (cùng với thông tin cấu hình hệ thống khác) trong kho git để chúng ta có thể thấy khi nào khóa đến và đi. cfengine cũng phân phối một sudoers
tệp kiểm soát những người có quyền truy cập để chạy những gì là root trên mỗi máy chủ, sử dụng người dùng và các nhóm từ thư mục LDAP.
Xác thực mật khẩu bị vô hiệu hóa hoàn toàn trên các máy chủ sản xuất của chúng tôi, vì vậy, xác thực khóa SSH là bắt buộc. Chính sách khuyến khích sử dụng một khóa riêng cho mỗi máy tính xách tay / máy tính để bàn / bất cứ điều gì và sử dụng cụm mật khẩu trên tất cả các phím để giảm tác động của máy tính xách tay bị mất / bị đánh cắp.
Chúng tôi cũng có một máy chủ pháo đài được sử dụng để truy cập các máy chủ trên mạng sản xuất, cho phép chúng tôi có các quy tắc tường lửa rất hạn chế xung quanh mạng đó. Hầu hết các kỹ sư có một số cấu hình SSH đặc biệt để làm cho điều này minh bạch:
Host prod-*.example.com
User jsmith
ForwardAgent yes
ProxyCommand ssh -q bastion.example.com "nc %h %p"
Thêm một khóa mới hoặc loại bỏ một khóa cũ đòi hỏi một chút nghi lễ trong thiết lập này. Tôi lập luận rằng để thêm một khóa mới, nó mong muốn nó là một hoạt động để lại dấu vết kiểm toán và mọi người đều có thể nhìn thấy. Tuy nhiên, do liên quan đến chi phí, tôi nghĩ mọi người đôi khi bỏ bê việc xóa chìa khóa cũ khi không còn cần thiết và chúng tôi không có cách nào thực sự để theo dõi điều đó ngoại trừ việc dọn dẹp khi một nhân viên rời khỏi công ty. Nó cũng tạo ra một số ma sát bổ sung khi đưa lên một kỹ sư mới, vì họ cần tạo ra một khóa mới và đẩy nó ra tất cả các máy chủ trước khi chúng có thể hoạt động hoàn toàn.
Tuy nhiên, lợi ích lớn nhất là có một tên người dùng riêng cho mỗi người dùng, giúp dễ dàng thực hiện kiểm soát truy cập chi tiết hơn khi chúng tôi cần và cung cấp cho mỗi người dùng một danh tính hiển thị trong nhật ký kiểm toán, có thể thực sự hữu ích khi cố gắng theo dõi vấn đề sản xuất trở lại một hành động sysadmin.
Thật khó chịu trong thiết lập này khi có các hệ thống tự động thực hiện hành động chống lại các máy chủ sản xuất, vì các khóa SSH "nổi tiếng" của chúng có thể phục vụ như một đường dẫn truy cập thay thế. Cho đến nay, chúng ta mới tạo tài khoản người dùng cho các hệ thống tự động này chỉ có quyền truy cập tối thiểu mà họ cần để thực hiện công việc của mình và chấp nhận rằng người dùng độc hại (phải là kỹ sư có quyền truy cập sản xuất) cũng có thể thực hiện các hành động tương tự như vậy. ẩn danh sử dụng khóa của ứng dụng.