Управление доступом к нескольким системам Linux

15

Искал ответы, но ничего не нашел здесь ...

Короче говоря: некоммерческая организация остро нуждается в модернизации своей инфраструктуры. Прежде всего, нужно найти альтернативы управлению учетными записями пользователей на нескольких хостах Linux.

У нас 12 серверов (как физических, так и виртуальных) и около 50 рабочих станций. У нас есть 500 потенциальных пользователей для этих систем. Человек, который строил и обслуживал системы за эти годы, ушел в отставку. Он написал свои собственные сценарии, чтобы справиться со всем этим. Это все еще работает. Нареканий нет. Тем не менее, многие вещи очень ручные и подвержены ошибкам. Код неопрятен, и после обновлений его часто нужно настроить. Хуже всего то, что почти нет написанных документов. Есть только несколько ReadMe's и случайных заметок, которые могут быть или не иметь отношения больше. Поэтому обслуживание стало сложной задачей.

В настоящее время учетные записи управляются через / etc / passwd в каждой системе. Обновления распространяются с помощью скриптов cron для исправления систем по мере добавления учетных записей на «главном» сервере. Некоторые пользователи должны иметь доступ ко всем системам (например, к учетной записи системного администратора), другим нужен доступ к общим серверам, в то время как другим может понадобиться доступ к рабочим станциям или только к их подмножеству.

Существует ли инструмент, который может помочь нам управлять учетными записями, который отвечает следующим требованиям?

  • Предпочтительно с открытым исходным кодом (то есть бесплатно, так как бюджет ОЧЕНЬ ограничен)
  • основной (то есть поддерживается)
  • предпочтительно имеет интеграцию с LDAP или может использоваться для взаимодействия со службой LDAP или AD для аутентификации пользователя (потребуется в ближайшем будущем для интеграции учетных записей с другими офисами)
  • управление пользователями (добавление, истечение срока действия, удаление, блокировка и т. д.)
  • позволяет управлять тем, к каким системам (или группам систем) имеет доступ каждый пользователь - не всем пользователям разрешено работать во всех системах
  • поддержка учетных записей пользователей, которые могут иметь различные домашние каталоги и монтирования, доступные в зависимости от того, в какую систему они вошли . Например
    • sysadmin, вошедший в систему на «главном» сервере, имеет main: // home / sysadmin / в качестве homedir и имеет все общие подключения
    • sysadmin, вошедший в систему на рабочих станциях персонала, будет иметь nas: // user / s / sysadmin в качестве homedir (отличается от описанного выше) и потенциально ограниченный набор монтирований,
    • зарегистрированный клиент будет иметь свой домашний каталог в другом месте и без общих подключений.
  • Если есть простой интерфейс управления, это было бы здорово.
  • И если этот инструмент кроссплатформенный (Linux / MacOS / * nix), это будет чудом!

Я искал в Интернете и поэтому не нашел ничего подходящего. Мы открыты для любых предложений. Спасибо.

РЕДАКТИРОВАТЬ: Этот вопрос был неправильно помечен как дубликат. Связанный с ответом говорит только о наличии одних и тех же домашних папок во всех системах, в то время как нам нужно иметь разные домашние папки в зависимости от того, какой пользователь системы в данный момент вошел в систему (НЕСКОЛЬКО домашних папок). Кроме того, доступ должен быть предоставлен только для некоторых машин, а не всей партии. Моды, пожалуйста, поймите всю проблему, а не просто отметьте ее как дубликат для очков ...

Сварц
источник
«Баллы» не начисляются за маркировку дубликатов. Ваш вопрос не был достаточно ясным, чтобы 5 человек посчитали его дубликатом.
user9517
Не знал Хорошо спасибо. Тем не менее, он был отмечен как дубликат на скорую руку. Пожалуйста, ознакомьтесь с требованиями к форме, в которых четко указано, что необходимо. Это не дубликат. Предоставленная ссылка на «решение» позволяет получить доступ ко всем системам без разбора (нам необходимо ограничить, кто имеет доступ и к какой системе или группам систем). Фактическое местоположение homedir зависит от того, к какой системе осуществляется доступ. Один и тот же пользователь может иметь разные домашние каталоги и монтироваться в зависимости от того, в какую систему он / она вошел.
Swartz
Просто чтобы уточнить: в приведенном выше примере сисадмина основной и nas разные серверы? Таким образом, один и тот же пользователь будет иметь доступ к различным домашним каталогам в зависимости от того, в какой домашний каталог он входит?
Марко Биззарри
@MarcoBizzarri: не уверен, что понимаю. Система, в которую вошел пользователь, определяет homedir. SysA и SysB могут иметь / home / bob в / etc / passwd, в то время как homdir для Боба на SysC может быть / someplace / else / bob. Два места будут содержать разные данные. Пользователь, вошедший в систему, определяет, какие другие крепления доступны. Это позволит только системам персонала получать доступ к общим штатным единицам персонала. Где в качестве «общедоступных» доступных систем будут ограничены другие крепления. Таким образом, персонал должен быть на назначенном персоналом компьютере, чтобы получить доступ к персоналу. Немного разобщенности ...
Swartz
Итак, здесь есть два разных момента: homedir фиксирован и может быть где-то (либо на том же сервере, либо на другом), но это всегда так. Я имею в виду, что у SysA всегда есть свой homedir на serverX, несмотря ни на что. После этого существует общий каталог для персонала, назовем его staff_dir, который должен быть доступен, когда сотрудники входят в staff_workstation, но не при входе в normal_workstation; это верно?
Марко Биззарри

Ответы:

17

FreeIPA , вероятно, то, что вы ищете. Это для Linux, что Active Directory для Windows. (Он также может общаться с AD, если у вас гетерогенная среда, но его не следует использовать для непосредственного управления компьютерами Windows. Для этого используйте AD.)

Документация Red Hat (они называют это Identity Management) очень тщательна и проста для понимания, и должна быть в основном применима, даже если вы не используете системы, производные от Red Hat.

Майкл Хэмптон
источник
+1 freeipa - это круто.
Sirex
Я буду смотреть на FreeIPA. Спасибо за чаевые. Вопрос: поддерживает ли FreeIPA разные домашние каталоги в разных системах? Пример: пользователь Bob имеет (NFS-exported) homedir по адресу / shared / home / xyz при входе в SystemA и SystemB, но когда в SystemC / что угодно / special, это homedir Боба.
Swartz
Вы смотрели на автомонтирование ? Это позволит вам пройти 90% пути, а оставшиеся 10% будут незначительными изменениями в существующей среде.
Майкл Хэмптон
Да, существующие системы используют автомонтирование. Они настраиваются вручную для каждого типа системы. К сожалению, наша существующая среда слишком громоздка для поддержания. Особенно после обновлений или при создании новых системных образов. Хотя его ядро ​​работает, всегда есть что-то, что нужно настроить, чтобы оно заработало.
Swartz
Ну тогда. Теперь у вас есть хорошая возможность начать убирать вещи.
Майкл Хэмптон
6

Я бы посоветовал хорошего местного консультанта, чтобы оценить особенности вашей ситуации ...

В самом деле.

Могут быть и другие деловые требования или нюансы, которые люди на этом форуме могут не распознать или не инвестировать - достаточно, чтобы обдумать. Выделенный ресурс - ваша лучшая ставка ... В противном случае мы просто дадим вам рекомендации по продуктам, которые легко выходят за рамки простых вопросов и ответов.


Несмотря на это, мой подход заключается в использовании Microsoft Active Directory и связывании систем Linux с использованием SSSD или LDAP. FreeIPA хороша в полностью Linux-домике, но даже если вы говорите «некоммерческий», это не обязательно исключает Windows. Вы столкнетесь с Active Directory где-то по пути. Возможно, вы захотите дополнить это автоматически установленными домашними каталогами, но детали того, кто подключается, когда и где, не ясны.

Даже в 99% частных облачных средах Linux, которые я сейчас создаю, я все еще полагаюсь на Active Directory для простоты управления и централизованной аутентификации. Группы и права доступа просты, политика паролей и устаревание аккаунта просты. Любые проблемы, связанные с ремонтопригодностью, разумностью и совместимостью, покрываются решением Microsoft. Репликация является встроенной, хорошо документирована, и этой технологии присуща некоторая перспектива.

Однако в исходном вопросе отсутствуют некоторые детали ...

  • Какие конкретные дистрибутивы Linux присутствуют в среде? Версии совместимы?
  • Требуется ли такой же уровень детализации управления для систем Macintosh (большинство организаций не пытаются полностью управлять компьютерами Apple)?
  • Есть ли удаленные пользователи?
  • Вы упоминаете "* nix" - какой тип * nixes присутствует?
ewwhite
источник
2
Это абсолютно ничего не значит, что freeipa может делать все эти вещи для машин linux (репликация, политика паролей, группы и т. д.) и очень проста в настройке (правда!). Он также выполняет двунаправленную репликацию для активного каталога (почти наверняка, что новые пользователи однонаправлены из-за того, что в AD есть дополнительные поля), но если у вас есть машины с Windows, вам, скорее всего, понадобится AD, независимо от того, насколько это важно для Windows. жизнь. Кроме того, документации во Freeipa немного не хватает еще imho.
Sirex
К сожалению, у консультанта нет бюджета. Там нет машин Windows (только если персонал приносит свои собственные). Все системы CentOS (некоторые 5.x другие 6.x). Организация находится в процессе приобретения более старых (2007 года выпуска) iMac, поэтому было бы неплохо иметь инструмент, работающий на OSX и Linux. Одна приятная вещь: не нужно беспокоиться о Windows.
Swartz
Согласитесь с предложением Active Directory - если стоимость лицензирования является проблемой, Samba4 является бесплатной альтернативой и использует те же инструменты управления / инфраструктуру, что и встроенная AD Windows-hosetd. Почти все остальное можно настроить для аутентификации в AD через PAM, winbind, LDAP и т. Д. Для управления конфигурацией всей инфраструктуры, ознакомьтесь с Salt ( salttack.com/community.html blog.smartbear.com/devops/… )
недм
3

Текущая система работает, но сложна в управлении. Я предполагаю, что есть и другие проблемы для управления этими серверами, если все было сделано вручную. Я бы выбрал другой подход, не заменяя что-то, что работает (управление пользователями) и решая проблему администрирования серверов.

Я рекомендую использовать что-то вроде cfengine http://cfengine.com/community (бесплатная версия там) для «модернизации» системного администрирования, а не только управления пользователями. Это хорошая возможность попробовать это, потому что ваша текущая система работает очень похоже на использование cfengine для распределения конфигурации на серверы, в вашем случае / etc / passwd. Поэтому вместо замены вы перенесете эти скрипты в cfengine. Надеюсь, влияние будет минимальным, потому что вы все еще используете тот же / etc / passwd.

Как только вы освоитесь с cfengine, вы сможете создавать больше рецептов для решения большего количества проблем, таких как совершенно новая система управления пользователями и инструмент управления конфигурацией на серверах.

Чтобы помочь вам начать, я нашел эту ссылку http://explosive.net/opensource/cfpasswd/doc/cfengine.html, которая показывает, как распространять файл / etc / passwd и связанные файлы.

Даже если вы хотите заменить систему управления пользователями сейчас, вам все равно нужен инструмент администрирования для управления этим сервером. Лучше иметь инструмент администрирования раньше, чем позже, и перенастроить управление пользователями под инструментом администрирования.

imel96
источник
0

Просто несколько быстрых вещей, чтобы добавить -

Я использовал Puppet в своем развертывании - идея похожа на cfengine - http://puppetlabs.com

Это также может сделать ваше управление пользователями и общей конфигурацией / управлением сервером.

Если вы хотите попробовать что-то столь же универсальное, как Samba, у него могут быть возможности управления каталогами с некоторой конфигурацией, а также возможность использования для конфигурации бэкэнда LDAP. Samba 4 сильно повзрослела и может обеспечить интегрированную среду с Windows и Linux для управления / аутентификации.

Samba работает как с AD, так и с заменой AD.

Есть также продукт под названием Centrify, на который я смотрел некоторое время назад. Я никогда не заходил слишком далеко, но я верю, что у них есть и бесплатная версия с открытым исходным кодом. Насколько я помню, у него был потенциал для смешанной среды, обеспечивающей управление Windows и Linux и, возможно, Mac.

Я бы поддержал предложение консультанта. Эти развертывания могут быть очень сложными и очень быстрыми в настройке, но простыми в обслуживании после их документирования и настройки.

Удачи

JTWOOD
источник
1
Я посмотрел Puppet и Chef для управления конфигурацией на ранней стадии. Puppet допускает 10 бесплатных узлов, с Chef вы получаете 5 бесплатных. После этого Puppet Labs взимает $ 99 / узел / год. Это будет несколько тысяч для нас. Выключатель сделки Хотя я не помню, цены шеф-повара, но это та же идея. Не в бюджет. :(
Шварц