Quản lý quyền truy cập vào nhiều hệ thống linux


15

Tìm kiếm câu trả lời nhưng không tìm thấy gì ở đây ...

Câu chuyện dài: một tổ chức phi lợi nhuận đang rất cần hiện đại hóa cơ sở hạ tầng. Điều đầu tiên là tìm một giải pháp thay thế để quản lý tài khoản người dùng trên một số máy chủ Linux.

Chúng tôi có 12 máy chủ (cả vật lý và ảo) và khoảng 50 máy trạm. Chúng tôi có 500 người dùng tiềm năng cho các hệ thống này. Các cá nhân đã xây dựng và bảo trì các hệ thống trong những năm qua đã nghỉ hưu. Ông đã viết kịch bản của riêng mình để quản lý tất cả. Nó vẫn làm việc. Không có khiếu nại ở đó. Tuy nhiên, rất nhiều thứ rất thủ công và dễ bị lỗi. Mã lộn xộn và sau khi cập nhật thường cần phải điều chỉnh. Phần tồi tệ nhất là có rất ít hoặc không có tài liệu được viết. Chỉ có một vài ghi chú của ReadMe và ngẫu nhiên có thể có hoặc không còn phù hợp nữa. Vì vậy, bảo trì đã trở thành một nhiệm vụ khó khăn.

Hiện tại các tài khoản được quản lý thông qua / etc / passwd trên mỗi hệ thống. Các bản cập nhật được phân phối thông qua các tập lệnh cron để sửa các hệ thống khi tài khoản được thêm vào máy chủ "chính". Một số người dùng phải có quyền truy cập vào tất cả các hệ thống (như tài khoản sysadmin), những người khác cần quyền truy cập vào các máy chủ được chia sẻ, trong khi những người khác có thể cần quyền truy cập vào các máy trạm hoặc chỉ một tập hợp con trong số đó.

Có công cụ nào có thể giúp chúng tôi quản lý các tài khoản đáp ứng các yêu cầu sau không?

  • Tốt nhất là nguồn mở (nghĩa là miễn phí vì ngân sách rất hạn chế)
  • chính thống (tức là duy trì)
  • tốt nhất là có tích hợp LDAP hoặc có thể được thực hiện để giao tiếp với dịch vụ LDAP hoặc AD để xác thực người dùng (sẽ cần trong tương lai gần để tích hợp tài khoản với các văn phòng khác)
  • quản lý người dùng (thêm, hết hạn, xóa, khóa, v.v.)
  • cho phép quản lý hệ thống (hoặc nhóm hệ thống) nào mà mỗi người dùng có quyền truy cập - không phải tất cả người dùng đều được phép trên tất cả các hệ thống
  • hỗ trợ cho các tài khoản người dùng có thể có các homedirs và mount khác nhau tùy thuộc vào hệ thống mà họ đã đăng nhập . Ví dụ
    • sysadmin đăng nhập vào máy chủ "chính" có main: // home / sysadmin / dưới dạng homedir và có tất cả các mount được chia sẻ
    • sysadmin đã đăng nhập vào các máy trạm của nhân viên sẽ có : // user / s / sysadmin là homedir (khác với ở trên) và bộ gắn kết có giới hạn,
    • một khách hàng đã đăng nhập sẽ có homedir của anh ấy / cô ấy ở vị trí khác nhau và không có thú cưỡi chung.
  • Nếu có một giao diện quản lý dễ dàng sẽ là tuyệt vời.
  • Và nếu công cụ này là đa nền tảng (Linux / MacOS / * nix), đó sẽ là một phép lạ!

Tôi đã tìm kiếm trên web và vì vậy không tìm thấy gì phù hợp. Chúng tôi đang mở cho bất kỳ đề nghị. Cảm ơn bạn.

EDIT: Câu hỏi này đã được đánh dấu không chính xác là một bản sao. Liên kết để trả lời chỉ nói về việc có cùng một homedir trên tất cả các hệ thống, trong khi chúng ta cần có các homedir khác nhau dựa trên những gì người dùng hệ thống hiện đang đăng nhập (MULTIPLE homedirs). Ngoài ra, quyền truy cập chỉ cần được cấp cho một số máy chứ không phải toàn bộ. Các mod, xin vui lòng hiểu toàn bộ phạm vi của vấn đề thay vì chỉ đánh dấu nó là trùng lặp cho các điểm ...


'Điểm' không được trao cho việc đánh dấu trùng lặp. Câu hỏi của bạn không đủ rõ ràng để 5 người coi đó là trùng lặp.
user9517 được hỗ trợGoFundMonica

Không biết. Được rồi cảm ơn. Tuy nhiên, nó đã được đánh dấu một bản sao trong sự vội vàng. Xin vui lòng đọc các yêu cầu dạng điểm nêu rõ những gì cần thiết. Đây không phải là một bản sao. Liên kết được cung cấp tới "giải pháp" cho phép truy cập bừa bãi vào tất cả các hệ thống (chúng tôi cần giới hạn ai có quyền truy cập và hệ thống hoặc nhóm hệ thống nào). Vị trí homedir thực tế phụ thuộc vào hệ thống nào đang được truy cập. Cùng một người dùng có thể có các homedirs AND mount khác nhau tùy thuộc vào hệ thống mà anh ấy / cô ấy đăng nhập.
Swartz

Chỉ cần làm rõ: trong ví dụ sysadmin đã đề cập ở trên, main và Nas là các máy chủ khác nhau? Vì vậy, cùng một người dùng sẽ có quyền truy cập vào các homedir khác nhau tùy thuộc vào homedir mà anh ta đăng nhập?
Marco Bizzarri

@MarcoBizzarri: không chắc tôi hiểu. Hệ thống mà người dùng đăng nhập sẽ xác định homedir. SysA và SysB có thể có / home / bob in / etc / passwd, trong khi homdir cho Bob trên SysC có thể là / someplace / other / bob. Hai địa điểm sẽ chứa dữ liệu khác nhau. Người dùng hệ thống được đăng nhập để xác định những gì gắn kết khác có sẵn. Điều này sẽ chỉ cho phép các hệ thống nhân viên truy cập gắn kết nhân viên chia sẻ. Khi các hệ thống có sẵn "công khai" sẽ bị giới hạn ở các giá treo khác. Do đó, một nhân viên phải có mặt trên máy tính do nhân viên chỉ định để truy cập vào nhân viên. Một chút ngăn cách ...
Swartz

Ok, vì vậy có hai điểm khác nhau ở đây: homedir đã được sửa và có thể ở đâu đó (trên cùng một máy chủ hoặc một điểm khác) nhưng luôn luôn là như vậy. Ý tôi là, SysA luôn là homedir của anh ấy trên serverX, không có vấn đề gì. Sau đó, có một thư mục được chia sẻ giữa các nhân viên, hãy gọi nó là staff_dir, sẽ có sẵn khi nhân viên đăng nhập vào staff_workstation, nhưng không phải khi bạn đăng nhập vào normal_workstation; đúng không?
Marco Bizzarri

Câu trả lời:


17

FreeIPA có lẽ là những gì bạn đang tìm kiếm. Đối với Linux, Active Directory là gì đối với Windows. (Nó cũng có thể nói chuyện với AD nếu bạn có môi trường không đồng nhất, nhưng không nên sử dụng để quản lý trực tiếp các máy Windows. Sử dụng AD cho điều đó.)

Tài liệu của Red Hat (họ gọi là Quản lý danh tính) rất kỹ lưỡng và dễ làm theo, và nên được áp dụng chủ yếu ngay cả khi bạn không sử dụng các hệ thống có nguồn gốc từ Red Hat.


+1 freeipa là tuyệt vời.
Sirex

Tôi sẽ xem xét FreeIPA. Cảm ơn vì tiền hỗ trợ. Câu hỏi: FreeIPA có hỗ trợ các homedir khác nhau trên các hệ thống khác nhau không? Ví dụ: người dùng Bob có homedir (NFS-export) tại / shared / home / xyz khi đăng nhập vào SystemA và SystemB, nhưng khi trên SystemC / bất cứ điều gì / đặc biệt là homedir của Bob.
Swartz

Bạn đã nhìn vào automounts ? Điều này sẽ giúp bạn có được khoảng 90% trong đó, 10% còn lại là những thay đổi nhỏ đối với môi trường hiện tại của bạn.
Michael Hampton

Có, các hệ thống hiện có sử dụng autoounting. Chúng được cấu hình thủ công cho từng loại hệ thống. Đáng buồn là môi trường hiện tại của chúng ta quá cồng kềnh để duy trì. Đặc biệt là sau khi cập nhật hoặc khi tạo hình ảnh hệ thống mới. Mặc dù cốt lõi của nó hoạt động, luôn có thứ gì đó cần tinh chỉnh để làm cho nó hoạt động.
Swartz

Vâng, sau đó. Bây giờ bạn có một cơ hội tốt để bắt đầu dọn dẹp mọi thứ.
Michael Hampton

6

Tôi sẽ đề nghị một nhà tư vấn địa phương tốt để đánh giá chi tiết tình hình của bạn ...

Có thật không.

Có thể có các yêu cầu hoặc sắc thái kinh doanh khác mà mọi người trên diễn đàn này có thể không nhận ra hoặc được đầu tư - đủ để xem xét. Tài nguyên chuyên dụng là đặt cược tốt nhất của bạn ... Mặt khác, chúng tôi chỉ đưa ra các đề xuất sản phẩm cho bạn về một thứ dễ dàng vượt ra ngoài phạm vi cho một câu hỏi và trả lời đơn giản.


Mặc dù vậy, cách tiếp cận của tôi sẽ là tận dụng Microsoft Active Directory và ràng buộc các hệ thống Linux trong việc sử dụng SSSD hoặc LDAP. FreeIPA vẫn ổn trong một ngôi nhà toàn Linux, nhưng ngay cả khi bạn nói "phi lợi nhuận", điều đó không nhất thiết loại trừ Windows. Bạn sẽ bắt gặp Active Directory ở đâu đó dọc theo con đường. Bạn có thể muốn gia tăng điều này với các thư mục nhà được tự động hóa, nhưng thông tin cụ thể về người sẽ được gắn kết khi nào hoặc ở đâu không rõ ràng.

Ngay cả trong môi trường đám mây riêng 99% Linux mà tôi xây dựng bây giờ, tôi vẫn dựa vào Active Directory để dễ quản lý và xác thực tập trung. Các nhóm và quyền truy cập rất dễ dàng, chính sách mật khẩu và lão hóa tài khoản rất đơn giản. Bất kỳ mối quan tâm nào về khả năng bảo trì, tư duy và khả năng tương thích đều được giải quyết bởi Microsoft. Bản sao được tích hợp sẵn, nó được ghi chép lại và có một chút bằng chứng trong tương lai vốn có của công nghệ.

Có một số chi tiết bị thiếu trong câu hỏi ban đầu của bạn, mặc dù ...

  • Những bản phân phối Linux cụ thể nào có trong môi trường? Các phiên bản có phù hợp không?
  • Bạn có yêu cầu mức độ chi tiết quản lý tương tự cho các hệ thống Macintosh của mình không (hầu hết các tổ chức không cố gắng quản lý hoàn toàn máy tính Apple)?
  • Có người dùng từ xa không?
  • Bạn đề cập đến "* nix" - Loại * nixes nào có mặt?

2
nó hoàn toàn không có giá trị gì khi freeipa có thể làm tất cả những điều đó cho các máy linux (sao chép, chính sách mật khẩu, nhóm, v.v.) và rất dễ cài đặt (thực sự!). Nó cũng sao chép hai chiều đối với thư mục hoạt động (khá chắc chắn rằng người dùng mới không theo hướng do AD có thêm trường), nhưng nếu bạn có máy tính windows, bạn sẽ hoàn toàn muốn AD bất kể nó nằm ở trung tâm của cách cửa sổ đời sống. Ngoài ra, tài liệu trong freeipa là một chút thiếu vẫn còn imho.
Sirex

Đáng buồn là không có ngân sách cho một nhà tư vấn. Không có máy Windows (chỉ khi nhân viên tự mang theo). Tất cả các hệ thống là CentOS (một số 5.x khác là 6.x). Tổ chức này đang trong quá trình nhận được một số iMac cũ hơn (2007-ish), do đó thật tuyệt khi có một công cụ hoạt động trên OSX và Linux. Một điều tốt đẹp: không cần phải lo lắng về Windows.
Swartz

Đồng ý với đề xuất Active Directory - nếu chi phí cấp phép là một vấn đề, Samba4 là một giải pháp thay thế miễn phí và sử dụng cùng các công cụ quản lý / cơ sở hạ tầng như một Windows-hosetd AD gốc. Hầu hết mọi thứ khác có thể được cấu hình để xác thực chống lại AD thông qua PAM, winbind, LDAP, v.v. Để quản lý cấu hình cho toàn bộ cơ sở hạ tầng, hãy xem Salt ( saltstack.com/community.html blog.smartbear.com/devops/, )
nedm

3

Hệ thống hiện tại hoạt động nhưng khó quản lý. Tôi đoán cũng có những vấn đề khác trong việc quản lý các máy chủ đó nếu mọi thứ được thực hiện thủ công. Tôi sẽ thực hiện một cách tiếp cận khác bằng cách không thay thế một cái gì đó hoạt động (quản lý người dùng) và giải quyết vấn đề quản trị của các máy chủ.

Tôi khuyên bạn nên sử dụng một cái gì đó như cfengine http://cfengine.com/community (phiên bản miễn phí tại đó) để "hiện đại hóa" quản trị hệ thống của bạn, không chỉ quản lý người dùng. Đây là một cơ hội tốt để dùng thử vì hệ thống hiện tại của bạn hoạt động rất giống như sử dụng cengine để phân phối cấu hình cho các máy chủ, trong trường hợp của bạn là / etc / passwd. Vì vậy, thay vì thay thế, bạn di chuyển các tập lệnh đó sang cengine. Hy vọng rằng tác động sẽ rất nhỏ vì bạn vẫn đang sử dụng cùng / etc / passwd.

Khi bạn cảm thấy thoải mái với cengine, bạn có thể xây dựng nhiều công thức nấu ăn hơn để giải quyết nhiều vấn đề hơn như có một hệ thống quản lý người dùng hoàn toàn mới và bạn có công cụ để quản lý cấu hình trên các máy chủ.

Để giúp bạn bắt đầu, tôi đã tìm thấy liên kết này http://explosive.net/opensource/cfpasswd/doc/cfengine.html cho biết cách phân phối / etc / passwd và các tệp liên quan.

Ngay cả khi bạn muốn thay thế hệ thống quản lý người dùng bây giờ, bạn vẫn cần một công cụ quản trị để quản lý các máy chủ đó. Tốt hơn là nên có công cụ quản trị sớm hơn sau đó và cấu hình lại quản lý người dùng của bạn theo một công cụ quản trị.


0

Chỉ cần một vài điều nhanh chóng để thêm -

Tôi đã và đang sử dụng Puppet trong triển khai của mình - ý tưởng tương tự như cengine - http://puppetlabs.com

Điều này cũng có thể làm quản lý người dùng và quản lý cấu hình / máy chủ chung của bạn.

Nếu bạn muốn thử một cái gì đó linh hoạt như Samba, nó có thể có khả năng quản lý các thư mục với một số cấu hình cũng như khả năng sử dụng phụ trợ LDAP cho cấu hình. Samba 4 đã trưởng thành hơn rất nhiều và thực sự có thể cung cấp một môi trường tích hợp với Windows và Linux để quản lý / xác thực.

Samba làm việc với AD hoặc thay thế cho AD là tốt.

Ngoài ra còn có một sản phẩm tên là Centrify mà tôi đã xem xét một thời gian trước đây. Tôi chưa bao giờ đi quá xa với nó, nhưng tôi tin rằng họ cũng có phiên bản phần mềm miễn phí / mã nguồn mở của nó. Nếu tôi nhớ nó có tiềm năng cho một môi trường hỗn hợp, cung cấp quản lý Windows và Linux, và có thể cả Mac.

Tôi sẽ thứ hai gợi ý của một nhà tư vấn. Những triển khai này có thể rất phức tạp để thiết lập rất nhanh, nhưng dễ bảo trì một khi chúng được ghi lại và cấu hình.

May mắn nhất


1
Tôi đã xem Puppet và Chef để quản lý cấu hình sớm. Con rối cho phép 10 nút miễn phí, với Chef bạn nhận được 5 nút miễn phí. Sau thời điểm đó Puppet Labs tính phí $ 99 / nút / năm. Nó sẽ là một vài ngàn cho chúng tôi. Thỏa thuận ngắt. Mặc dù tôi không nhớ giá của Chef, nhưng đó là cùng một ý tưởng. Không có trong ngân sách. :(
Swartz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.